From 0f26a961681046d3a0a68e900780d791242a4033 Mon Sep 17 00:00:00 2001 From: Ionitron Date: Thu, 13 Aug 2015 19:56:34 +0000 Subject: [PATCH] release: 1.1.0 (1.1.0) --- .../ionic-v1.0.0-beta.10-nightly-16570.zip | Bin 4593606 -> 4593606 bytes 1.1.0/css/ionic.css | 7697 ++ 1.1.0/css/ionic.min.css | 23 + 1.1.0/fonts/ionicons.eot | Bin 0 -> 120724 bytes 1.1.0/fonts/ionicons.svg | 2230 + 1.1.0/fonts/ionicons.ttf | Bin 0 -> 188508 bytes 1.1.0/fonts/ionicons.woff | Bin 0 -> 67904 bytes 1.1.0/ionic-v1.1.0.zip | Bin 0 -> 6108866 bytes 1.1.0/js/angular-ui/angular-ui-router.js | 4232 ++ 1.1.0/js/angular-ui/angular-ui-router.min.js | 7 + 1.1.0/js/angular/angular-animate.js | 3721 + 1.1.0/js/angular/angular-animate.min.js | 52 + 1.1.0/js/angular/angular-resource.js | 669 + 1.1.0/js/angular/angular-resource.min.js | 13 + 1.1.0/js/angular/angular-sanitize.js | 683 + 1.1.0/js/angular/angular-sanitize.min.js | 16 + 1.1.0/js/angular/angular.js | 28364 ++++++++ 1.1.0/js/angular/angular.min.js | 290 + 1.1.0/js/ionic-angular.js | 13445 ++++ 1.1.0/js/ionic-angular.min.js | 19 + 1.1.0/js/ionic.bundle.js | 59302 ++++++++++++++++ 1.1.0/js/ionic.bundle.min.js | 446 + 1.1.0/js/ionic.js | 8813 +++ 1.1.0/js/ionic.min.js | 17 + 1.1.0/version.json | 6 + latest.json | 60 +- nightly/ionic-nightly.zip | Bin 6111402 -> 6111402 bytes versions.json | 230 +- 28 files changed, 130190 insertions(+), 145 deletions(-) create mode 100644 1.1.0/css/ionic.css create mode 100644 1.1.0/css/ionic.min.css create mode 100644 1.1.0/fonts/ionicons.eot create mode 100644 1.1.0/fonts/ionicons.svg create mode 100644 1.1.0/fonts/ionicons.ttf create mode 100644 1.1.0/fonts/ionicons.woff create mode 100644 1.1.0/ionic-v1.1.0.zip create mode 100755 1.1.0/js/angular-ui/angular-ui-router.js create mode 100755 1.1.0/js/angular-ui/angular-ui-router.min.js create mode 100644 1.1.0/js/angular/angular-animate.js create mode 100644 1.1.0/js/angular/angular-animate.min.js create mode 100644 1.1.0/js/angular/angular-resource.js create mode 100644 1.1.0/js/angular/angular-resource.min.js create mode 100644 1.1.0/js/angular/angular-sanitize.js create mode 100644 1.1.0/js/angular/angular-sanitize.min.js create mode 100644 1.1.0/js/angular/angular.js create mode 100644 1.1.0/js/angular/angular.min.js create mode 100644 1.1.0/js/ionic-angular.js create mode 100644 1.1.0/js/ionic-angular.min.js create mode 100644 1.1.0/js/ionic.bundle.js create mode 100644 1.1.0/js/ionic.bundle.min.js create mode 100644 1.1.0/js/ionic.js create mode 100644 1.1.0/js/ionic.min.js create mode 100644 1.1.0/version.json diff --git a/1.0.0-beta.10-nightly-16570/ionic-v1.0.0-beta.10-nightly-16570.zip b/1.0.0-beta.10-nightly-16570/ionic-v1.0.0-beta.10-nightly-16570.zip index a35b6a3d13f73441b3fa1bcdc5da9c6e80493b9f..165bc4645e2e32851975b643e6d95450840bebe6 100644 GIT binary patch delta 687 zcmXxfT}V@57zgllGjn=!XM4|3DTAmwJvM(n>heXvWrY@}AtM(iMqY{YSNOzl?KDYnAQ z+eA}7#`Jtl0T;O84AenAoP~369vYw#n&1Llgl4z|9`M3tXn`vtA8Q>=&=)j&o37cf zLOXN_&E7fvmNuD0r=Ce%gXchj82$P?eshtzu( zeZsTo|LvjP`oq87O6k{;f8r@6Evz<3l%9{NFGnaHCRIZ=lRlSL;TH5jFZ4k_1YiIL zVF-rBT>7^6E8R*?-Vw>kyE_Z!H2+5CehO)ss}%mpypKY_!TTvpm%>UZ{B`gEtp=RM z@XE=DsabaxZ&ff(zds*j+()Y!#(OBNGX8)Eu7+3f`3SSf+qVPxIK?*@v@vz}4 RHv6Tf+sy~*%#@pJ{{fsS|8W2S delta 687 zcmXxfT}V@57zgllGjndav%P0CGt+8I&5tzQPJYaf@}wjT(iv9W{YjY)31O-chq@IV(0Tm2cxTDSD-* z=;xpcEJD$%KRu&Ou28Mz3RaOT*mCnmBaUa!pZugOTDfYt5 z+elMB#g9`M3-XoeP%kF`!D=nJa-hNjxv zpdC7dYVVwTLz_&ZQ_Cc7LYK%Sx_7sz)kC+09_pDHp^3$N1dI3f?;4XBf8yJJNWEvn zCp;VeA0Fz>-~0!ylnzh*Q%@BV#9K4+Ag=0T_Z| z7=cl-n7-rvK(~_9cSUk~?E9KAtt?60Pa!RFg~C6H4^Rj=_#lP3Qutg7e;qtPt08AG zymInUYQ8#)w<;K?-(Lwb?xWQ_<9!sqF#do-jm#fYn3VZF3h!keqVPxNK?*@v@v!bH RHpiu=*Ug9N%#53>{{a~#0=xhK diff --git a/1.1.0/css/ionic.css b/1.1.0/css/ionic.css new file mode 100644 index 00000000..ea5fc074 --- /dev/null +++ b/1.1.0/css/ionic.css @@ -0,0 +1,7697 @@ +/*! + * Copyright 2014 Drifty Co. + * http://drifty.com/ + * + * Ionic, v1.1.0 + * A powerful HTML5 mobile app framework. + * http://ionicframework.com/ + * + * By @maxlynch, @benjsperry, @adamdbradley <3 + * + * Licensed under the MIT license. Please see LICENSE for more information. + * + */ +/*! + Ionicons, v2.0.1 + Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ + https://twitter.com/benjsperry https://twitter.com/ionicframework + MIT License: https://github.com/driftyco/ionicons + + Android-style icons originally built by Google’s + Material Design Icons: https://github.com/google/material-design-icons + used under CC BY http://creativecommons.org/licenses/by/4.0/ + Modified icons to fit ionicon’s grid from original. +*/ +@font-face { + font-family: "Ionicons"; + src: url("../fonts/ionicons.eot?v=2.0.1"); + src: url("../fonts/ionicons.eot?v=2.0.1#iefix") format("embedded-opentype"), url("../fonts/ionicons.ttf?v=2.0.1") format("truetype"), url("../fonts/ionicons.woff?v=2.0.1") format("woff"), url("../fonts/ionicons.woff") format("woff"), url("../fonts/ionicons.svg?v=2.0.1#Ionicons") format("svg"); + font-weight: normal; + font-style: normal; } + +.ion, .ionicons, .ion-alert:before, .ion-alert-circled:before, .ion-android-add:before, .ion-android-add-circle:before, .ion-android-alarm-clock:before, .ion-android-alert:before, .ion-android-apps:before, .ion-android-archive:before, .ion-android-arrow-back:before, .ion-android-arrow-down:before, .ion-android-arrow-dropdown:before, .ion-android-arrow-dropdown-circle:before, .ion-android-arrow-dropleft:before, .ion-android-arrow-dropleft-circle:before, .ion-android-arrow-dropright:before, .ion-android-arrow-dropright-circle:before, .ion-android-arrow-dropup:before, .ion-android-arrow-dropup-circle:before, .ion-android-arrow-forward:before, .ion-android-arrow-up:before, .ion-android-attach:before, .ion-android-bar:before, .ion-android-bicycle:before, .ion-android-boat:before, .ion-android-bookmark:before, .ion-android-bulb:before, .ion-android-bus:before, .ion-android-calendar:before, .ion-android-call:before, .ion-android-camera:before, .ion-android-cancel:before, .ion-android-car:before, .ion-android-cart:before, .ion-android-chat:before, .ion-android-checkbox:before, .ion-android-checkbox-blank:before, .ion-android-checkbox-outline:before, .ion-android-checkbox-outline-blank:before, .ion-android-checkmark-circle:before, .ion-android-clipboard:before, .ion-android-close:before, .ion-android-cloud:before, .ion-android-cloud-circle:before, .ion-android-cloud-done:before, .ion-android-cloud-outline:before, .ion-android-color-palette:before, .ion-android-compass:before, .ion-android-contact:before, .ion-android-contacts:before, .ion-android-contract:before, .ion-android-create:before, .ion-android-delete:before, .ion-android-desktop:before, .ion-android-document:before, .ion-android-done:before, .ion-android-done-all:before, .ion-android-download:before, .ion-android-drafts:before, .ion-android-exit:before, .ion-android-expand:before, .ion-android-favorite:before, .ion-android-favorite-outline:before, .ion-android-film:before, .ion-android-folder:before, .ion-android-folder-open:before, .ion-android-funnel:before, .ion-android-globe:before, .ion-android-hand:before, .ion-android-hangout:before, .ion-android-happy:before, .ion-android-home:before, .ion-android-image:before, .ion-android-laptop:before, .ion-android-list:before, .ion-android-locate:before, .ion-android-lock:before, .ion-android-mail:before, .ion-android-map:before, .ion-android-menu:before, .ion-android-microphone:before, .ion-android-microphone-off:before, .ion-android-more-horizontal:before, .ion-android-more-vertical:before, .ion-android-navigate:before, .ion-android-notifications:before, .ion-android-notifications-none:before, .ion-android-notifications-off:before, .ion-android-open:before, .ion-android-options:before, .ion-android-people:before, .ion-android-person:before, .ion-android-person-add:before, .ion-android-phone-landscape:before, .ion-android-phone-portrait:before, .ion-android-pin:before, .ion-android-plane:before, .ion-android-playstore:before, .ion-android-print:before, .ion-android-radio-button-off:before, .ion-android-radio-button-on:before, .ion-android-refresh:before, .ion-android-remove:before, .ion-android-remove-circle:before, .ion-android-restaurant:before, .ion-android-sad:before, .ion-android-search:before, .ion-android-send:before, .ion-android-settings:before, .ion-android-share:before, .ion-android-share-alt:before, .ion-android-star:before, .ion-android-star-half:before, .ion-android-star-outline:before, .ion-android-stopwatch:before, .ion-android-subway:before, .ion-android-sunny:before, .ion-android-sync:before, .ion-android-textsms:before, .ion-android-time:before, .ion-android-train:before, .ion-android-unlock:before, .ion-android-upload:before, .ion-android-volume-down:before, .ion-android-volume-mute:before, .ion-android-volume-off:before, .ion-android-volume-up:before, .ion-android-walk:before, .ion-android-warning:before, .ion-android-watch:before, .ion-android-wifi:before, .ion-aperture:before, .ion-archive:before, .ion-arrow-down-a:before, .ion-arrow-down-b:before, .ion-arrow-down-c:before, .ion-arrow-expand:before, .ion-arrow-graph-down-left:before, .ion-arrow-graph-down-right:before, .ion-arrow-graph-up-left:before, .ion-arrow-graph-up-right:before, .ion-arrow-left-a:before, .ion-arrow-left-b:before, .ion-arrow-left-c:before, .ion-arrow-move:before, .ion-arrow-resize:before, .ion-arrow-return-left:before, .ion-arrow-return-right:before, .ion-arrow-right-a:before, .ion-arrow-right-b:before, .ion-arrow-right-c:before, .ion-arrow-shrink:before, .ion-arrow-swap:before, .ion-arrow-up-a:before, .ion-arrow-up-b:before, .ion-arrow-up-c:before, .ion-asterisk:before, .ion-at:before, .ion-backspace:before, .ion-backspace-outline:before, .ion-bag:before, .ion-battery-charging:before, .ion-battery-empty:before, .ion-battery-full:before, .ion-battery-half:before, .ion-battery-low:before, .ion-beaker:before, .ion-beer:before, .ion-bluetooth:before, .ion-bonfire:before, .ion-bookmark:before, .ion-bowtie:before, .ion-briefcase:before, .ion-bug:before, .ion-calculator:before, .ion-calendar:before, .ion-camera:before, .ion-card:before, .ion-cash:before, .ion-chatbox:before, .ion-chatbox-working:before, .ion-chatboxes:before, .ion-chatbubble:before, .ion-chatbubble-working:before, .ion-chatbubbles:before, .ion-checkmark:before, .ion-checkmark-circled:before, .ion-checkmark-round:before, .ion-chevron-down:before, .ion-chevron-left:before, .ion-chevron-right:before, .ion-chevron-up:before, .ion-clipboard:before, .ion-clock:before, .ion-close:before, .ion-close-circled:before, .ion-close-round:before, .ion-closed-captioning:before, .ion-cloud:before, .ion-code:before, .ion-code-download:before, .ion-code-working:before, .ion-coffee:before, .ion-compass:before, .ion-compose:before, .ion-connection-bars:before, .ion-contrast:before, .ion-crop:before, .ion-cube:before, .ion-disc:before, .ion-document:before, .ion-document-text:before, .ion-drag:before, .ion-earth:before, .ion-easel:before, .ion-edit:before, .ion-egg:before, .ion-eject:before, .ion-email:before, .ion-email-unread:before, .ion-erlenmeyer-flask:before, .ion-erlenmeyer-flask-bubbles:before, .ion-eye:before, .ion-eye-disabled:before, .ion-female:before, .ion-filing:before, .ion-film-marker:before, .ion-fireball:before, .ion-flag:before, .ion-flame:before, .ion-flash:before, .ion-flash-off:before, .ion-folder:before, .ion-fork:before, .ion-fork-repo:before, .ion-forward:before, .ion-funnel:before, .ion-gear-a:before, .ion-gear-b:before, .ion-grid:before, .ion-hammer:before, .ion-happy:before, .ion-happy-outline:before, .ion-headphone:before, .ion-heart:before, .ion-heart-broken:before, .ion-help:before, .ion-help-buoy:before, .ion-help-circled:before, .ion-home:before, .ion-icecream:before, .ion-image:before, .ion-images:before, .ion-information:before, .ion-information-circled:before, .ion-ionic:before, .ion-ios-alarm:before, .ion-ios-alarm-outline:before, .ion-ios-albums:before, .ion-ios-albums-outline:before, .ion-ios-americanfootball:before, .ion-ios-americanfootball-outline:before, .ion-ios-analytics:before, .ion-ios-analytics-outline:before, .ion-ios-arrow-back:before, .ion-ios-arrow-down:before, .ion-ios-arrow-forward:before, .ion-ios-arrow-left:before, .ion-ios-arrow-right:before, .ion-ios-arrow-thin-down:before, .ion-ios-arrow-thin-left:before, .ion-ios-arrow-thin-right:before, .ion-ios-arrow-thin-up:before, .ion-ios-arrow-up:before, .ion-ios-at:before, .ion-ios-at-outline:before, .ion-ios-barcode:before, .ion-ios-barcode-outline:before, .ion-ios-baseball:before, .ion-ios-baseball-outline:before, .ion-ios-basketball:before, .ion-ios-basketball-outline:before, .ion-ios-bell:before, .ion-ios-bell-outline:before, .ion-ios-body:before, .ion-ios-body-outline:before, .ion-ios-bolt:before, .ion-ios-bolt-outline:before, .ion-ios-book:before, .ion-ios-book-outline:before, .ion-ios-bookmarks:before, .ion-ios-bookmarks-outline:before, .ion-ios-box:before, .ion-ios-box-outline:before, .ion-ios-briefcase:before, .ion-ios-briefcase-outline:before, .ion-ios-browsers:before, .ion-ios-browsers-outline:before, .ion-ios-calculator:before, .ion-ios-calculator-outline:before, .ion-ios-calendar:before, .ion-ios-calendar-outline:before, .ion-ios-camera:before, .ion-ios-camera-outline:before, .ion-ios-cart:before, .ion-ios-cart-outline:before, .ion-ios-chatboxes:before, .ion-ios-chatboxes-outline:before, .ion-ios-chatbubble:before, .ion-ios-chatbubble-outline:before, .ion-ios-checkmark:before, .ion-ios-checkmark-empty:before, .ion-ios-checkmark-outline:before, .ion-ios-circle-filled:before, .ion-ios-circle-outline:before, .ion-ios-clock:before, .ion-ios-clock-outline:before, .ion-ios-close:before, .ion-ios-close-empty:before, .ion-ios-close-outline:before, .ion-ios-cloud:before, .ion-ios-cloud-download:before, .ion-ios-cloud-download-outline:before, .ion-ios-cloud-outline:before, .ion-ios-cloud-upload:before, .ion-ios-cloud-upload-outline:before, .ion-ios-cloudy:before, .ion-ios-cloudy-night:before, .ion-ios-cloudy-night-outline:before, .ion-ios-cloudy-outline:before, .ion-ios-cog:before, .ion-ios-cog-outline:before, .ion-ios-color-filter:before, .ion-ios-color-filter-outline:before, .ion-ios-color-wand:before, .ion-ios-color-wand-outline:before, .ion-ios-compose:before, .ion-ios-compose-outline:before, .ion-ios-contact:before, .ion-ios-contact-outline:before, .ion-ios-copy:before, .ion-ios-copy-outline:before, .ion-ios-crop:before, .ion-ios-crop-strong:before, .ion-ios-download:before, .ion-ios-download-outline:before, .ion-ios-drag:before, .ion-ios-email:before, .ion-ios-email-outline:before, .ion-ios-eye:before, .ion-ios-eye-outline:before, .ion-ios-fastforward:before, .ion-ios-fastforward-outline:before, .ion-ios-filing:before, .ion-ios-filing-outline:before, .ion-ios-film:before, .ion-ios-film-outline:before, .ion-ios-flag:before, .ion-ios-flag-outline:before, .ion-ios-flame:before, .ion-ios-flame-outline:before, .ion-ios-flask:before, .ion-ios-flask-outline:before, .ion-ios-flower:before, .ion-ios-flower-outline:before, .ion-ios-folder:before, .ion-ios-folder-outline:before, .ion-ios-football:before, .ion-ios-football-outline:before, .ion-ios-game-controller-a:before, .ion-ios-game-controller-a-outline:before, .ion-ios-game-controller-b:before, .ion-ios-game-controller-b-outline:before, .ion-ios-gear:before, .ion-ios-gear-outline:before, .ion-ios-glasses:before, .ion-ios-glasses-outline:before, .ion-ios-grid-view:before, .ion-ios-grid-view-outline:before, .ion-ios-heart:before, .ion-ios-heart-outline:before, .ion-ios-help:before, .ion-ios-help-empty:before, .ion-ios-help-outline:before, .ion-ios-home:before, .ion-ios-home-outline:before, .ion-ios-infinite:before, .ion-ios-infinite-outline:before, .ion-ios-information:before, .ion-ios-information-empty:before, .ion-ios-information-outline:before, .ion-ios-ionic-outline:before, .ion-ios-keypad:before, .ion-ios-keypad-outline:before, .ion-ios-lightbulb:before, .ion-ios-lightbulb-outline:before, .ion-ios-list:before, .ion-ios-list-outline:before, .ion-ios-location:before, .ion-ios-location-outline:before, .ion-ios-locked:before, .ion-ios-locked-outline:before, .ion-ios-loop:before, .ion-ios-loop-strong:before, .ion-ios-medical:before, .ion-ios-medical-outline:before, .ion-ios-medkit:before, .ion-ios-medkit-outline:before, .ion-ios-mic:before, .ion-ios-mic-off:before, .ion-ios-mic-outline:before, .ion-ios-minus:before, .ion-ios-minus-empty:before, .ion-ios-minus-outline:before, .ion-ios-monitor:before, .ion-ios-monitor-outline:before, .ion-ios-moon:before, .ion-ios-moon-outline:before, .ion-ios-more:before, .ion-ios-more-outline:before, .ion-ios-musical-note:before, .ion-ios-musical-notes:before, .ion-ios-navigate:before, .ion-ios-navigate-outline:before, .ion-ios-nutrition:before, .ion-ios-nutrition-outline:before, .ion-ios-paper:before, .ion-ios-paper-outline:before, .ion-ios-paperplane:before, .ion-ios-paperplane-outline:before, .ion-ios-partlysunny:before, .ion-ios-partlysunny-outline:before, .ion-ios-pause:before, .ion-ios-pause-outline:before, .ion-ios-paw:before, .ion-ios-paw-outline:before, .ion-ios-people:before, .ion-ios-people-outline:before, .ion-ios-person:before, .ion-ios-person-outline:before, .ion-ios-personadd:before, .ion-ios-personadd-outline:before, .ion-ios-photos:before, .ion-ios-photos-outline:before, .ion-ios-pie:before, .ion-ios-pie-outline:before, .ion-ios-pint:before, .ion-ios-pint-outline:before, .ion-ios-play:before, .ion-ios-play-outline:before, .ion-ios-plus:before, .ion-ios-plus-empty:before, .ion-ios-plus-outline:before, .ion-ios-pricetag:before, .ion-ios-pricetag-outline:before, .ion-ios-pricetags:before, .ion-ios-pricetags-outline:before, .ion-ios-printer:before, .ion-ios-printer-outline:before, .ion-ios-pulse:before, .ion-ios-pulse-strong:before, .ion-ios-rainy:before, .ion-ios-rainy-outline:before, .ion-ios-recording:before, .ion-ios-recording-outline:before, .ion-ios-redo:before, .ion-ios-redo-outline:before, .ion-ios-refresh:before, .ion-ios-refresh-empty:before, .ion-ios-refresh-outline:before, .ion-ios-reload:before, .ion-ios-reverse-camera:before, .ion-ios-reverse-camera-outline:before, .ion-ios-rewind:before, .ion-ios-rewind-outline:before, .ion-ios-rose:before, .ion-ios-rose-outline:before, .ion-ios-search:before, .ion-ios-search-strong:before, .ion-ios-settings:before, .ion-ios-settings-strong:before, .ion-ios-shuffle:before, .ion-ios-shuffle-strong:before, .ion-ios-skipbackward:before, .ion-ios-skipbackward-outline:before, .ion-ios-skipforward:before, .ion-ios-skipforward-outline:before, .ion-ios-snowy:before, .ion-ios-speedometer:before, .ion-ios-speedometer-outline:before, .ion-ios-star:before, .ion-ios-star-half:before, .ion-ios-star-outline:before, .ion-ios-stopwatch:before, .ion-ios-stopwatch-outline:before, .ion-ios-sunny:before, .ion-ios-sunny-outline:before, .ion-ios-telephone:before, .ion-ios-telephone-outline:before, .ion-ios-tennisball:before, .ion-ios-tennisball-outline:before, .ion-ios-thunderstorm:before, .ion-ios-thunderstorm-outline:before, .ion-ios-time:before, .ion-ios-time-outline:before, .ion-ios-timer:before, .ion-ios-timer-outline:before, .ion-ios-toggle:before, .ion-ios-toggle-outline:before, .ion-ios-trash:before, .ion-ios-trash-outline:before, .ion-ios-undo:before, .ion-ios-undo-outline:before, .ion-ios-unlocked:before, .ion-ios-unlocked-outline:before, .ion-ios-upload:before, .ion-ios-upload-outline:before, .ion-ios-videocam:before, .ion-ios-videocam-outline:before, .ion-ios-volume-high:before, .ion-ios-volume-low:before, .ion-ios-wineglass:before, .ion-ios-wineglass-outline:before, .ion-ios-world:before, .ion-ios-world-outline:before, .ion-ipad:before, .ion-iphone:before, .ion-ipod:before, .ion-jet:before, .ion-key:before, .ion-knife:before, .ion-laptop:before, .ion-leaf:before, .ion-levels:before, .ion-lightbulb:before, .ion-link:before, .ion-load-a:before, .ion-load-b:before, .ion-load-c:before, .ion-load-d:before, .ion-location:before, .ion-lock-combination:before, .ion-locked:before, .ion-log-in:before, .ion-log-out:before, .ion-loop:before, .ion-magnet:before, .ion-male:before, .ion-man:before, .ion-map:before, .ion-medkit:before, .ion-merge:before, .ion-mic-a:before, .ion-mic-b:before, .ion-mic-c:before, .ion-minus:before, .ion-minus-circled:before, .ion-minus-round:before, .ion-model-s:before, .ion-monitor:before, .ion-more:before, .ion-mouse:before, .ion-music-note:before, .ion-navicon:before, .ion-navicon-round:before, .ion-navigate:before, .ion-network:before, .ion-no-smoking:before, .ion-nuclear:before, .ion-outlet:before, .ion-paintbrush:before, .ion-paintbucket:before, .ion-paper-airplane:before, .ion-paperclip:before, .ion-pause:before, .ion-person:before, .ion-person-add:before, .ion-person-stalker:before, .ion-pie-graph:before, .ion-pin:before, .ion-pinpoint:before, .ion-pizza:before, .ion-plane:before, .ion-planet:before, .ion-play:before, .ion-playstation:before, .ion-plus:before, .ion-plus-circled:before, .ion-plus-round:before, .ion-podium:before, .ion-pound:before, .ion-power:before, .ion-pricetag:before, .ion-pricetags:before, .ion-printer:before, .ion-pull-request:before, .ion-qr-scanner:before, .ion-quote:before, .ion-radio-waves:before, .ion-record:before, .ion-refresh:before, .ion-reply:before, .ion-reply-all:before, .ion-ribbon-a:before, .ion-ribbon-b:before, .ion-sad:before, .ion-sad-outline:before, .ion-scissors:before, .ion-search:before, .ion-settings:before, .ion-share:before, .ion-shuffle:before, .ion-skip-backward:before, .ion-skip-forward:before, .ion-social-android:before, .ion-social-android-outline:before, .ion-social-angular:before, .ion-social-angular-outline:before, .ion-social-apple:before, .ion-social-apple-outline:before, .ion-social-bitcoin:before, .ion-social-bitcoin-outline:before, .ion-social-buffer:before, .ion-social-buffer-outline:before, .ion-social-chrome:before, .ion-social-chrome-outline:before, .ion-social-codepen:before, .ion-social-codepen-outline:before, .ion-social-css3:before, .ion-social-css3-outline:before, .ion-social-designernews:before, .ion-social-designernews-outline:before, .ion-social-dribbble:before, .ion-social-dribbble-outline:before, .ion-social-dropbox:before, .ion-social-dropbox-outline:before, .ion-social-euro:before, .ion-social-euro-outline:before, .ion-social-facebook:before, .ion-social-facebook-outline:before, .ion-social-foursquare:before, .ion-social-foursquare-outline:before, .ion-social-freebsd-devil:before, .ion-social-github:before, .ion-social-github-outline:before, .ion-social-google:before, .ion-social-google-outline:before, .ion-social-googleplus:before, .ion-social-googleplus-outline:before, .ion-social-hackernews:before, .ion-social-hackernews-outline:before, .ion-social-html5:before, .ion-social-html5-outline:before, .ion-social-instagram:before, .ion-social-instagram-outline:before, .ion-social-javascript:before, .ion-social-javascript-outline:before, .ion-social-linkedin:before, .ion-social-linkedin-outline:before, .ion-social-markdown:before, .ion-social-nodejs:before, .ion-social-octocat:before, .ion-social-pinterest:before, .ion-social-pinterest-outline:before, .ion-social-python:before, .ion-social-reddit:before, .ion-social-reddit-outline:before, .ion-social-rss:before, .ion-social-rss-outline:before, .ion-social-sass:before, .ion-social-skype:before, .ion-social-skype-outline:before, .ion-social-snapchat:before, .ion-social-snapchat-outline:before, .ion-social-tumblr:before, .ion-social-tumblr-outline:before, .ion-social-tux:before, .ion-social-twitch:before, .ion-social-twitch-outline:before, .ion-social-twitter:before, .ion-social-twitter-outline:before, .ion-social-usd:before, .ion-social-usd-outline:before, .ion-social-vimeo:before, .ion-social-vimeo-outline:before, .ion-social-whatsapp:before, .ion-social-whatsapp-outline:before, .ion-social-windows:before, .ion-social-windows-outline:before, .ion-social-wordpress:before, .ion-social-wordpress-outline:before, .ion-social-yahoo:before, .ion-social-yahoo-outline:before, .ion-social-yen:before, .ion-social-yen-outline:before, .ion-social-youtube:before, .ion-social-youtube-outline:before, .ion-soup-can:before, .ion-soup-can-outline:before, .ion-speakerphone:before, .ion-speedometer:before, .ion-spoon:before, .ion-star:before, .ion-stats-bars:before, .ion-steam:before, .ion-stop:before, .ion-thermometer:before, .ion-thumbsdown:before, .ion-thumbsup:before, .ion-toggle:before, .ion-toggle-filled:before, .ion-transgender:before, .ion-trash-a:before, .ion-trash-b:before, .ion-trophy:before, .ion-tshirt:before, .ion-tshirt-outline:before, .ion-umbrella:before, .ion-university:before, .ion-unlocked:before, .ion-upload:before, .ion-usb:before, .ion-videocamera:before, .ion-volume-high:before, .ion-volume-low:before, .ion-volume-medium:before, .ion-volume-mute:before, .ion-wand:before, .ion-waterdrop:before, .ion-wifi:before, .ion-wineglass:before, .ion-woman:before, .ion-wrench:before, .ion-xbox:before { + display: inline-block; + font-family: "Ionicons"; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + text-rendering: auto; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +.ion-alert:before { + content: "\f101"; } + +.ion-alert-circled:before { + content: "\f100"; } + +.ion-android-add:before { + content: "\f2c7"; } + +.ion-android-add-circle:before { + content: "\f359"; } + +.ion-android-alarm-clock:before { + content: "\f35a"; } + +.ion-android-alert:before { + content: "\f35b"; } + +.ion-android-apps:before { + content: "\f35c"; } + +.ion-android-archive:before { + content: "\f2c9"; } + +.ion-android-arrow-back:before { + content: "\f2ca"; } + +.ion-android-arrow-down:before { + content: "\f35d"; } + +.ion-android-arrow-dropdown:before { + content: "\f35f"; } + +.ion-android-arrow-dropdown-circle:before { + content: "\f35e"; } + +.ion-android-arrow-dropleft:before { + content: "\f361"; } + +.ion-android-arrow-dropleft-circle:before { + content: "\f360"; } + +.ion-android-arrow-dropright:before { + content: "\f363"; } + +.ion-android-arrow-dropright-circle:before { + content: "\f362"; } + +.ion-android-arrow-dropup:before { + content: "\f365"; } + +.ion-android-arrow-dropup-circle:before { + content: "\f364"; } + +.ion-android-arrow-forward:before { + content: "\f30f"; } + +.ion-android-arrow-up:before { + content: "\f366"; } + +.ion-android-attach:before { + content: "\f367"; } + +.ion-android-bar:before { + content: "\f368"; } + +.ion-android-bicycle:before { + content: "\f369"; } + +.ion-android-boat:before { + content: "\f36a"; } + +.ion-android-bookmark:before { + content: "\f36b"; } + +.ion-android-bulb:before { + content: "\f36c"; } + +.ion-android-bus:before { + content: "\f36d"; } + +.ion-android-calendar:before { + content: "\f2d1"; } + +.ion-android-call:before { + content: "\f2d2"; } + +.ion-android-camera:before { + content: "\f2d3"; } + +.ion-android-cancel:before { + content: "\f36e"; } + +.ion-android-car:before { + content: "\f36f"; } + +.ion-android-cart:before { + content: "\f370"; } + +.ion-android-chat:before { + content: "\f2d4"; } + +.ion-android-checkbox:before { + content: "\f374"; } + +.ion-android-checkbox-blank:before { + content: "\f371"; } + +.ion-android-checkbox-outline:before { + content: "\f373"; } + +.ion-android-checkbox-outline-blank:before { + content: "\f372"; } + +.ion-android-checkmark-circle:before { + content: "\f375"; } + +.ion-android-clipboard:before { + content: "\f376"; } + +.ion-android-close:before { + content: "\f2d7"; } + +.ion-android-cloud:before { + content: "\f37a"; } + +.ion-android-cloud-circle:before { + content: "\f377"; } + +.ion-android-cloud-done:before { + content: "\f378"; } + +.ion-android-cloud-outline:before { + content: "\f379"; } + +.ion-android-color-palette:before { + content: "\f37b"; } + +.ion-android-compass:before { + content: "\f37c"; } + +.ion-android-contact:before { + content: "\f2d8"; } + +.ion-android-contacts:before { + content: "\f2d9"; } + +.ion-android-contract:before { + content: "\f37d"; } + +.ion-android-create:before { + content: "\f37e"; } + +.ion-android-delete:before { + content: "\f37f"; } + +.ion-android-desktop:before { + content: "\f380"; } + +.ion-android-document:before { + content: "\f381"; } + +.ion-android-done:before { + content: "\f383"; } + +.ion-android-done-all:before { + content: "\f382"; } + +.ion-android-download:before { + content: "\f2dd"; } + +.ion-android-drafts:before { + content: "\f384"; } + +.ion-android-exit:before { + content: "\f385"; } + +.ion-android-expand:before { + content: "\f386"; } + +.ion-android-favorite:before { + content: "\f388"; } + +.ion-android-favorite-outline:before { + content: "\f387"; } + +.ion-android-film:before { + content: "\f389"; } + +.ion-android-folder:before { + content: "\f2e0"; } + +.ion-android-folder-open:before { + content: "\f38a"; } + +.ion-android-funnel:before { + content: "\f38b"; } + +.ion-android-globe:before { + content: "\f38c"; } + +.ion-android-hand:before { + content: "\f2e3"; } + +.ion-android-hangout:before { + content: "\f38d"; } + +.ion-android-happy:before { + content: "\f38e"; } + +.ion-android-home:before { + content: "\f38f"; } + +.ion-android-image:before { + content: "\f2e4"; } + +.ion-android-laptop:before { + content: "\f390"; } + +.ion-android-list:before { + content: "\f391"; } + +.ion-android-locate:before { + content: "\f2e9"; } + +.ion-android-lock:before { + content: "\f392"; } + +.ion-android-mail:before { + content: "\f2eb"; } + +.ion-android-map:before { + content: "\f393"; } + +.ion-android-menu:before { + content: "\f394"; } + +.ion-android-microphone:before { + content: "\f2ec"; } + +.ion-android-microphone-off:before { + content: "\f395"; } + +.ion-android-more-horizontal:before { + content: "\f396"; } + +.ion-android-more-vertical:before { + content: "\f397"; } + +.ion-android-navigate:before { + content: "\f398"; } + +.ion-android-notifications:before { + content: "\f39b"; } + +.ion-android-notifications-none:before { + content: "\f399"; } + +.ion-android-notifications-off:before { + content: "\f39a"; } + +.ion-android-open:before { + content: "\f39c"; } + +.ion-android-options:before { + content: "\f39d"; } + +.ion-android-people:before { + content: "\f39e"; } + +.ion-android-person:before { + content: "\f3a0"; } + +.ion-android-person-add:before { + content: "\f39f"; } + +.ion-android-phone-landscape:before { + content: "\f3a1"; } + +.ion-android-phone-portrait:before { + content: "\f3a2"; } + +.ion-android-pin:before { + content: "\f3a3"; } + +.ion-android-plane:before { + content: "\f3a4"; } + +.ion-android-playstore:before { + content: "\f2f0"; } + +.ion-android-print:before { + content: "\f3a5"; } + +.ion-android-radio-button-off:before { + content: "\f3a6"; } + +.ion-android-radio-button-on:before { + content: "\f3a7"; } + +.ion-android-refresh:before { + content: "\f3a8"; } + +.ion-android-remove:before { + content: "\f2f4"; } + +.ion-android-remove-circle:before { + content: "\f3a9"; } + +.ion-android-restaurant:before { + content: "\f3aa"; } + +.ion-android-sad:before { + content: "\f3ab"; } + +.ion-android-search:before { + content: "\f2f5"; } + +.ion-android-send:before { + content: "\f2f6"; } + +.ion-android-settings:before { + content: "\f2f7"; } + +.ion-android-share:before { + content: "\f2f8"; } + +.ion-android-share-alt:before { + content: "\f3ac"; } + +.ion-android-star:before { + content: "\f2fc"; } + +.ion-android-star-half:before { + content: "\f3ad"; } + +.ion-android-star-outline:before { + content: "\f3ae"; } + +.ion-android-stopwatch:before { + content: "\f2fd"; } + +.ion-android-subway:before { + content: "\f3af"; } + +.ion-android-sunny:before { + content: "\f3b0"; } + +.ion-android-sync:before { + content: "\f3b1"; } + +.ion-android-textsms:before { + content: "\f3b2"; } + +.ion-android-time:before { + content: "\f3b3"; } + +.ion-android-train:before { + content: "\f3b4"; } + +.ion-android-unlock:before { + content: "\f3b5"; } + +.ion-android-upload:before { + content: "\f3b6"; } + +.ion-android-volume-down:before { + content: "\f3b7"; } + +.ion-android-volume-mute:before { + content: "\f3b8"; } + +.ion-android-volume-off:before { + content: "\f3b9"; } + +.ion-android-volume-up:before { + content: "\f3ba"; } + +.ion-android-walk:before { + content: "\f3bb"; } + +.ion-android-warning:before { + content: "\f3bc"; } + +.ion-android-watch:before { + content: "\f3bd"; } + +.ion-android-wifi:before { + content: "\f305"; } + +.ion-aperture:before { + content: "\f313"; } + +.ion-archive:before { + content: "\f102"; } + +.ion-arrow-down-a:before { + content: "\f103"; } + +.ion-arrow-down-b:before { + content: "\f104"; } + +.ion-arrow-down-c:before { + content: "\f105"; } + +.ion-arrow-expand:before { + content: "\f25e"; } + +.ion-arrow-graph-down-left:before { + content: "\f25f"; } + +.ion-arrow-graph-down-right:before { + content: "\f260"; } + +.ion-arrow-graph-up-left:before { + content: "\f261"; } + +.ion-arrow-graph-up-right:before { + content: "\f262"; } + +.ion-arrow-left-a:before { + content: "\f106"; } + +.ion-arrow-left-b:before { + content: "\f107"; } + +.ion-arrow-left-c:before { + content: "\f108"; } + +.ion-arrow-move:before { + content: "\f263"; } + +.ion-arrow-resize:before { + content: "\f264"; } + +.ion-arrow-return-left:before { + content: "\f265"; } + +.ion-arrow-return-right:before { + content: "\f266"; } + +.ion-arrow-right-a:before { + content: "\f109"; } + +.ion-arrow-right-b:before { + content: "\f10a"; } + +.ion-arrow-right-c:before { + content: "\f10b"; } + +.ion-arrow-shrink:before { + content: "\f267"; } + +.ion-arrow-swap:before { + content: "\f268"; } + +.ion-arrow-up-a:before { + content: "\f10c"; } + +.ion-arrow-up-b:before { + content: "\f10d"; } + +.ion-arrow-up-c:before { + content: "\f10e"; } + +.ion-asterisk:before { + content: "\f314"; } + +.ion-at:before { + content: "\f10f"; } + +.ion-backspace:before { + content: "\f3bf"; } + +.ion-backspace-outline:before { + content: "\f3be"; } + +.ion-bag:before { + content: "\f110"; } + +.ion-battery-charging:before { + content: "\f111"; } + +.ion-battery-empty:before { + content: "\f112"; } + +.ion-battery-full:before { + content: "\f113"; } + +.ion-battery-half:before { + content: "\f114"; } + +.ion-battery-low:before { + content: "\f115"; } + +.ion-beaker:before { + content: "\f269"; } + +.ion-beer:before { + content: "\f26a"; } + +.ion-bluetooth:before { + content: "\f116"; } + +.ion-bonfire:before { + content: "\f315"; } + +.ion-bookmark:before { + content: "\f26b"; } + +.ion-bowtie:before { + content: "\f3c0"; } + +.ion-briefcase:before { + content: "\f26c"; } + +.ion-bug:before { + content: "\f2be"; } + +.ion-calculator:before { + content: "\f26d"; } + +.ion-calendar:before { + content: "\f117"; } + +.ion-camera:before { + content: "\f118"; } + +.ion-card:before { + content: "\f119"; } + +.ion-cash:before { + content: "\f316"; } + +.ion-chatbox:before { + content: "\f11b"; } + +.ion-chatbox-working:before { + content: "\f11a"; } + +.ion-chatboxes:before { + content: "\f11c"; } + +.ion-chatbubble:before { + content: "\f11e"; } + +.ion-chatbubble-working:before { + content: "\f11d"; } + +.ion-chatbubbles:before { + content: "\f11f"; } + +.ion-checkmark:before { + content: "\f122"; } + +.ion-checkmark-circled:before { + content: "\f120"; } + +.ion-checkmark-round:before { + content: "\f121"; } + +.ion-chevron-down:before { + content: "\f123"; } + +.ion-chevron-left:before { + content: "\f124"; } + +.ion-chevron-right:before { + content: "\f125"; } + +.ion-chevron-up:before { + content: "\f126"; } + +.ion-clipboard:before { + content: "\f127"; } + +.ion-clock:before { + content: "\f26e"; } + +.ion-close:before { + content: "\f12a"; } + +.ion-close-circled:before { + content: "\f128"; } + +.ion-close-round:before { + content: "\f129"; } + +.ion-closed-captioning:before { + content: "\f317"; } + +.ion-cloud:before { + content: "\f12b"; } + +.ion-code:before { + content: "\f271"; } + +.ion-code-download:before { + content: "\f26f"; } + +.ion-code-working:before { + content: "\f270"; } + +.ion-coffee:before { + content: "\f272"; } + +.ion-compass:before { + content: "\f273"; } + +.ion-compose:before { + content: "\f12c"; } + +.ion-connection-bars:before { + content: "\f274"; } + +.ion-contrast:before { + content: "\f275"; } + +.ion-crop:before { + content: "\f3c1"; } + +.ion-cube:before { + content: "\f318"; } + +.ion-disc:before { + content: "\f12d"; } + +.ion-document:before { + content: "\f12f"; } + +.ion-document-text:before { + content: "\f12e"; } + +.ion-drag:before { + content: "\f130"; } + +.ion-earth:before { + content: "\f276"; } + +.ion-easel:before { + content: "\f3c2"; } + +.ion-edit:before { + content: "\f2bf"; } + +.ion-egg:before { + content: "\f277"; } + +.ion-eject:before { + content: "\f131"; } + +.ion-email:before { + content: "\f132"; } + +.ion-email-unread:before { + content: "\f3c3"; } + +.ion-erlenmeyer-flask:before { + content: "\f3c5"; } + +.ion-erlenmeyer-flask-bubbles:before { + content: "\f3c4"; } + +.ion-eye:before { + content: "\f133"; } + +.ion-eye-disabled:before { + content: "\f306"; } + +.ion-female:before { + content: "\f278"; } + +.ion-filing:before { + content: "\f134"; } + +.ion-film-marker:before { + content: "\f135"; } + +.ion-fireball:before { + content: "\f319"; } + +.ion-flag:before { + content: "\f279"; } + +.ion-flame:before { + content: "\f31a"; } + +.ion-flash:before { + content: "\f137"; } + +.ion-flash-off:before { + content: "\f136"; } + +.ion-folder:before { + content: "\f139"; } + +.ion-fork:before { + content: "\f27a"; } + +.ion-fork-repo:before { + content: "\f2c0"; } + +.ion-forward:before { + content: "\f13a"; } + +.ion-funnel:before { + content: "\f31b"; } + +.ion-gear-a:before { + content: "\f13d"; } + +.ion-gear-b:before { + content: "\f13e"; } + +.ion-grid:before { + content: "\f13f"; } + +.ion-hammer:before { + content: "\f27b"; } + +.ion-happy:before { + content: "\f31c"; } + +.ion-happy-outline:before { + content: "\f3c6"; } + +.ion-headphone:before { + content: "\f140"; } + +.ion-heart:before { + content: "\f141"; } + +.ion-heart-broken:before { + content: "\f31d"; } + +.ion-help:before { + content: "\f143"; } + +.ion-help-buoy:before { + content: "\f27c"; } + +.ion-help-circled:before { + content: "\f142"; } + +.ion-home:before { + content: "\f144"; } + +.ion-icecream:before { + content: "\f27d"; } + +.ion-image:before { + content: "\f147"; } + +.ion-images:before { + content: "\f148"; } + +.ion-information:before { + content: "\f14a"; } + +.ion-information-circled:before { + content: "\f149"; } + +.ion-ionic:before { + content: "\f14b"; } + +.ion-ios-alarm:before { + content: "\f3c8"; } + +.ion-ios-alarm-outline:before { + content: "\f3c7"; } + +.ion-ios-albums:before { + content: "\f3ca"; } + +.ion-ios-albums-outline:before { + content: "\f3c9"; } + +.ion-ios-americanfootball:before { + content: "\f3cc"; } + +.ion-ios-americanfootball-outline:before { + content: "\f3cb"; } + +.ion-ios-analytics:before { + content: "\f3ce"; } + +.ion-ios-analytics-outline:before { + content: "\f3cd"; } + +.ion-ios-arrow-back:before { + content: "\f3cf"; } + +.ion-ios-arrow-down:before { + content: "\f3d0"; } + +.ion-ios-arrow-forward:before { + content: "\f3d1"; } + +.ion-ios-arrow-left:before { + content: "\f3d2"; } + +.ion-ios-arrow-right:before { + content: "\f3d3"; } + +.ion-ios-arrow-thin-down:before { + content: "\f3d4"; } + +.ion-ios-arrow-thin-left:before { + content: "\f3d5"; } + +.ion-ios-arrow-thin-right:before { + content: "\f3d6"; } + +.ion-ios-arrow-thin-up:before { + content: "\f3d7"; } + +.ion-ios-arrow-up:before { + content: "\f3d8"; } + +.ion-ios-at:before { + content: "\f3da"; } + +.ion-ios-at-outline:before { + content: "\f3d9"; } + +.ion-ios-barcode:before { + content: "\f3dc"; } + +.ion-ios-barcode-outline:before { + content: "\f3db"; } + +.ion-ios-baseball:before { + content: "\f3de"; } + +.ion-ios-baseball-outline:before { + content: "\f3dd"; } + +.ion-ios-basketball:before { + content: "\f3e0"; } + +.ion-ios-basketball-outline:before { + content: "\f3df"; } + +.ion-ios-bell:before { + content: "\f3e2"; } + +.ion-ios-bell-outline:before { + content: "\f3e1"; } + +.ion-ios-body:before { + content: "\f3e4"; } + +.ion-ios-body-outline:before { + content: "\f3e3"; } + +.ion-ios-bolt:before { + content: "\f3e6"; } + +.ion-ios-bolt-outline:before { + content: "\f3e5"; } + +.ion-ios-book:before { + content: "\f3e8"; } + +.ion-ios-book-outline:before { + content: "\f3e7"; } + +.ion-ios-bookmarks:before { + content: "\f3ea"; } + +.ion-ios-bookmarks-outline:before { + content: "\f3e9"; } + +.ion-ios-box:before { + content: "\f3ec"; } + +.ion-ios-box-outline:before { + content: "\f3eb"; } + +.ion-ios-briefcase:before { + content: "\f3ee"; } + +.ion-ios-briefcase-outline:before { + content: "\f3ed"; } + +.ion-ios-browsers:before { + content: "\f3f0"; } + +.ion-ios-browsers-outline:before { + content: "\f3ef"; } + +.ion-ios-calculator:before { + content: "\f3f2"; } + +.ion-ios-calculator-outline:before { + content: "\f3f1"; } + +.ion-ios-calendar:before { + content: "\f3f4"; } + +.ion-ios-calendar-outline:before { + content: "\f3f3"; } + +.ion-ios-camera:before { + content: "\f3f6"; } + +.ion-ios-camera-outline:before { + content: "\f3f5"; } + +.ion-ios-cart:before { + content: "\f3f8"; } + +.ion-ios-cart-outline:before { + content: "\f3f7"; } + +.ion-ios-chatboxes:before { + content: "\f3fa"; } + +.ion-ios-chatboxes-outline:before { + content: "\f3f9"; } + +.ion-ios-chatbubble:before { + content: "\f3fc"; } + +.ion-ios-chatbubble-outline:before { + content: "\f3fb"; } + +.ion-ios-checkmark:before { + content: "\f3ff"; } + +.ion-ios-checkmark-empty:before { + content: "\f3fd"; } + +.ion-ios-checkmark-outline:before { + content: "\f3fe"; } + +.ion-ios-circle-filled:before { + content: "\f400"; } + +.ion-ios-circle-outline:before { + content: "\f401"; } + +.ion-ios-clock:before { + content: "\f403"; } + +.ion-ios-clock-outline:before { + content: "\f402"; } + +.ion-ios-close:before { + content: "\f406"; } + +.ion-ios-close-empty:before { + content: "\f404"; } + +.ion-ios-close-outline:before { + content: "\f405"; } + +.ion-ios-cloud:before { + content: "\f40c"; } + +.ion-ios-cloud-download:before { + content: "\f408"; } + +.ion-ios-cloud-download-outline:before { + content: "\f407"; } + +.ion-ios-cloud-outline:before { + content: "\f409"; } + +.ion-ios-cloud-upload:before { + content: "\f40b"; } + +.ion-ios-cloud-upload-outline:before { + content: "\f40a"; } + +.ion-ios-cloudy:before { + content: "\f410"; } + +.ion-ios-cloudy-night:before { + content: "\f40e"; } + +.ion-ios-cloudy-night-outline:before { + content: "\f40d"; } + +.ion-ios-cloudy-outline:before { + content: "\f40f"; } + +.ion-ios-cog:before { + content: "\f412"; } + +.ion-ios-cog-outline:before { + content: "\f411"; } + +.ion-ios-color-filter:before { + content: "\f414"; } + +.ion-ios-color-filter-outline:before { + content: "\f413"; } + +.ion-ios-color-wand:before { + content: "\f416"; } + +.ion-ios-color-wand-outline:before { + content: "\f415"; } + +.ion-ios-compose:before { + content: "\f418"; } + +.ion-ios-compose-outline:before { + content: "\f417"; } + +.ion-ios-contact:before { + content: "\f41a"; } + +.ion-ios-contact-outline:before { + content: "\f419"; } + +.ion-ios-copy:before { + content: "\f41c"; } + +.ion-ios-copy-outline:before { + content: "\f41b"; } + +.ion-ios-crop:before { + content: "\f41e"; } + +.ion-ios-crop-strong:before { + content: "\f41d"; } + +.ion-ios-download:before { + content: "\f420"; } + +.ion-ios-download-outline:before { + content: "\f41f"; } + +.ion-ios-drag:before { + content: "\f421"; } + +.ion-ios-email:before { + content: "\f423"; } + +.ion-ios-email-outline:before { + content: "\f422"; } + +.ion-ios-eye:before { + content: "\f425"; } + +.ion-ios-eye-outline:before { + content: "\f424"; } + +.ion-ios-fastforward:before { + content: "\f427"; } + +.ion-ios-fastforward-outline:before { + content: "\f426"; } + +.ion-ios-filing:before { + content: "\f429"; } + +.ion-ios-filing-outline:before { + content: "\f428"; } + +.ion-ios-film:before { + content: "\f42b"; } + +.ion-ios-film-outline:before { + content: "\f42a"; } + +.ion-ios-flag:before { + content: "\f42d"; } + +.ion-ios-flag-outline:before { + content: "\f42c"; } + +.ion-ios-flame:before { + content: "\f42f"; } + +.ion-ios-flame-outline:before { + content: "\f42e"; } + +.ion-ios-flask:before { + content: "\f431"; } + +.ion-ios-flask-outline:before { + content: "\f430"; } + +.ion-ios-flower:before { + content: "\f433"; } + +.ion-ios-flower-outline:before { + content: "\f432"; } + +.ion-ios-folder:before { + content: "\f435"; } + +.ion-ios-folder-outline:before { + content: "\f434"; } + +.ion-ios-football:before { + content: "\f437"; } + +.ion-ios-football-outline:before { + content: "\f436"; } + +.ion-ios-game-controller-a:before { + content: "\f439"; } + +.ion-ios-game-controller-a-outline:before { + content: "\f438"; } + +.ion-ios-game-controller-b:before { + content: "\f43b"; } + +.ion-ios-game-controller-b-outline:before { + content: "\f43a"; } + +.ion-ios-gear:before { + content: "\f43d"; } + +.ion-ios-gear-outline:before { + content: "\f43c"; } + +.ion-ios-glasses:before { + content: "\f43f"; } + +.ion-ios-glasses-outline:before { + content: "\f43e"; } + +.ion-ios-grid-view:before { + content: "\f441"; } + +.ion-ios-grid-view-outline:before { + content: "\f440"; } + +.ion-ios-heart:before { + content: "\f443"; } + +.ion-ios-heart-outline:before { + content: "\f442"; } + +.ion-ios-help:before { + content: "\f446"; } + +.ion-ios-help-empty:before { + content: "\f444"; } + +.ion-ios-help-outline:before { + content: "\f445"; } + +.ion-ios-home:before { + content: "\f448"; } + +.ion-ios-home-outline:before { + content: "\f447"; } + +.ion-ios-infinite:before { + content: "\f44a"; } + +.ion-ios-infinite-outline:before { + content: "\f449"; } + +.ion-ios-information:before { + content: "\f44d"; } + +.ion-ios-information-empty:before { + content: "\f44b"; } + +.ion-ios-information-outline:before { + content: "\f44c"; } + +.ion-ios-ionic-outline:before { + content: "\f44e"; } + +.ion-ios-keypad:before { + content: "\f450"; } + +.ion-ios-keypad-outline:before { + content: "\f44f"; } + +.ion-ios-lightbulb:before { + content: "\f452"; } + +.ion-ios-lightbulb-outline:before { + content: "\f451"; } + +.ion-ios-list:before { + content: "\f454"; } + +.ion-ios-list-outline:before { + content: "\f453"; } + +.ion-ios-location:before { + content: "\f456"; } + +.ion-ios-location-outline:before { + content: "\f455"; } + +.ion-ios-locked:before { + content: "\f458"; } + +.ion-ios-locked-outline:before { + content: "\f457"; } + +.ion-ios-loop:before { + content: "\f45a"; } + +.ion-ios-loop-strong:before { + content: "\f459"; } + +.ion-ios-medical:before { + content: "\f45c"; } + +.ion-ios-medical-outline:before { + content: "\f45b"; } + +.ion-ios-medkit:before { + content: "\f45e"; } + +.ion-ios-medkit-outline:before { + content: "\f45d"; } + +.ion-ios-mic:before { + content: "\f461"; } + +.ion-ios-mic-off:before { + content: "\f45f"; } + +.ion-ios-mic-outline:before { + content: "\f460"; } + +.ion-ios-minus:before { + content: "\f464"; } + +.ion-ios-minus-empty:before { + content: "\f462"; } + +.ion-ios-minus-outline:before { + content: "\f463"; } + +.ion-ios-monitor:before { + content: "\f466"; } + +.ion-ios-monitor-outline:before { + content: "\f465"; } + +.ion-ios-moon:before { + content: "\f468"; } + +.ion-ios-moon-outline:before { + content: "\f467"; } + +.ion-ios-more:before { + content: "\f46a"; } + +.ion-ios-more-outline:before { + content: "\f469"; } + +.ion-ios-musical-note:before { + content: "\f46b"; } + +.ion-ios-musical-notes:before { + content: "\f46c"; } + +.ion-ios-navigate:before { + content: "\f46e"; } + +.ion-ios-navigate-outline:before { + content: "\f46d"; } + +.ion-ios-nutrition:before { + content: "\f470"; } + +.ion-ios-nutrition-outline:before { + content: "\f46f"; } + +.ion-ios-paper:before { + content: "\f472"; } + +.ion-ios-paper-outline:before { + content: "\f471"; } + +.ion-ios-paperplane:before { + content: "\f474"; } + +.ion-ios-paperplane-outline:before { + content: "\f473"; } + +.ion-ios-partlysunny:before { + content: "\f476"; } + +.ion-ios-partlysunny-outline:before { + content: "\f475"; } + +.ion-ios-pause:before { + content: "\f478"; } + +.ion-ios-pause-outline:before { + content: "\f477"; } + +.ion-ios-paw:before { + content: "\f47a"; } + +.ion-ios-paw-outline:before { + content: "\f479"; } + +.ion-ios-people:before { + content: "\f47c"; } + +.ion-ios-people-outline:before { + content: "\f47b"; } + +.ion-ios-person:before { + content: "\f47e"; } + +.ion-ios-person-outline:before { + content: "\f47d"; } + +.ion-ios-personadd:before { + content: "\f480"; } + +.ion-ios-personadd-outline:before { + content: "\f47f"; } + +.ion-ios-photos:before { + content: "\f482"; } + +.ion-ios-photos-outline:before { + content: "\f481"; } + +.ion-ios-pie:before { + content: "\f484"; } + +.ion-ios-pie-outline:before { + content: "\f483"; } + +.ion-ios-pint:before { + content: "\f486"; } + +.ion-ios-pint-outline:before { + content: "\f485"; } + +.ion-ios-play:before { + content: "\f488"; } + +.ion-ios-play-outline:before { + content: "\f487"; } + +.ion-ios-plus:before { + content: "\f48b"; } + +.ion-ios-plus-empty:before { + content: "\f489"; } + +.ion-ios-plus-outline:before { + content: "\f48a"; } + +.ion-ios-pricetag:before { + content: "\f48d"; } + +.ion-ios-pricetag-outline:before { + content: "\f48c"; } + +.ion-ios-pricetags:before { + content: "\f48f"; } + +.ion-ios-pricetags-outline:before { + content: "\f48e"; } + +.ion-ios-printer:before { + content: "\f491"; } + +.ion-ios-printer-outline:before { + content: "\f490"; } + +.ion-ios-pulse:before { + content: "\f493"; } + +.ion-ios-pulse-strong:before { + content: "\f492"; } + +.ion-ios-rainy:before { + content: "\f495"; } + +.ion-ios-rainy-outline:before { + content: "\f494"; } + +.ion-ios-recording:before { + content: "\f497"; } + +.ion-ios-recording-outline:before { + content: "\f496"; } + +.ion-ios-redo:before { + content: "\f499"; } + +.ion-ios-redo-outline:before { + content: "\f498"; } + +.ion-ios-refresh:before { + content: "\f49c"; } + +.ion-ios-refresh-empty:before { + content: "\f49a"; } + +.ion-ios-refresh-outline:before { + content: "\f49b"; } + +.ion-ios-reload:before { + content: "\f49d"; } + +.ion-ios-reverse-camera:before { + content: "\f49f"; } + +.ion-ios-reverse-camera-outline:before { + content: "\f49e"; } + +.ion-ios-rewind:before { + content: "\f4a1"; } + +.ion-ios-rewind-outline:before { + content: "\f4a0"; } + +.ion-ios-rose:before { + content: "\f4a3"; } + +.ion-ios-rose-outline:before { + content: "\f4a2"; } + +.ion-ios-search:before { + content: "\f4a5"; } + +.ion-ios-search-strong:before { + content: "\f4a4"; } + +.ion-ios-settings:before { + content: "\f4a7"; } + +.ion-ios-settings-strong:before { + content: "\f4a6"; } + +.ion-ios-shuffle:before { + content: "\f4a9"; } + +.ion-ios-shuffle-strong:before { + content: "\f4a8"; } + +.ion-ios-skipbackward:before { + content: "\f4ab"; } + +.ion-ios-skipbackward-outline:before { + content: "\f4aa"; } + +.ion-ios-skipforward:before { + content: "\f4ad"; } + +.ion-ios-skipforward-outline:before { + content: "\f4ac"; } + +.ion-ios-snowy:before { + content: "\f4ae"; } + +.ion-ios-speedometer:before { + content: "\f4b0"; } + +.ion-ios-speedometer-outline:before { + content: "\f4af"; } + +.ion-ios-star:before { + content: "\f4b3"; } + +.ion-ios-star-half:before { + content: "\f4b1"; } + +.ion-ios-star-outline:before { + content: "\f4b2"; } + +.ion-ios-stopwatch:before { + content: "\f4b5"; } + +.ion-ios-stopwatch-outline:before { + content: "\f4b4"; } + +.ion-ios-sunny:before { + content: "\f4b7"; } + +.ion-ios-sunny-outline:before { + content: "\f4b6"; } + +.ion-ios-telephone:before { + content: "\f4b9"; } + +.ion-ios-telephone-outline:before { + content: "\f4b8"; } + +.ion-ios-tennisball:before { + content: "\f4bb"; } + +.ion-ios-tennisball-outline:before { + content: "\f4ba"; } + +.ion-ios-thunderstorm:before { + content: "\f4bd"; } + +.ion-ios-thunderstorm-outline:before { + content: "\f4bc"; } + +.ion-ios-time:before { + content: "\f4bf"; } + +.ion-ios-time-outline:before { + content: "\f4be"; } + +.ion-ios-timer:before { + content: "\f4c1"; } + +.ion-ios-timer-outline:before { + content: "\f4c0"; } + +.ion-ios-toggle:before { + content: "\f4c3"; } + +.ion-ios-toggle-outline:before { + content: "\f4c2"; } + +.ion-ios-trash:before { + content: "\f4c5"; } + +.ion-ios-trash-outline:before { + content: "\f4c4"; } + +.ion-ios-undo:before { + content: "\f4c7"; } + +.ion-ios-undo-outline:before { + content: "\f4c6"; } + +.ion-ios-unlocked:before { + content: "\f4c9"; } + +.ion-ios-unlocked-outline:before { + content: "\f4c8"; } + +.ion-ios-upload:before { + content: "\f4cb"; } + +.ion-ios-upload-outline:before { + content: "\f4ca"; } + +.ion-ios-videocam:before { + content: "\f4cd"; } + +.ion-ios-videocam-outline:before { + content: "\f4cc"; } + +.ion-ios-volume-high:before { + content: "\f4ce"; } + +.ion-ios-volume-low:before { + content: "\f4cf"; } + +.ion-ios-wineglass:before { + content: "\f4d1"; } + +.ion-ios-wineglass-outline:before { + content: "\f4d0"; } + +.ion-ios-world:before { + content: "\f4d3"; } + +.ion-ios-world-outline:before { + content: "\f4d2"; } + +.ion-ipad:before { + content: "\f1f9"; } + +.ion-iphone:before { + content: "\f1fa"; } + +.ion-ipod:before { + content: "\f1fb"; } + +.ion-jet:before { + content: "\f295"; } + +.ion-key:before { + content: "\f296"; } + +.ion-knife:before { + content: "\f297"; } + +.ion-laptop:before { + content: "\f1fc"; } + +.ion-leaf:before { + content: "\f1fd"; } + +.ion-levels:before { + content: "\f298"; } + +.ion-lightbulb:before { + content: "\f299"; } + +.ion-link:before { + content: "\f1fe"; } + +.ion-load-a:before { + content: "\f29a"; } + +.ion-load-b:before { + content: "\f29b"; } + +.ion-load-c:before { + content: "\f29c"; } + +.ion-load-d:before { + content: "\f29d"; } + +.ion-location:before { + content: "\f1ff"; } + +.ion-lock-combination:before { + content: "\f4d4"; } + +.ion-locked:before { + content: "\f200"; } + +.ion-log-in:before { + content: "\f29e"; } + +.ion-log-out:before { + content: "\f29f"; } + +.ion-loop:before { + content: "\f201"; } + +.ion-magnet:before { + content: "\f2a0"; } + +.ion-male:before { + content: "\f2a1"; } + +.ion-man:before { + content: "\f202"; } + +.ion-map:before { + content: "\f203"; } + +.ion-medkit:before { + content: "\f2a2"; } + +.ion-merge:before { + content: "\f33f"; } + +.ion-mic-a:before { + content: "\f204"; } + +.ion-mic-b:before { + content: "\f205"; } + +.ion-mic-c:before { + content: "\f206"; } + +.ion-minus:before { + content: "\f209"; } + +.ion-minus-circled:before { + content: "\f207"; } + +.ion-minus-round:before { + content: "\f208"; } + +.ion-model-s:before { + content: "\f2c1"; } + +.ion-monitor:before { + content: "\f20a"; } + +.ion-more:before { + content: "\f20b"; } + +.ion-mouse:before { + content: "\f340"; } + +.ion-music-note:before { + content: "\f20c"; } + +.ion-navicon:before { + content: "\f20e"; } + +.ion-navicon-round:before { + content: "\f20d"; } + +.ion-navigate:before { + content: "\f2a3"; } + +.ion-network:before { + content: "\f341"; } + +.ion-no-smoking:before { + content: "\f2c2"; } + +.ion-nuclear:before { + content: "\f2a4"; } + +.ion-outlet:before { + content: "\f342"; } + +.ion-paintbrush:before { + content: "\f4d5"; } + +.ion-paintbucket:before { + content: "\f4d6"; } + +.ion-paper-airplane:before { + content: "\f2c3"; } + +.ion-paperclip:before { + content: "\f20f"; } + +.ion-pause:before { + content: "\f210"; } + +.ion-person:before { + content: "\f213"; } + +.ion-person-add:before { + content: "\f211"; } + +.ion-person-stalker:before { + content: "\f212"; } + +.ion-pie-graph:before { + content: "\f2a5"; } + +.ion-pin:before { + content: "\f2a6"; } + +.ion-pinpoint:before { + content: "\f2a7"; } + +.ion-pizza:before { + content: "\f2a8"; } + +.ion-plane:before { + content: "\f214"; } + +.ion-planet:before { + content: "\f343"; } + +.ion-play:before { + content: "\f215"; } + +.ion-playstation:before { + content: "\f30a"; } + +.ion-plus:before { + content: "\f218"; } + +.ion-plus-circled:before { + content: "\f216"; } + +.ion-plus-round:before { + content: "\f217"; } + +.ion-podium:before { + content: "\f344"; } + +.ion-pound:before { + content: "\f219"; } + +.ion-power:before { + content: "\f2a9"; } + +.ion-pricetag:before { + content: "\f2aa"; } + +.ion-pricetags:before { + content: "\f2ab"; } + +.ion-printer:before { + content: "\f21a"; } + +.ion-pull-request:before { + content: "\f345"; } + +.ion-qr-scanner:before { + content: "\f346"; } + +.ion-quote:before { + content: "\f347"; } + +.ion-radio-waves:before { + content: "\f2ac"; } + +.ion-record:before { + content: "\f21b"; } + +.ion-refresh:before { + content: "\f21c"; } + +.ion-reply:before { + content: "\f21e"; } + +.ion-reply-all:before { + content: "\f21d"; } + +.ion-ribbon-a:before { + content: "\f348"; } + +.ion-ribbon-b:before { + content: "\f349"; } + +.ion-sad:before { + content: "\f34a"; } + +.ion-sad-outline:before { + content: "\f4d7"; } + +.ion-scissors:before { + content: "\f34b"; } + +.ion-search:before { + content: "\f21f"; } + +.ion-settings:before { + content: "\f2ad"; } + +.ion-share:before { + content: "\f220"; } + +.ion-shuffle:before { + content: "\f221"; } + +.ion-skip-backward:before { + content: "\f222"; } + +.ion-skip-forward:before { + content: "\f223"; } + +.ion-social-android:before { + content: "\f225"; } + +.ion-social-android-outline:before { + content: "\f224"; } + +.ion-social-angular:before { + content: "\f4d9"; } + +.ion-social-angular-outline:before { + content: "\f4d8"; } + +.ion-social-apple:before { + content: "\f227"; } + +.ion-social-apple-outline:before { + content: "\f226"; } + +.ion-social-bitcoin:before { + content: "\f2af"; } + +.ion-social-bitcoin-outline:before { + content: "\f2ae"; } + +.ion-social-buffer:before { + content: "\f229"; } + +.ion-social-buffer-outline:before { + content: "\f228"; } + +.ion-social-chrome:before { + content: "\f4db"; } + +.ion-social-chrome-outline:before { + content: "\f4da"; } + +.ion-social-codepen:before { + content: "\f4dd"; } + +.ion-social-codepen-outline:before { + content: "\f4dc"; } + +.ion-social-css3:before { + content: "\f4df"; } + +.ion-social-css3-outline:before { + content: "\f4de"; } + +.ion-social-designernews:before { + content: "\f22b"; } + +.ion-social-designernews-outline:before { + content: "\f22a"; } + +.ion-social-dribbble:before { + content: "\f22d"; } + +.ion-social-dribbble-outline:before { + content: "\f22c"; } + +.ion-social-dropbox:before { + content: "\f22f"; } + +.ion-social-dropbox-outline:before { + content: "\f22e"; } + +.ion-social-euro:before { + content: "\f4e1"; } + +.ion-social-euro-outline:before { + content: "\f4e0"; } + +.ion-social-facebook:before { + content: "\f231"; } + +.ion-social-facebook-outline:before { + content: "\f230"; } + +.ion-social-foursquare:before { + content: "\f34d"; } + +.ion-social-foursquare-outline:before { + content: "\f34c"; } + +.ion-social-freebsd-devil:before { + content: "\f2c4"; } + +.ion-social-github:before { + content: "\f233"; } + +.ion-social-github-outline:before { + content: "\f232"; } + +.ion-social-google:before { + content: "\f34f"; } + +.ion-social-google-outline:before { + content: "\f34e"; } + +.ion-social-googleplus:before { + content: "\f235"; } + +.ion-social-googleplus-outline:before { + content: "\f234"; } + +.ion-social-hackernews:before { + content: "\f237"; } + +.ion-social-hackernews-outline:before { + content: "\f236"; } + +.ion-social-html5:before { + content: "\f4e3"; } + +.ion-social-html5-outline:before { + content: "\f4e2"; } + +.ion-social-instagram:before { + content: "\f351"; } + +.ion-social-instagram-outline:before { + content: "\f350"; } + +.ion-social-javascript:before { + content: "\f4e5"; } + +.ion-social-javascript-outline:before { + content: "\f4e4"; } + +.ion-social-linkedin:before { + content: "\f239"; } + +.ion-social-linkedin-outline:before { + content: "\f238"; } + +.ion-social-markdown:before { + content: "\f4e6"; } + +.ion-social-nodejs:before { + content: "\f4e7"; } + +.ion-social-octocat:before { + content: "\f4e8"; } + +.ion-social-pinterest:before { + content: "\f2b1"; } + +.ion-social-pinterest-outline:before { + content: "\f2b0"; } + +.ion-social-python:before { + content: "\f4e9"; } + +.ion-social-reddit:before { + content: "\f23b"; } + +.ion-social-reddit-outline:before { + content: "\f23a"; } + +.ion-social-rss:before { + content: "\f23d"; } + +.ion-social-rss-outline:before { + content: "\f23c"; } + +.ion-social-sass:before { + content: "\f4ea"; } + +.ion-social-skype:before { + content: "\f23f"; } + +.ion-social-skype-outline:before { + content: "\f23e"; } + +.ion-social-snapchat:before { + content: "\f4ec"; } + +.ion-social-snapchat-outline:before { + content: "\f4eb"; } + +.ion-social-tumblr:before { + content: "\f241"; } + +.ion-social-tumblr-outline:before { + content: "\f240"; } + +.ion-social-tux:before { + content: "\f2c5"; } + +.ion-social-twitch:before { + content: "\f4ee"; } + +.ion-social-twitch-outline:before { + content: "\f4ed"; } + +.ion-social-twitter:before { + content: "\f243"; } + +.ion-social-twitter-outline:before { + content: "\f242"; } + +.ion-social-usd:before { + content: "\f353"; } + +.ion-social-usd-outline:before { + content: "\f352"; } + +.ion-social-vimeo:before { + content: "\f245"; } + +.ion-social-vimeo-outline:before { + content: "\f244"; } + +.ion-social-whatsapp:before { + content: "\f4f0"; } + +.ion-social-whatsapp-outline:before { + content: "\f4ef"; } + +.ion-social-windows:before { + content: "\f247"; } + +.ion-social-windows-outline:before { + content: "\f246"; } + +.ion-social-wordpress:before { + content: "\f249"; } + +.ion-social-wordpress-outline:before { + content: "\f248"; } + +.ion-social-yahoo:before { + content: "\f24b"; } + +.ion-social-yahoo-outline:before { + content: "\f24a"; } + +.ion-social-yen:before { + content: "\f4f2"; } + +.ion-social-yen-outline:before { + content: "\f4f1"; } + +.ion-social-youtube:before { + content: "\f24d"; } + +.ion-social-youtube-outline:before { + content: "\f24c"; } + +.ion-soup-can:before { + content: "\f4f4"; } + +.ion-soup-can-outline:before { + content: "\f4f3"; } + +.ion-speakerphone:before { + content: "\f2b2"; } + +.ion-speedometer:before { + content: "\f2b3"; } + +.ion-spoon:before { + content: "\f2b4"; } + +.ion-star:before { + content: "\f24e"; } + +.ion-stats-bars:before { + content: "\f2b5"; } + +.ion-steam:before { + content: "\f30b"; } + +.ion-stop:before { + content: "\f24f"; } + +.ion-thermometer:before { + content: "\f2b6"; } + +.ion-thumbsdown:before { + content: "\f250"; } + +.ion-thumbsup:before { + content: "\f251"; } + +.ion-toggle:before { + content: "\f355"; } + +.ion-toggle-filled:before { + content: "\f354"; } + +.ion-transgender:before { + content: "\f4f5"; } + +.ion-trash-a:before { + content: "\f252"; } + +.ion-trash-b:before { + content: "\f253"; } + +.ion-trophy:before { + content: "\f356"; } + +.ion-tshirt:before { + content: "\f4f7"; } + +.ion-tshirt-outline:before { + content: "\f4f6"; } + +.ion-umbrella:before { + content: "\f2b7"; } + +.ion-university:before { + content: "\f357"; } + +.ion-unlocked:before { + content: "\f254"; } + +.ion-upload:before { + content: "\f255"; } + +.ion-usb:before { + content: "\f2b8"; } + +.ion-videocamera:before { + content: "\f256"; } + +.ion-volume-high:before { + content: "\f257"; } + +.ion-volume-low:before { + content: "\f258"; } + +.ion-volume-medium:before { + content: "\f259"; } + +.ion-volume-mute:before { + content: "\f25a"; } + +.ion-wand:before { + content: "\f358"; } + +.ion-waterdrop:before { + content: "\f25b"; } + +.ion-wifi:before { + content: "\f25c"; } + +.ion-wineglass:before { + content: "\f2b9"; } + +.ion-woman:before { + content: "\f25d"; } + +.ion-wrench:before { + content: "\f2ba"; } + +.ion-xbox:before { + content: "\f30c"; } + +/** + * Resets + * -------------------------------------------------- + * Adapted from normalize.css and some reset.css. We don't care even one + * bit about old IE, so we don't need any hacks for that in here. + * + * There are probably other things we could remove here, as well. + * + * normalize.css v2.1.2 | MIT License | git.io/normalize + + * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/) + * http://cssreset.com + */ +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, i, u, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, fieldset, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + vertical-align: baseline; + font: inherit; + font-size: 100%; } + +ol, ul { + list-style: none; } + +blockquote, q { + quotes: none; } + +blockquote:before, blockquote:after, q:before, q:after { + content: ''; + content: none; } + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; } + +/** + * Hide the `template` element in IE, Safari, and Firefox < 22. + */ +[hidden], template { + display: none; } + +script { + display: none !important; } + +/* ========================================================================== + Base + ========================================================================== */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ +html { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + font-family: sans-serif; + /* 1 */ + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ } + +/** + * Remove default margin. + */ +body { + margin: 0; + line-height: 1; } + +/** + * Remove default outlines. + */ +a, button, :focus, a:focus, button:focus, a:active, a:hover { + outline: 0; } + +/* * + * Remove tap highlight color + */ +a { + -webkit-user-drag: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-tap-highlight-color: transparent; } + a[href]:hover { + cursor: pointer; } + +/* ========================================================================== + Typography + ========================================================================== */ +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ +b, strong { + font-weight: bold; } + +/** + * Address styling not present in Safari 5 and Chrome. + */ +dfn { + font-style: italic; } + +/** + * Address differences between Firefox and other browsers. + */ +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; } + +/** + * Correct font family set oddly in Safari 5 and Chrome. + */ +code, kbd, pre, samp { + font-size: 1em; + font-family: monospace, serif; } + +/** + * Improve readability of pre-formatted text in all browsers. + */ +pre { + white-space: pre-wrap; } + +/** + * Set consistent quote types. + */ +q { + quotes: "\201C" "\201D" "\2018" "\2019"; } + +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; } + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, sup { + position: relative; + vertical-align: baseline; + font-size: 75%; + line-height: 0; } + +sup { + top: -0.5em; } + +sub { + bottom: -0.25em; } + +/** + * Define consistent border, margin, and padding. + */ +fieldset { + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; + border: 1px solid #c0c0c0; } + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + padding: 0; + /* 2 */ + border: 0; + /* 1 */ } + +/** + * 1. Correct font family not being inherited in all browsers. + * 2. Correct font size not being inherited in all browsers. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + * 4. Remove any default :focus styles + * 5. Make sure webkit font smoothing is being inherited + * 6. Remove default gradient in Android Firefox / FirefoxOS + */ +button, input, select, textarea { + margin: 0; + /* 3 */ + font-size: 100%; + /* 2 */ + font-family: inherit; + /* 1 */ + outline-offset: 0; + /* 4 */ + outline-style: none; + /* 4 */ + outline-width: 0; + /* 4 */ + -webkit-font-smoothing: inherit; + /* 5 */ + background-image: none; + /* 6 */ } + +/** + * Address Firefox 4+ setting `line-height` on `input` using `importnt` in + * the UA stylesheet. + */ +button, input { + line-height: normal; } + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. + * Correct `select` style inheritance in Firefox 4+ and Opera. + */ +button, select { + text-transform: none; } + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ +button, html input[type="button"], input[type="reset"], input[type="submit"] { + cursor: pointer; + /* 3 */ + -webkit-appearance: button; + /* 2 */ } + +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], html input[disabled] { + cursor: default; } + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ +input[type="search"] { + -webkit-box-sizing: content-box; + /* 2 */ + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; + /* 1 */ } + +/** + * Remove inner padding and search cancel button in Safari 5 and Chrome + * on OS X. + */ +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, input::-moz-focus-inner { + padding: 0; + border: 0; } + +/** + * 1. Remove default vertical scrollbar in IE 8/9. + * 2. Improve readability and alignment in all browsers. + */ +textarea { + overflow: auto; + /* 1 */ + vertical-align: top; + /* 2 */ } + +img { + -webkit-user-drag: none; } + +/* ========================================================================== + Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-spacing: 0; + border-collapse: collapse; } + +/** + * Scaffolding + * -------------------------------------------------- + */ +*, *:before, *:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + +html { + overflow: hidden; + -ms-touch-action: pan-y; + touch-action: pan-y; } + +body, .ionic-body { + -webkit-touch-callout: none; + -webkit-font-smoothing: antialiased; + font-smoothing: antialiased; + -webkit-text-size-adjust: none; + -moz-text-size-adjust: none; + text-size-adjust: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-tap-highlight-color: transparent; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow: hidden; + margin: 0; + padding: 0; + color: #000; + word-wrap: break-word; + font-size: 14px; + font-family: "Helvetica Neue", "Roboto", "Segoe UI", sans-serif; + line-height: 20px; + text-rendering: optimizeLegibility; + -webkit-backface-visibility: hidden; + -webkit-user-drag: none; + -ms-content-zooming: none; } + +body.grade-b, body.grade-c { + text-rendering: auto; } + +.content { + position: relative; } + +.scroll-content { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow: hidden; + margin-top: -1px; + padding-top: 1px; + margin-bottom: -1px; + width: auto; + height: auto; } + +.menu .scroll-content.scroll-content-false { + z-index: 11; } + +.scroll-view { + position: relative; + display: block; + overflow: hidden; + margin-top: -1px; } + +/** + * Scroll is the scroll view component available for complex and custom + * scroll view functionality. + */ +.scroll { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-touch-callout: none; + -webkit-text-size-adjust: none; + -moz-text-size-adjust: none; + text-size-adjust: none; + -webkit-transform-origin: left top; + transform-origin: left top; } + +/** + * Set ms-viewport to prevent MS "page squish" and allow fluid scrolling + * https://msdn.microsoft.com/en-us/library/ie/hh869615(v=vs.85).aspx + */ +@-ms-viewport { + width: device-width; } + +.scroll-bar { + position: absolute; + z-index: 9999; } + +.ng-animate .scroll-bar { + visibility: hidden; } + +.scroll-bar-h { + right: 2px; + bottom: 3px; + left: 2px; + height: 3px; } + .scroll-bar-h .scroll-bar-indicator { + height: 100%; } + +.scroll-bar-v { + top: 2px; + right: 3px; + bottom: 2px; + width: 3px; } + .scroll-bar-v .scroll-bar-indicator { + width: 100%; } + +.scroll-bar-indicator { + position: absolute; + border-radius: 4px; + background: rgba(0, 0, 0, 0.3); + opacity: 1; + -webkit-transition: opacity 0.3s linear; + transition: opacity 0.3s linear; } + .scroll-bar-indicator.scroll-bar-fade-out { + opacity: 0; } + +.platform-android .scroll-bar-indicator { + border-radius: 0; } + +.grade-b .scroll-bar-indicator, .grade-c .scroll-bar-indicator { + background: #aaa; } + .grade-b .scroll-bar-indicator.scroll-bar-fade-out, .grade-c .scroll-bar-indicator.scroll-bar-fade-out { + -webkit-transition: none; + transition: none; } + +ion-infinite-scroll { + height: 60px; + width: 100%; + display: block; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-direction: normal; + -webkit-box-orient: horizontal; + -webkit-flex-direction: row; + -moz-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + -moz-justify-content: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; } + ion-infinite-scroll .icon { + color: #666666; + font-size: 30px; + color: #666666; } + ion-infinite-scroll:not(.active) .spinner, ion-infinite-scroll:not(.active) .icon:before { + display: none; } + +.overflow-scroll { + overflow-x: hidden; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; + top: 0; + right: 0; + bottom: 0; + left: 0; + position: absolute; } + .overflow-scroll .scroll { + position: static; + height: 100%; + -webkit-transform: translate3d(0, 0, 0); } + +/* If you change these, change platform.scss as well */ +.has-header { + top: 44px; } + +.no-header { + top: 0; } + +.has-subheader { + top: 88px; } + +.has-tabs-top { + top: 93px; } + +.has-header.has-subheader.has-tabs-top { + top: 137px; } + +.has-footer { + bottom: 44px; } + +.has-subfooter { + bottom: 88px; } + +.has-tabs, .bar-footer.has-tabs { + bottom: 49px; } + .has-tabs.pane, .bar-footer.has-tabs.pane { + bottom: 49px; + height: auto; } + +.has-footer.has-tabs { + bottom: 93px; } + +.pane { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-transition-duration: 0; + transition-duration: 0; + z-index: 1; } + +.view { + z-index: 1; } + +.pane, .view { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #fff; + overflow: hidden; } + +.view-container { + position: absolute; + display: block; + width: 100%; + height: 100%; } + +/** + * Typography + * -------------------------------------------------- + */ +p { + margin: 0 0 10px; } + +small { + font-size: 85%; } + +cite { + font-style: normal; } + +.text-left { + text-align: left; } + +.text-right { + text-align: right; } + +.text-center { + text-align: center; } + +h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { + color: #000; + font-weight: 500; + font-family: "Helvetica Neue", "Roboto", "Segoe UI", sans-serif; + line-height: 1.2; } + h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small { + font-weight: normal; + line-height: 1; } + +h1, .h1, h2, .h2, h3, .h3 { + margin-top: 20px; + margin-bottom: 10px; } + h1:first-child, .h1:first-child, h2:first-child, .h2:first-child, h3:first-child, .h3:first-child { + margin-top: 0; } + h1 + h1, h1 + .h1, h1 + h2, h1 + .h2, h1 + h3, h1 + .h3, .h1 + h1, .h1 + .h1, .h1 + h2, .h1 + .h2, .h1 + h3, .h1 + .h3, h2 + h1, h2 + .h1, h2 + h2, h2 + .h2, h2 + h3, h2 + .h3, .h2 + h1, .h2 + .h1, .h2 + h2, .h2 + .h2, .h2 + h3, .h2 + .h3, h3 + h1, h3 + .h1, h3 + h2, h3 + .h2, h3 + h3, h3 + .h3, .h3 + h1, .h3 + .h1, .h3 + h2, .h3 + .h2, .h3 + h3, .h3 + .h3 { + margin-top: 10px; } + +h4, .h4, h5, .h5, h6, .h6 { + margin-top: 10px; + margin-bottom: 10px; } + +h1, .h1 { + font-size: 36px; } + +h2, .h2 { + font-size: 30px; } + +h3, .h3 { + font-size: 24px; } + +h4, .h4 { + font-size: 18px; } + +h5, .h5 { + font-size: 14px; } + +h6, .h6 { + font-size: 12px; } + +h1 small, .h1 small { + font-size: 24px; } + +h2 small, .h2 small { + font-size: 18px; } + +h3 small, .h3 small, h4 small, .h4 small { + font-size: 14px; } + +dl { + margin-bottom: 20px; } + +dt, dd { + line-height: 1.42857; } + +dt { + font-weight: bold; } + +blockquote { + margin: 0 0 20px; + padding: 10px 20px; + border-left: 5px solid gray; } + blockquote p { + font-weight: 300; + font-size: 17.5px; + line-height: 1.25; } + blockquote p:last-child { + margin-bottom: 0; } + blockquote small { + display: block; + line-height: 1.42857; } + blockquote small:before { + content: '\2014 \00A0'; } + +q:before, q:after, blockquote:before, blockquote:after { + content: ""; } + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857; } + +a.subdued { + padding-right: 10px; + color: #888; + text-decoration: none; } + a.subdued:hover { + text-decoration: none; } + a.subdued:last-child { + padding-right: 0; } + +/** + * Action Sheets + * -------------------------------------------------- + */ +.action-sheet-backdrop { + -webkit-transition: background-color 150ms ease-in-out; + transition: background-color 150ms ease-in-out; + position: fixed; + top: 0; + left: 0; + z-index: 11; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0); } + .action-sheet-backdrop.active { + background-color: rgba(0, 0, 0, 0.4); } + +.action-sheet-wrapper { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + -webkit-transition: all cubic-bezier(0.36, 0.66, 0.04, 1) 500ms; + transition: all cubic-bezier(0.36, 0.66, 0.04, 1) 500ms; + position: absolute; + bottom: 0; + left: 0; + right: 0; + width: 100%; + max-width: 500px; + margin: auto; } + +.action-sheet-up { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + +.action-sheet { + margin-left: 8px; + margin-right: 8px; + width: auto; + z-index: 11; + overflow: hidden; } + .action-sheet .button { + display: block; + padding: 1px; + width: 100%; + border-radius: 0; + border-color: #d1d3d6; + background-color: transparent; + color: #007aff; + font-size: 21px; } + .action-sheet .button:hover { + color: #007aff; } + .action-sheet .button.destructive { + color: #ff3b30; } + .action-sheet .button.destructive:hover { + color: #ff3b30; } + .action-sheet .button.active, .action-sheet .button.activated { + box-shadow: none; + border-color: #d1d3d6; + color: #007aff; + background: #e4e5e7; } + +.action-sheet-has-icons .icon { + position: absolute; + left: 16px; } + +.action-sheet-title { + padding: 16px; + color: #8f8f8f; + text-align: center; + font-size: 13px; } + +.action-sheet-group { + margin-bottom: 8px; + border-radius: 4px; + background-color: #fff; + overflow: hidden; } + .action-sheet-group .button { + border-width: 1px 0px 0px 0px; } + .action-sheet-group .button:first-child:last-child { + border-width: 0; } + +.action-sheet-options { + background: #f1f2f3; } + +.action-sheet-cancel .button { + font-weight: 500; } + +.action-sheet-open { + pointer-events: none; } + .action-sheet-open.modal-open .modal { + pointer-events: none; } + .action-sheet-open .action-sheet-backdrop { + pointer-events: auto; } + +.platform-android .action-sheet-backdrop.active { + background-color: rgba(0, 0, 0, 0.2); } +.platform-android .action-sheet { + margin: 0; } + .platform-android .action-sheet .action-sheet-title, .platform-android .action-sheet .button { + text-align: left; + border-color: transparent; + font-size: 16px; + color: inherit; } + .platform-android .action-sheet .action-sheet-title { + font-size: 14px; + padding: 16px; + color: #666; } + .platform-android .action-sheet .button.active, .platform-android .action-sheet .button.activated { + background: #e8e8e8; } +.platform-android .action-sheet-group { + margin: 0; + border-radius: 0; + background-color: #fafafa; } +.platform-android .action-sheet-cancel { + display: none; } +.platform-android .action-sheet-has-icons .button { + padding-left: 56px; } + +.backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 11; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); + visibility: hidden; + opacity: 0; + -webkit-transition: 0.1s opacity linear; + transition: 0.1s opacity linear; } + .backdrop.visible { + visibility: visible; } + .backdrop.active { + opacity: 1; } + +/** + * Bar (Headers and Footers) + * -------------------------------------------------- + */ +.bar { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + position: absolute; + right: 0; + left: 0; + z-index: 9; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 5px; + width: 100%; + height: 44px; + border-width: 0; + border-style: solid; + border-top: 1px solid transparent; + border-bottom: 1px solid #ddd; + background-color: white; + /* border-width: 1px will actually create 2 device pixels on retina */ + /* this nifty trick sets an actual 1px border on hi-res displays */ + background-size: 0; } + @media (min--moz-device-pixel-ratio: 1.5), (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi), (min-resolution: 1.5dppx) { + .bar { + border: none; + background-image: linear-gradient(0deg, #ddd, #ddd 50%, transparent 50%); + background-position: bottom; + background-size: 100% 1px; + background-repeat: no-repeat; } } + .bar.bar-clear { + border: none; + background: none; + color: #fff; } + .bar.bar-clear .button { + color: #fff; } + .bar.bar-clear .title { + color: #fff; } + .bar.item-input-inset .item-input-wrapper { + margin-top: -1px; } + .bar.item-input-inset .item-input-wrapper input { + padding-left: 8px; + width: 94%; + height: 28px; + background: transparent; } + .bar.bar-light { + border-color: #ddd; + background-color: white; + background-image: linear-gradient(0deg, #ddd, #ddd 50%, transparent 50%); + color: #444; } + .bar.bar-light .title { + color: #444; } + .bar.bar-light.bar-footer { + background-image: linear-gradient(180deg, #ddd, #ddd 50%, transparent 50%); } + .bar.bar-stable { + border-color: #b2b2b2; + background-color: #f8f8f8; + background-image: linear-gradient(0deg, #b2b2b2, #b2b2b2 50%, transparent 50%); + color: #444; } + .bar.bar-stable .title { + color: #444; } + .bar.bar-stable.bar-footer { + background-image: linear-gradient(180deg, #b2b2b2, #b2b2b2 50%, transparent 50%); } + .bar.bar-positive { + border-color: #0c63ee; + background-color: #387ef5; + background-image: linear-gradient(0deg, #0c63ee, #0c63ee 50%, transparent 50%); + color: #fff; } + .bar.bar-positive .title { + color: #fff; } + .bar.bar-positive.bar-footer { + background-image: linear-gradient(180deg, #0c63ee, #0c63ee 50%, transparent 50%); } + .bar.bar-calm { + border-color: #0a9ec7; + background-color: #11c1f3; + background-image: linear-gradient(0deg, #0a9ec7, #0a9ec7 50%, transparent 50%); + color: #fff; } + .bar.bar-calm .title { + color: #fff; } + .bar.bar-calm.bar-footer { + background-image: linear-gradient(180deg, #0a9ec7, #0a9ec7 50%, transparent 50%); } + .bar.bar-assertive { + border-color: #e42012; + background-color: #ef473a; + background-image: linear-gradient(0deg, #e42012, #e42012 50%, transparent 50%); + color: #fff; } + .bar.bar-assertive .title { + color: #fff; } + .bar.bar-assertive.bar-footer { + background-image: linear-gradient(180deg, #e42012, #e42012 50%, transparent 50%); } + .bar.bar-balanced { + border-color: #28a54c; + background-color: #33cd5f; + background-image: linear-gradient(0deg, #28a54c, #28a54c 50%, transparent 50%); + color: #fff; } + .bar.bar-balanced .title { + color: #fff; } + .bar.bar-balanced.bar-footer { + background-image: linear-gradient(180deg, #28a54c, #0c63ee 50%, transparent 50%); } + .bar.bar-energized { + border-color: #e6b400; + background-color: #ffc900; + background-image: linear-gradient(0deg, #e6b400, #e6b400 50%, transparent 50%); + color: #fff; } + .bar.bar-energized .title { + color: #fff; } + .bar.bar-energized.bar-footer { + background-image: linear-gradient(180deg, #e6b400, #e6b400 50%, transparent 50%); } + .bar.bar-royal { + border-color: #6b46e5; + background-color: #886aea; + background-image: linear-gradient(0deg, #6b46e5, #6b46e5 50%, transparent 50%); + color: #fff; } + .bar.bar-royal .title { + color: #fff; } + .bar.bar-royal.bar-footer { + background-image: linear-gradient(180deg, #6b46e5, #6b46e5 50%, transparent 50%); } + .bar.bar-dark { + border-color: #111; + background-color: #444444; + background-image: linear-gradient(0deg, #111, #111 50%, transparent 50%); + color: #fff; } + .bar.bar-dark .title { + color: #fff; } + .bar.bar-dark.bar-footer { + background-image: linear-gradient(180deg, #111, #111 50%, transparent 50%); } + .bar .title { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 0; + overflow: hidden; + margin: 0 10px; + min-width: 30px; + height: 43px; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 17px; + font-weight: 500; + line-height: 44px; } + .bar .title.title-left { + text-align: left; } + .bar .title.title-right { + text-align: right; } + .bar .title a { + color: inherit; } + .bar .button { + z-index: 1; + padding: 0 8px; + min-width: initial; + min-height: 31px; + font-weight: 400; + font-size: 13px; + line-height: 32px; } + .bar .button.button-icon:before, .bar .button .icon:before, .bar .button.icon:before, .bar .button.icon-left:before, .bar .button.icon-right:before { + padding-right: 2px; + padding-left: 2px; + font-size: 20px; + line-height: 32px; } + .bar .button.button-icon { + font-size: 17px; } + .bar .button.button-icon .icon:before, .bar .button.button-icon:before, .bar .button.button-icon.icon-left:before, .bar .button.button-icon.icon-right:before { + vertical-align: top; + font-size: 32px; + line-height: 32px; } + .bar .button.button-clear { + padding-right: 2px; + padding-left: 2px; + font-weight: 300; + font-size: 17px; } + .bar .button.button-clear .icon:before, .bar .button.button-clear.icon:before, .bar .button.button-clear.icon-left:before, .bar .button.button-clear.icon-right:before { + font-size: 32px; + line-height: 32px; } + .bar .button.back-button { + display: block; + margin-right: 5px; + padding: 0; + white-space: nowrap; + font-weight: 400; } + .bar .button.back-button.active, .bar .button.back-button.activated { + opacity: 0.2; } + .bar .button-bar > .button, .bar .buttons > .button { + min-height: 31px; + line-height: 32px; } + .bar .button-bar + .button, .bar .button + .button-bar { + margin-left: 5px; } + .bar .buttons, .bar .buttons.primary-buttons, .bar .buttons.secondary-buttons { + display: inherit; } + .bar .buttons span { + display: inline-block; } + .bar .buttons-left span { + margin-right: 5px; + display: inherit; } + .bar .buttons-right span { + margin-left: 5px; + display: inherit; } + .bar .title + .button:last-child, .bar > .button + .button:last-child, .bar > .button.pull-right, .bar .buttons.pull-right, .bar .title + .buttons { + position: absolute; + top: 5px; + right: 5px; + bottom: 5px; } + +.platform-android .nav-bar-has-subheader .bar { + background-image: none; } +.platform-android .bar .back-button .icon:before { + font-size: 24px; } +.platform-android .bar .title { + font-size: 19px; + line-height: 44px; } + +.bar-light .button { + border-color: #ddd; + background-color: white; + color: #444; } + .bar-light .button:hover { + color: #444; + text-decoration: none; } + .bar-light .button.active, .bar-light .button.activated { + border-color: #ccc; + background-color: #fafafa; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .bar-light .button.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #444; + font-size: 17px; } + .bar-light .button.button-icon { + border-color: transparent; + background: none; } + +.bar-stable .button { + border-color: #b2b2b2; + background-color: #f8f8f8; + color: #444; } + .bar-stable .button:hover { + color: #444; + text-decoration: none; } + .bar-stable .button.active, .bar-stable .button.activated { + border-color: #a2a2a2; + background-color: #e5e5e5; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .bar-stable .button.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #444; + font-size: 17px; } + .bar-stable .button.button-icon { + border-color: transparent; + background: none; } + +.bar-positive .button { + border-color: #0c63ee; + background-color: #387ef5; + color: #fff; } + .bar-positive .button:hover { + color: #fff; + text-decoration: none; } + .bar-positive .button.active, .bar-positive .button.activated { + border-color: #0c63ee; + background-color: #0c63ee; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .bar-positive .button.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #fff; + font-size: 17px; } + .bar-positive .button.button-icon { + border-color: transparent; + background: none; } + +.bar-calm .button { + border-color: #0a9ec7; + background-color: #11c1f3; + color: #fff; } + .bar-calm .button:hover { + color: #fff; + text-decoration: none; } + .bar-calm .button.active, .bar-calm .button.activated { + border-color: #0a9ec7; + background-color: #0a9ec7; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .bar-calm .button.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #fff; + font-size: 17px; } + .bar-calm .button.button-icon { + border-color: transparent; + background: none; } + +.bar-assertive .button { + border-color: #e42012; + background-color: #ef473a; + color: #fff; } + .bar-assertive .button:hover { + color: #fff; + text-decoration: none; } + .bar-assertive .button.active, .bar-assertive .button.activated { + border-color: #e42012; + background-color: #e42012; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .bar-assertive .button.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #fff; + font-size: 17px; } + .bar-assertive .button.button-icon { + border-color: transparent; + background: none; } + +.bar-balanced .button { + border-color: #28a54c; + background-color: #33cd5f; + color: #fff; } + .bar-balanced .button:hover { + color: #fff; + text-decoration: none; } + .bar-balanced .button.active, .bar-balanced .button.activated { + border-color: #28a54c; + background-color: #28a54c; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .bar-balanced .button.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #fff; + font-size: 17px; } + .bar-balanced .button.button-icon { + border-color: transparent; + background: none; } + +.bar-energized .button { + border-color: #e6b400; + background-color: #ffc900; + color: #fff; } + .bar-energized .button:hover { + color: #fff; + text-decoration: none; } + .bar-energized .button.active, .bar-energized .button.activated { + border-color: #e6b400; + background-color: #e6b400; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .bar-energized .button.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #fff; + font-size: 17px; } + .bar-energized .button.button-icon { + border-color: transparent; + background: none; } + +.bar-royal .button { + border-color: #6b46e5; + background-color: #886aea; + color: #fff; } + .bar-royal .button:hover { + color: #fff; + text-decoration: none; } + .bar-royal .button.active, .bar-royal .button.activated { + border-color: #6b46e5; + background-color: #6b46e5; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .bar-royal .button.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #fff; + font-size: 17px; } + .bar-royal .button.button-icon { + border-color: transparent; + background: none; } + +.bar-dark .button { + border-color: #111; + background-color: #444444; + color: #fff; } + .bar-dark .button:hover { + color: #fff; + text-decoration: none; } + .bar-dark .button.active, .bar-dark .button.activated { + border-color: #000; + background-color: #262626; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .bar-dark .button.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #fff; + font-size: 17px; } + .bar-dark .button.button-icon { + border-color: transparent; + background: none; } + +.bar-header { + top: 0; + border-top-width: 0; + border-bottom-width: 1px; } + .bar-header.has-tabs-top { + border-bottom-width: 0px; + background-image: none; } + +.tabs-top .bar-header { + border-bottom-width: 0px; + background-image: none; } + +.bar-footer { + bottom: 0; + border-top-width: 1px; + border-bottom-width: 0; + background-position: top; + height: 44px; } + .bar-footer.item-input-inset { + position: absolute; } + +.bar-tabs { + padding: 0; } + +.bar-subheader { + top: 44px; + display: block; + height: 44px; } + +.bar-subfooter { + bottom: 44px; + display: block; + height: 44px; } + +.nav-bar-block { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 9; } + +.bar .back-button.hide, .bar .buttons .hide { + display: none; } + +.nav-bar-tabs-top .bar { + background-image: none; } + +/** + * Tabs + * -------------------------------------------------- + * A navigation bar with any number of tab items supported. + */ +.tabs { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-direction: normal; + -webkit-box-orient: horizontal; + -webkit-flex-direction: horizontal; + -moz-flex-direction: horizontal; + -ms-flex-direction: horizontal; + flex-direction: horizontal; + -webkit-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + -moz-justify-content: center; + justify-content: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + border-color: #b2b2b2; + background-color: #f8f8f8; + background-image: linear-gradient(0deg, #b2b2b2, #b2b2b2 50%, transparent 50%); + color: #444; + position: absolute; + bottom: 0; + z-index: 5; + width: 100%; + height: 49px; + border-style: solid; + border-top-width: 1px; + background-size: 0; + line-height: 49px; } + .tabs .tab-item .badge { + background-color: #444; + color: #f8f8f8; } + @media (min--moz-device-pixel-ratio: 1.5), (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi), (min-resolution: 1.5dppx) { + .tabs { + padding-top: 2px; + border-top: none !important; + border-bottom: none; + background-position: top; + background-size: 100% 1px; + background-repeat: no-repeat; } } + +/* Allow parent element of tabs to define color, or just the tab itself */ +.tabs-light > .tabs, .tabs.tabs-light { + border-color: #ddd; + background-color: #fff; + background-image: linear-gradient(0deg, #ddd, #ddd 50%, transparent 50%); + color: #444; } + .tabs-light > .tabs .tab-item .badge, .tabs.tabs-light .tab-item .badge { + background-color: #444; + color: #fff; } + +.tabs-stable > .tabs, .tabs.tabs-stable { + border-color: #b2b2b2; + background-color: #f8f8f8; + background-image: linear-gradient(0deg, #b2b2b2, #b2b2b2 50%, transparent 50%); + color: #444; } + .tabs-stable > .tabs .tab-item .badge, .tabs.tabs-stable .tab-item .badge { + background-color: #444; + color: #f8f8f8; } + +.tabs-positive > .tabs, .tabs.tabs-positive { + border-color: #0c63ee; + background-color: #387ef5; + background-image: linear-gradient(0deg, #0c63ee, #0c63ee 50%, transparent 50%); + color: #fff; } + .tabs-positive > .tabs .tab-item .badge, .tabs.tabs-positive .tab-item .badge { + background-color: #fff; + color: #387ef5; } + +.tabs-calm > .tabs, .tabs.tabs-calm { + border-color: #0a9ec7; + background-color: #11c1f3; + background-image: linear-gradient(0deg, #0a9ec7, #0a9ec7 50%, transparent 50%); + color: #fff; } + .tabs-calm > .tabs .tab-item .badge, .tabs.tabs-calm .tab-item .badge { + background-color: #fff; + color: #11c1f3; } + +.tabs-assertive > .tabs, .tabs.tabs-assertive { + border-color: #e42012; + background-color: #ef473a; + background-image: linear-gradient(0deg, #e42012, #e42012 50%, transparent 50%); + color: #fff; } + .tabs-assertive > .tabs .tab-item .badge, .tabs.tabs-assertive .tab-item .badge { + background-color: #fff; + color: #ef473a; } + +.tabs-balanced > .tabs, .tabs.tabs-balanced { + border-color: #28a54c; + background-color: #33cd5f; + background-image: linear-gradient(0deg, #28a54c, #28a54c 50%, transparent 50%); + color: #fff; } + .tabs-balanced > .tabs .tab-item .badge, .tabs.tabs-balanced .tab-item .badge { + background-color: #fff; + color: #33cd5f; } + +.tabs-energized > .tabs, .tabs.tabs-energized { + border-color: #e6b400; + background-color: #ffc900; + background-image: linear-gradient(0deg, #e6b400, #e6b400 50%, transparent 50%); + color: #fff; } + .tabs-energized > .tabs .tab-item .badge, .tabs.tabs-energized .tab-item .badge { + background-color: #fff; + color: #ffc900; } + +.tabs-royal > .tabs, .tabs.tabs-royal { + border-color: #6b46e5; + background-color: #886aea; + background-image: linear-gradient(0deg, #6b46e5, #6b46e5 50%, transparent 50%); + color: #fff; } + .tabs-royal > .tabs .tab-item .badge, .tabs.tabs-royal .tab-item .badge { + background-color: #fff; + color: #886aea; } + +.tabs-dark > .tabs, .tabs.tabs-dark { + border-color: #111; + background-color: #444; + background-image: linear-gradient(0deg, #111, #111 50%, transparent 50%); + color: #fff; } + .tabs-dark > .tabs .tab-item .badge, .tabs.tabs-dark .tab-item .badge { + background-color: #fff; + color: #444; } + +.tabs-striped .tabs { + background-color: white; + background-image: none; + border: none; + border-bottom: 1px solid #ddd; + padding-top: 2px; } +.tabs-striped .tab-item.tab-item-active, .tabs-striped .tab-item.active, .tabs-striped .tab-item.activated { + margin-top: -2px; + border-style: solid; + border-width: 2px 0 0 0; + border-color: #444; } + .tabs-striped .tab-item.tab-item-active .badge, .tabs-striped .tab-item.active .badge, .tabs-striped .tab-item.activated .badge { + top: 2px; + opacity: 1; } +.tabs-striped.tabs-light .tabs { + background-color: #fff; } +.tabs-striped.tabs-light .tab-item { + color: rgba(68, 68, 68, 0.4); + opacity: 1; } + .tabs-striped.tabs-light .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-light .tab-item.tab-item-active, .tabs-striped.tabs-light .tab-item.active, .tabs-striped.tabs-light .tab-item.activated { + margin-top: -2px; + color: #444; + border-style: solid; + border-width: 2px 0 0 0; + border-color: #444; } +.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { + top: 4%; } +.tabs-striped.tabs-stable .tabs { + background-color: #f8f8f8; } +.tabs-striped.tabs-stable .tab-item { + color: rgba(68, 68, 68, 0.4); + opacity: 1; } + .tabs-striped.tabs-stable .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-stable .tab-item.tab-item-active, .tabs-striped.tabs-stable .tab-item.active, .tabs-striped.tabs-stable .tab-item.activated { + margin-top: -2px; + color: #444; + border-style: solid; + border-width: 2px 0 0 0; + border-color: #444; } +.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { + top: 4%; } +.tabs-striped.tabs-positive .tabs { + background-color: #387ef5; } +.tabs-striped.tabs-positive .tab-item { + color: rgba(255, 255, 255, 0.4); + opacity: 1; } + .tabs-striped.tabs-positive .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-positive .tab-item.tab-item-active, .tabs-striped.tabs-positive .tab-item.active, .tabs-striped.tabs-positive .tab-item.activated { + margin-top: -2px; + color: #fff; + border-style: solid; + border-width: 2px 0 0 0; + border-color: #fff; } +.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { + top: 4%; } +.tabs-striped.tabs-calm .tabs { + background-color: #11c1f3; } +.tabs-striped.tabs-calm .tab-item { + color: rgba(255, 255, 255, 0.4); + opacity: 1; } + .tabs-striped.tabs-calm .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-calm .tab-item.tab-item-active, .tabs-striped.tabs-calm .tab-item.active, .tabs-striped.tabs-calm .tab-item.activated { + margin-top: -2px; + color: #fff; + border-style: solid; + border-width: 2px 0 0 0; + border-color: #fff; } +.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { + top: 4%; } +.tabs-striped.tabs-assertive .tabs { + background-color: #ef473a; } +.tabs-striped.tabs-assertive .tab-item { + color: rgba(255, 255, 255, 0.4); + opacity: 1; } + .tabs-striped.tabs-assertive .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-assertive .tab-item.tab-item-active, .tabs-striped.tabs-assertive .tab-item.active, .tabs-striped.tabs-assertive .tab-item.activated { + margin-top: -2px; + color: #fff; + border-style: solid; + border-width: 2px 0 0 0; + border-color: #fff; } +.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { + top: 4%; } +.tabs-striped.tabs-balanced .tabs { + background-color: #33cd5f; } +.tabs-striped.tabs-balanced .tab-item { + color: rgba(255, 255, 255, 0.4); + opacity: 1; } + .tabs-striped.tabs-balanced .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-balanced .tab-item.tab-item-active, .tabs-striped.tabs-balanced .tab-item.active, .tabs-striped.tabs-balanced .tab-item.activated { + margin-top: -2px; + color: #fff; + border-style: solid; + border-width: 2px 0 0 0; + border-color: #fff; } +.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { + top: 4%; } +.tabs-striped.tabs-energized .tabs { + background-color: #ffc900; } +.tabs-striped.tabs-energized .tab-item { + color: rgba(255, 255, 255, 0.4); + opacity: 1; } + .tabs-striped.tabs-energized .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-energized .tab-item.tab-item-active, .tabs-striped.tabs-energized .tab-item.active, .tabs-striped.tabs-energized .tab-item.activated { + margin-top: -2px; + color: #fff; + border-style: solid; + border-width: 2px 0 0 0; + border-color: #fff; } +.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { + top: 4%; } +.tabs-striped.tabs-royal .tabs { + background-color: #886aea; } +.tabs-striped.tabs-royal .tab-item { + color: rgba(255, 255, 255, 0.4); + opacity: 1; } + .tabs-striped.tabs-royal .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-royal .tab-item.tab-item-active, .tabs-striped.tabs-royal .tab-item.active, .tabs-striped.tabs-royal .tab-item.activated { + margin-top: -2px; + color: #fff; + border-style: solid; + border-width: 2px 0 0 0; + border-color: #fff; } +.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { + top: 4%; } +.tabs-striped.tabs-dark .tabs { + background-color: #444; } +.tabs-striped.tabs-dark .tab-item { + color: rgba(255, 255, 255, 0.4); + opacity: 1; } + .tabs-striped.tabs-dark .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-dark .tab-item.tab-item-active, .tabs-striped.tabs-dark .tab-item.active, .tabs-striped.tabs-dark .tab-item.activated { + margin-top: -2px; + color: #fff; + border-style: solid; + border-width: 2px 0 0 0; + border-color: #fff; } +.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { + top: 4%; } +.tabs-striped.tabs-background-light .tabs { + background-color: #fff; + background-image: none; } +.tabs-striped.tabs-background-stable .tabs { + background-color: #f8f8f8; + background-image: none; } +.tabs-striped.tabs-background-positive .tabs { + background-color: #387ef5; + background-image: none; } +.tabs-striped.tabs-background-calm .tabs { + background-color: #11c1f3; + background-image: none; } +.tabs-striped.tabs-background-assertive .tabs { + background-color: #ef473a; + background-image: none; } +.tabs-striped.tabs-background-balanced .tabs { + background-color: #33cd5f; + background-image: none; } +.tabs-striped.tabs-background-energized .tabs { + background-color: #ffc900; + background-image: none; } +.tabs-striped.tabs-background-royal .tabs { + background-color: #886aea; + background-image: none; } +.tabs-striped.tabs-background-dark .tabs { + background-color: #444; + background-image: none; } +.tabs-striped.tabs-color-light .tab-item { + color: rgba(255, 255, 255, 0.4); + opacity: 1; } + .tabs-striped.tabs-color-light .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-color-light .tab-item.tab-item-active, .tabs-striped.tabs-color-light .tab-item.active, .tabs-striped.tabs-color-light .tab-item.activated { + margin-top: -2px; + color: #fff; + border: 0 solid #fff; + border-top-width: 2px; } + .tabs-striped.tabs-color-light .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-light .tab-item.active .badge, .tabs-striped.tabs-color-light .tab-item.activated .badge { + top: 2px; + opacity: 1; } +.tabs-striped.tabs-color-stable .tab-item { + color: rgba(248, 248, 248, 0.4); + opacity: 1; } + .tabs-striped.tabs-color-stable .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-color-stable .tab-item.tab-item-active, .tabs-striped.tabs-color-stable .tab-item.active, .tabs-striped.tabs-color-stable .tab-item.activated { + margin-top: -2px; + color: #f8f8f8; + border: 0 solid #f8f8f8; + border-top-width: 2px; } + .tabs-striped.tabs-color-stable .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-stable .tab-item.active .badge, .tabs-striped.tabs-color-stable .tab-item.activated .badge { + top: 2px; + opacity: 1; } +.tabs-striped.tabs-color-positive .tab-item { + color: rgba(56, 126, 245, 0.4); + opacity: 1; } + .tabs-striped.tabs-color-positive .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-color-positive .tab-item.tab-item-active, .tabs-striped.tabs-color-positive .tab-item.active, .tabs-striped.tabs-color-positive .tab-item.activated { + margin-top: -2px; + color: #387ef5; + border: 0 solid #387ef5; + border-top-width: 2px; } + .tabs-striped.tabs-color-positive .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-positive .tab-item.active .badge, .tabs-striped.tabs-color-positive .tab-item.activated .badge { + top: 2px; + opacity: 1; } +.tabs-striped.tabs-color-calm .tab-item { + color: rgba(17, 193, 243, 0.4); + opacity: 1; } + .tabs-striped.tabs-color-calm .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-color-calm .tab-item.tab-item-active, .tabs-striped.tabs-color-calm .tab-item.active, .tabs-striped.tabs-color-calm .tab-item.activated { + margin-top: -2px; + color: #11c1f3; + border: 0 solid #11c1f3; + border-top-width: 2px; } + .tabs-striped.tabs-color-calm .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-calm .tab-item.active .badge, .tabs-striped.tabs-color-calm .tab-item.activated .badge { + top: 2px; + opacity: 1; } +.tabs-striped.tabs-color-assertive .tab-item { + color: rgba(239, 71, 58, 0.4); + opacity: 1; } + .tabs-striped.tabs-color-assertive .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-color-assertive .tab-item.tab-item-active, .tabs-striped.tabs-color-assertive .tab-item.active, .tabs-striped.tabs-color-assertive .tab-item.activated { + margin-top: -2px; + color: #ef473a; + border: 0 solid #ef473a; + border-top-width: 2px; } + .tabs-striped.tabs-color-assertive .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-assertive .tab-item.active .badge, .tabs-striped.tabs-color-assertive .tab-item.activated .badge { + top: 2px; + opacity: 1; } +.tabs-striped.tabs-color-balanced .tab-item { + color: rgba(51, 205, 95, 0.4); + opacity: 1; } + .tabs-striped.tabs-color-balanced .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-color-balanced .tab-item.tab-item-active, .tabs-striped.tabs-color-balanced .tab-item.active, .tabs-striped.tabs-color-balanced .tab-item.activated { + margin-top: -2px; + color: #33cd5f; + border: 0 solid #33cd5f; + border-top-width: 2px; } + .tabs-striped.tabs-color-balanced .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-balanced .tab-item.active .badge, .tabs-striped.tabs-color-balanced .tab-item.activated .badge { + top: 2px; + opacity: 1; } +.tabs-striped.tabs-color-energized .tab-item { + color: rgba(255, 201, 0, 0.4); + opacity: 1; } + .tabs-striped.tabs-color-energized .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-color-energized .tab-item.tab-item-active, .tabs-striped.tabs-color-energized .tab-item.active, .tabs-striped.tabs-color-energized .tab-item.activated { + margin-top: -2px; + color: #ffc900; + border: 0 solid #ffc900; + border-top-width: 2px; } + .tabs-striped.tabs-color-energized .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-energized .tab-item.active .badge, .tabs-striped.tabs-color-energized .tab-item.activated .badge { + top: 2px; + opacity: 1; } +.tabs-striped.tabs-color-royal .tab-item { + color: rgba(136, 106, 234, 0.4); + opacity: 1; } + .tabs-striped.tabs-color-royal .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-color-royal .tab-item.tab-item-active, .tabs-striped.tabs-color-royal .tab-item.active, .tabs-striped.tabs-color-royal .tab-item.activated { + margin-top: -2px; + color: #886aea; + border: 0 solid #886aea; + border-top-width: 2px; } + .tabs-striped.tabs-color-royal .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-royal .tab-item.active .badge, .tabs-striped.tabs-color-royal .tab-item.activated .badge { + top: 2px; + opacity: 1; } +.tabs-striped.tabs-color-dark .tab-item { + color: rgba(68, 68, 68, 0.4); + opacity: 1; } + .tabs-striped.tabs-color-dark .tab-item .badge { + opacity: 0.4; } + .tabs-striped.tabs-color-dark .tab-item.tab-item-active, .tabs-striped.tabs-color-dark .tab-item.active, .tabs-striped.tabs-color-dark .tab-item.activated { + margin-top: -2px; + color: #444; + border: 0 solid #444; + border-top-width: 2px; } + .tabs-striped.tabs-color-dark .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-dark .tab-item.active .badge, .tabs-striped.tabs-color-dark .tab-item.activated .badge { + top: 2px; + opacity: 1; } + +.tabs-background-light .tabs, .tabs-background-light > .tabs { + background-color: #fff; + background-image: linear-gradient(0deg, #ddd, #ddd 50%, transparent 50%); + border-color: #ddd; } + +.tabs-background-stable .tabs, .tabs-background-stable > .tabs { + background-color: #f8f8f8; + background-image: linear-gradient(0deg, #b2b2b2, #b2b2b2 50%, transparent 50%); + border-color: #b2b2b2; } + +.tabs-background-positive .tabs, .tabs-background-positive > .tabs { + background-color: #387ef5; + background-image: linear-gradient(0deg, #0c63ee, #0c63ee 50%, transparent 50%); + border-color: #0c63ee; } + +.tabs-background-calm .tabs, .tabs-background-calm > .tabs { + background-color: #11c1f3; + background-image: linear-gradient(0deg, #0a9ec7, #0a9ec7 50%, transparent 50%); + border-color: #0a9ec7; } + +.tabs-background-assertive .tabs, .tabs-background-assertive > .tabs { + background-color: #ef473a; + background-image: linear-gradient(0deg, #e42012, #e42012 50%, transparent 50%); + border-color: #e42012; } + +.tabs-background-balanced .tabs, .tabs-background-balanced > .tabs { + background-color: #33cd5f; + background-image: linear-gradient(0deg, #28a54c, #28a54c 50%, transparent 50%); + border-color: #28a54c; } + +.tabs-background-energized .tabs, .tabs-background-energized > .tabs { + background-color: #ffc900; + background-image: linear-gradient(0deg, #e6b400, #e6b400 50%, transparent 50%); + border-color: #e6b400; } + +.tabs-background-royal .tabs, .tabs-background-royal > .tabs { + background-color: #886aea; + background-image: linear-gradient(0deg, #6b46e5, #6b46e5 50%, transparent 50%); + border-color: #6b46e5; } + +.tabs-background-dark .tabs, .tabs-background-dark > .tabs { + background-color: #444; + background-image: linear-gradient(0deg, #111, #111 50%, transparent 50%); + border-color: #111; } + +.tabs-color-light .tab-item { + color: rgba(255, 255, 255, 0.4); + opacity: 1; } + .tabs-color-light .tab-item .badge { + opacity: 0.4; } + .tabs-color-light .tab-item.tab-item-active, .tabs-color-light .tab-item.active, .tabs-color-light .tab-item.activated { + color: #fff; + border: 0 solid #fff; } + .tabs-color-light .tab-item.tab-item-active .badge, .tabs-color-light .tab-item.active .badge, .tabs-color-light .tab-item.activated .badge { + opacity: 1; } + +.tabs-color-stable .tab-item { + color: rgba(248, 248, 248, 0.4); + opacity: 1; } + .tabs-color-stable .tab-item .badge { + opacity: 0.4; } + .tabs-color-stable .tab-item.tab-item-active, .tabs-color-stable .tab-item.active, .tabs-color-stable .tab-item.activated { + color: #f8f8f8; + border: 0 solid #f8f8f8; } + .tabs-color-stable .tab-item.tab-item-active .badge, .tabs-color-stable .tab-item.active .badge, .tabs-color-stable .tab-item.activated .badge { + opacity: 1; } + +.tabs-color-positive .tab-item { + color: rgba(56, 126, 245, 0.4); + opacity: 1; } + .tabs-color-positive .tab-item .badge { + opacity: 0.4; } + .tabs-color-positive .tab-item.tab-item-active, .tabs-color-positive .tab-item.active, .tabs-color-positive .tab-item.activated { + color: #387ef5; + border: 0 solid #387ef5; } + .tabs-color-positive .tab-item.tab-item-active .badge, .tabs-color-positive .tab-item.active .badge, .tabs-color-positive .tab-item.activated .badge { + opacity: 1; } + +.tabs-color-calm .tab-item { + color: rgba(17, 193, 243, 0.4); + opacity: 1; } + .tabs-color-calm .tab-item .badge { + opacity: 0.4; } + .tabs-color-calm .tab-item.tab-item-active, .tabs-color-calm .tab-item.active, .tabs-color-calm .tab-item.activated { + color: #11c1f3; + border: 0 solid #11c1f3; } + .tabs-color-calm .tab-item.tab-item-active .badge, .tabs-color-calm .tab-item.active .badge, .tabs-color-calm .tab-item.activated .badge { + opacity: 1; } + +.tabs-color-assertive .tab-item { + color: rgba(239, 71, 58, 0.4); + opacity: 1; } + .tabs-color-assertive .tab-item .badge { + opacity: 0.4; } + .tabs-color-assertive .tab-item.tab-item-active, .tabs-color-assertive .tab-item.active, .tabs-color-assertive .tab-item.activated { + color: #ef473a; + border: 0 solid #ef473a; } + .tabs-color-assertive .tab-item.tab-item-active .badge, .tabs-color-assertive .tab-item.active .badge, .tabs-color-assertive .tab-item.activated .badge { + opacity: 1; } + +.tabs-color-balanced .tab-item { + color: rgba(51, 205, 95, 0.4); + opacity: 1; } + .tabs-color-balanced .tab-item .badge { + opacity: 0.4; } + .tabs-color-balanced .tab-item.tab-item-active, .tabs-color-balanced .tab-item.active, .tabs-color-balanced .tab-item.activated { + color: #33cd5f; + border: 0 solid #33cd5f; } + .tabs-color-balanced .tab-item.tab-item-active .badge, .tabs-color-balanced .tab-item.active .badge, .tabs-color-balanced .tab-item.activated .badge { + opacity: 1; } + +.tabs-color-energized .tab-item { + color: rgba(255, 201, 0, 0.4); + opacity: 1; } + .tabs-color-energized .tab-item .badge { + opacity: 0.4; } + .tabs-color-energized .tab-item.tab-item-active, .tabs-color-energized .tab-item.active, .tabs-color-energized .tab-item.activated { + color: #ffc900; + border: 0 solid #ffc900; } + .tabs-color-energized .tab-item.tab-item-active .badge, .tabs-color-energized .tab-item.active .badge, .tabs-color-energized .tab-item.activated .badge { + opacity: 1; } + +.tabs-color-royal .tab-item { + color: rgba(136, 106, 234, 0.4); + opacity: 1; } + .tabs-color-royal .tab-item .badge { + opacity: 0.4; } + .tabs-color-royal .tab-item.tab-item-active, .tabs-color-royal .tab-item.active, .tabs-color-royal .tab-item.activated { + color: #886aea; + border: 0 solid #886aea; } + .tabs-color-royal .tab-item.tab-item-active .badge, .tabs-color-royal .tab-item.active .badge, .tabs-color-royal .tab-item.activated .badge { + opacity: 1; } + +.tabs-color-dark .tab-item { + color: rgba(68, 68, 68, 0.4); + opacity: 1; } + .tabs-color-dark .tab-item .badge { + opacity: 0.4; } + .tabs-color-dark .tab-item.tab-item-active, .tabs-color-dark .tab-item.active, .tabs-color-dark .tab-item.activated { + color: #444; + border: 0 solid #444; } + .tabs-color-dark .tab-item.tab-item-active .badge, .tabs-color-dark .tab-item.active .badge, .tabs-color-dark .tab-item.activated .badge { + opacity: 1; } + +ion-tabs.tabs-color-active-light .tab-item { + color: #444; } + ion-tabs.tabs-color-active-light .tab-item.tab-item-active, ion-tabs.tabs-color-active-light .tab-item.active, ion-tabs.tabs-color-active-light .tab-item.activated { + color: #fff; } +ion-tabs.tabs-color-active-stable .tab-item { + color: #444; } + ion-tabs.tabs-color-active-stable .tab-item.tab-item-active, ion-tabs.tabs-color-active-stable .tab-item.active, ion-tabs.tabs-color-active-stable .tab-item.activated { + color: #f8f8f8; } +ion-tabs.tabs-color-active-positive .tab-item { + color: #444; } + ion-tabs.tabs-color-active-positive .tab-item.tab-item-active, ion-tabs.tabs-color-active-positive .tab-item.active, ion-tabs.tabs-color-active-positive .tab-item.activated { + color: #387ef5; } +ion-tabs.tabs-color-active-calm .tab-item { + color: #444; } + ion-tabs.tabs-color-active-calm .tab-item.tab-item-active, ion-tabs.tabs-color-active-calm .tab-item.active, ion-tabs.tabs-color-active-calm .tab-item.activated { + color: #11c1f3; } +ion-tabs.tabs-color-active-assertive .tab-item { + color: #444; } + ion-tabs.tabs-color-active-assertive .tab-item.tab-item-active, ion-tabs.tabs-color-active-assertive .tab-item.active, ion-tabs.tabs-color-active-assertive .tab-item.activated { + color: #ef473a; } +ion-tabs.tabs-color-active-balanced .tab-item { + color: #444; } + ion-tabs.tabs-color-active-balanced .tab-item.tab-item-active, ion-tabs.tabs-color-active-balanced .tab-item.active, ion-tabs.tabs-color-active-balanced .tab-item.activated { + color: #33cd5f; } +ion-tabs.tabs-color-active-energized .tab-item { + color: #444; } + ion-tabs.tabs-color-active-energized .tab-item.tab-item-active, ion-tabs.tabs-color-active-energized .tab-item.active, ion-tabs.tabs-color-active-energized .tab-item.activated { + color: #ffc900; } +ion-tabs.tabs-color-active-royal .tab-item { + color: #444; } + ion-tabs.tabs-color-active-royal .tab-item.tab-item-active, ion-tabs.tabs-color-active-royal .tab-item.active, ion-tabs.tabs-color-active-royal .tab-item.activated { + color: #886aea; } +ion-tabs.tabs-color-active-dark .tab-item { + color: #fff; } + ion-tabs.tabs-color-active-dark .tab-item.tab-item-active, ion-tabs.tabs-color-active-dark .tab-item.active, ion-tabs.tabs-color-active-dark .tab-item.activated { + color: #444; } + +.tabs-top.tabs-striped { + padding-bottom: 0; } + .tabs-top.tabs-striped .tab-item { + background: transparent; + -webkit-transition: color 0.1s ease; + -moz-transition: color 0.1s ease; + -ms-transition: color 0.1s ease; + -o-transition: color 0.1s ease; + transition: color 0.1s ease; } + .tabs-top.tabs-striped .tab-item.tab-item-active, .tabs-top.tabs-striped .tab-item.active, .tabs-top.tabs-striped .tab-item.activated { + margin-top: 1px; + border-width: 0px 0px 2px 0px !important; + border-style: solid; } + .tabs-top.tabs-striped .tab-item.tab-item-active > .badge, .tabs-top.tabs-striped .tab-item.tab-item-active > i, .tabs-top.tabs-striped .tab-item.active > .badge, .tabs-top.tabs-striped .tab-item.active > i, .tabs-top.tabs-striped .tab-item.activated > .badge, .tabs-top.tabs-striped .tab-item.activated > i { + margin-top: -1px; } + .tabs-top.tabs-striped .tab-item .badge { + -webkit-transition: color 0.2s ease; + -moz-transition: color 0.2s ease; + -ms-transition: color 0.2s ease; + -o-transition: color 0.2s ease; + transition: color 0.2s ease; } + .tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.tab-item-active .tab-title, .tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.tab-item-active i, .tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.active .tab-title, .tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.active i, .tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.activated .tab-title, .tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.activated i { + display: block; + margin-top: -1px; } + .tabs-top.tabs-striped.tabs-icon-left .tab-item { + margin-top: 1px; } + .tabs-top.tabs-striped.tabs-icon-left .tab-item.tab-item-active .tab-title, .tabs-top.tabs-striped.tabs-icon-left .tab-item.tab-item-active i, .tabs-top.tabs-striped.tabs-icon-left .tab-item.active .tab-title, .tabs-top.tabs-striped.tabs-icon-left .tab-item.active i, .tabs-top.tabs-striped.tabs-icon-left .tab-item.activated .tab-title, .tabs-top.tabs-striped.tabs-icon-left .tab-item.activated i { + margin-top: -0.1em; } + +/* Allow parent element to have tabs-top */ +/* If you change this, change platform.scss as well */ +.tabs-top > .tabs, .tabs.tabs-top { + top: 44px; + padding-top: 0; + background-position: bottom; + border-top-width: 0; + border-bottom-width: 1px; } + .tabs-top > .tabs .tab-item.tab-item-active .badge, .tabs-top > .tabs .tab-item.active .badge, .tabs-top > .tabs .tab-item.activated .badge, .tabs.tabs-top .tab-item.tab-item-active .badge, .tabs.tabs-top .tab-item.active .badge, .tabs.tabs-top .tab-item.activated .badge { + top: 4%; } + +.tabs-top ~ .bar-header { + border-bottom-width: 0; } + +.tab-item { + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -moz-flex: 1; + -ms-flex: 1; + flex: 1; + display: block; + overflow: hidden; + max-width: 150px; + height: 100%; + color: inherit; + text-align: center; + text-decoration: none; + text-overflow: ellipsis; + white-space: nowrap; + font-weight: 400; + font-size: 14px; + font-family: "Helvetica Neue", "Roboto", "Segoe UI", sans-serif; + opacity: 0.7; } + .tab-item:hover { + cursor: pointer; } + .tab-item.tab-hidden { + display: none; } + +.tabs-item-hide > .tabs, .tabs.tabs-item-hide { + display: none; } + +.tabs-icon-top > .tabs .tab-item, .tabs-icon-top.tabs .tab-item, .tabs-icon-bottom > .tabs .tab-item, .tabs-icon-bottom.tabs .tab-item { + font-size: 10px; + line-height: 14px; } + +.tab-item .icon { + display: block; + margin: 0 auto; + height: 32px; + font-size: 32px; } + +.tabs-icon-left.tabs .tab-item, .tabs-icon-left > .tabs .tab-item, .tabs-icon-right.tabs .tab-item, .tabs-icon-right > .tabs .tab-item { + font-size: 10px; } + .tabs-icon-left.tabs .tab-item .icon, .tabs-icon-left.tabs .tab-item .tab-title, .tabs-icon-left > .tabs .tab-item .icon, .tabs-icon-left > .tabs .tab-item .tab-title, .tabs-icon-right.tabs .tab-item .icon, .tabs-icon-right.tabs .tab-item .tab-title, .tabs-icon-right > .tabs .tab-item .icon, .tabs-icon-right > .tabs .tab-item .tab-title { + display: inline-block; + vertical-align: top; + margin-top: -0.1em; } + .tabs-icon-left.tabs .tab-item .icon:before, .tabs-icon-left.tabs .tab-item .tab-title:before, .tabs-icon-left > .tabs .tab-item .icon:before, .tabs-icon-left > .tabs .tab-item .tab-title:before, .tabs-icon-right.tabs .tab-item .icon:before, .tabs-icon-right.tabs .tab-item .tab-title:before, .tabs-icon-right > .tabs .tab-item .icon:before, .tabs-icon-right > .tabs .tab-item .tab-title:before { + font-size: 24px; + line-height: 49px; } + +.tabs-icon-left > .tabs .tab-item .icon, .tabs-icon-left.tabs .tab-item .icon { + padding-right: 3px; } + +.tabs-icon-right > .tabs .tab-item .icon, .tabs-icon-right.tabs .tab-item .icon { + padding-left: 3px; } + +.tabs-icon-only > .tabs .icon, .tabs-icon-only.tabs .icon { + line-height: inherit; } + +.tab-item.has-badge { + position: relative; } + +.tab-item .badge { + position: absolute; + top: 4%; + right: 33%; + right: calc(50% - 26px); + padding: 1px 6px; + height: auto; + font-size: 12px; + line-height: 16px; } + +/* Navigational tab */ +/* Active state for tab */ +.tab-item.tab-item-active, .tab-item.active, .tab-item.activated { + opacity: 1; } + .tab-item.tab-item-active.tab-item-light, .tab-item.active.tab-item-light, .tab-item.activated.tab-item-light { + color: #fff; } + .tab-item.tab-item-active.tab-item-stable, .tab-item.active.tab-item-stable, .tab-item.activated.tab-item-stable { + color: #f8f8f8; } + .tab-item.tab-item-active.tab-item-positive, .tab-item.active.tab-item-positive, .tab-item.activated.tab-item-positive { + color: #387ef5; } + .tab-item.tab-item-active.tab-item-calm, .tab-item.active.tab-item-calm, .tab-item.activated.tab-item-calm { + color: #11c1f3; } + .tab-item.tab-item-active.tab-item-assertive, .tab-item.active.tab-item-assertive, .tab-item.activated.tab-item-assertive { + color: #ef473a; } + .tab-item.tab-item-active.tab-item-balanced, .tab-item.active.tab-item-balanced, .tab-item.activated.tab-item-balanced { + color: #33cd5f; } + .tab-item.tab-item-active.tab-item-energized, .tab-item.active.tab-item-energized, .tab-item.activated.tab-item-energized { + color: #ffc900; } + .tab-item.tab-item-active.tab-item-royal, .tab-item.active.tab-item-royal, .tab-item.activated.tab-item-royal { + color: #886aea; } + .tab-item.tab-item-active.tab-item-dark, .tab-item.active.tab-item-dark, .tab-item.activated.tab-item-dark { + color: #444; } + +.item.tabs { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + padding: 0; } + .item.tabs .icon:before { + position: relative; } + +.tab-item.disabled, .tab-item[disabled] { + opacity: 0.4; + cursor: default; + pointer-events: none; } + +.nav-bar-tabs-top.hide ~ .view-container .tabs-top .tabs { + top: 0; } + +.pane[hide-nav-bar="true"] .has-tabs-top { + top: 49px; } + +/** + * Menus + * -------------------------------------------------- + * Side panel structure + */ +.menu { + position: absolute; + top: 0; + bottom: 0; + z-index: 0; + overflow: hidden; + min-height: 100%; + max-height: 100%; + width: 275px; + background-color: #fff; } + .menu .scroll-content { + z-index: 10; } + .menu .bar-header { + z-index: 11; } + +.menu-content { + -webkit-transform: none; + transform: none; + box-shadow: -1px 0px 2px rgba(0, 0, 0, 0.2), 1px 0px 2px rgba(0, 0, 0, 0.2); } + +.menu-open .menu-content .pane, .menu-open .menu-content .scroll-content { + pointer-events: none; + overflow: hidden; } + +.grade-b .menu-content, .grade-c .menu-content { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + right: -1px; + left: -1px; + border-right: 1px solid #ccc; + border-left: 1px solid #ccc; + box-shadow: none; } + +.menu-left { + left: 0; } + +.menu-right { + right: 0; } + +.aside-open.aside-resizing .menu-right { + display: none; } + +.menu-animated { + -webkit-transition: -webkit-transform 200ms ease; + transition: transform 200ms ease; } + +/** + * Modals + * -------------------------------------------------- + * Modals are independent windows that slide in from off-screen. + */ +.modal-backdrop, .modal-backdrop-bg { + position: fixed; + top: 0; + left: 0; + z-index: 10; + width: 100%; + height: 100%; } + +.modal-backdrop-bg { + pointer-events: none; } + +.modal { + display: block; + position: absolute; + top: 0; + z-index: 10; + overflow: hidden; + min-height: 100%; + width: 100%; + background-color: #fff; } + +@media (min-width: 680px) { + .modal { + top: 20%; + right: 20%; + bottom: 20%; + left: 20%; + min-height: 240px; + width: 60%; } + .modal.ng-leave-active { + bottom: 0; } + .platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader) { + height: 44px; } + .platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader) > * { + margin-top: 0; } + .platform-ios.platform-cordova .modal-wrapper .modal .tabs-top > .tabs, .platform-ios.platform-cordova .modal-wrapper .modal .tabs.tabs-top { + top: 44px; } + .platform-ios.platform-cordova .modal-wrapper .modal .has-header, .platform-ios.platform-cordova .modal-wrapper .modal .bar-subheader { + top: 44px; } + .platform-ios.platform-cordova .modal-wrapper .modal .has-subheader { + top: 88px; } + .platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-tabs-top { + top: 93px; } + .platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-subheader.has-tabs-top { + top: 137px; } + .modal-backdrop-bg { + -webkit-transition: opacity 300ms ease-in-out; + transition: opacity 300ms ease-in-out; + background-color: #000; + opacity: 0; } + .active .modal-backdrop-bg { + opacity: 0.5; } } + +.modal-open { + pointer-events: none; } + .modal-open .modal, .modal-open .modal-backdrop { + pointer-events: auto; } + .modal-open.loading-active .modal, .modal-open.loading-active .modal-backdrop { + pointer-events: none; } + +/** + * Popovers + * -------------------------------------------------- + * Popovers are independent views which float over content + */ +.popover-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 10; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0); } + .popover-backdrop.active { + background-color: rgba(0, 0, 0, 0.1); } + +.popover { + position: absolute; + top: 25%; + left: 50%; + z-index: 10; + display: block; + margin-top: 12px; + margin-left: -110px; + height: 280px; + width: 220px; + background-color: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); + opacity: 0; } + .popover .item:first-child { + border-top: 0; } + .popover .item:last-child { + border-bottom: 0; } + .popover.popover-bottom { + margin-top: -12px; } + +.popover, .popover .bar-header { + border-radius: 2px; } + +.popover .scroll-content { + z-index: 1; + margin: 2px 0; } + +.popover .bar-header { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } + +.popover .has-header { + border-top-right-radius: 0; + border-top-left-radius: 0; } + +.popover-arrow { + display: none; } + +.platform-ios .popover { + box-shadow: 0 0 40px rgba(0, 0, 0, 0.08); + border-radius: 10px; } +.platform-ios .popover .bar-header { + -webkit-border-top-right-radius: 10px; + border-top-right-radius: 10px; + -webkit-border-top-left-radius: 10px; + border-top-left-radius: 10px; } +.platform-ios .popover .scroll-content { + margin: 8px 0; + border-radius: 10px; } +.platform-ios .popover .scroll-content.has-header { + margin-top: 0; } +.platform-ios .popover-arrow { + position: absolute; + display: block; + top: -17px; + width: 30px; + height: 19px; + overflow: hidden; } + .platform-ios .popover-arrow:after { + position: absolute; + top: 12px; + left: 5px; + width: 20px; + height: 20px; + background-color: #fff; + border-radius: 3px; + content: ''; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } +.platform-ios .popover-bottom .popover-arrow { + top: auto; + bottom: -10px; } + .platform-ios .popover-bottom .popover-arrow:after { + top: -6px; } + +.platform-android .popover { + margin-top: -32px; + background-color: #fafafa; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35); } + .platform-android .popover .item { + border-color: #fafafa; + background-color: #fafafa; + color: #4d4d4d; } + .platform-android .popover.popover-bottom { + margin-top: 32px; } +.platform-android .popover-backdrop, .platform-android .popover-backdrop.active { + background-color: transparent; } + +.popover-open { + pointer-events: none; } + .popover-open .popover, .popover-open .popover-backdrop { + pointer-events: auto; } + .popover-open.loading-active .popover, .popover-open.loading-active .popover-backdrop { + pointer-events: none; } + +@media (min-width: 680px) { + .popover { + width: 360px; } } + +/** + * Popups + * -------------------------------------------------- + */ +.popup-container { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, 0); + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + -moz-justify-content: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + z-index: 12; + visibility: hidden; } + .popup-container.popup-showing { + visibility: visible; } + .popup-container.popup-hidden .popup { + -webkit-animation-name: scaleOut; + animation-name: scaleOut; + -webkit-animation-duration: 0.1s; + animation-duration: 0.1s; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; } + .popup-container.active .popup { + -webkit-animation-name: superScaleIn; + animation-name: superScaleIn; + -webkit-animation-duration: 0.2s; + animation-duration: 0.2s; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; } + .popup-container .popup { + width: 250px; + max-width: 100%; + max-height: 90%; + border-radius: 0px; + background-color: rgba(255, 255, 255, 0.9); + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-direction: normal; + -webkit-box-orient: vertical; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .popup-container input, .popup-container textarea { + width: 100%; } + +.popup-head { + padding: 15px 10px; + border-bottom: 1px solid #eee; + text-align: center; } + +.popup-title { + margin: 0; + padding: 0; + font-size: 15px; } + +.popup-sub-title { + margin: 5px 0 0 0; + padding: 0; + font-weight: normal; + font-size: 11px; } + +.popup-body { + padding: 10px; + overflow: auto; } + +.popup-buttons { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-direction: normal; + -webkit-box-orient: horizontal; + -webkit-flex-direction: row; + -moz-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + padding: 10px; + min-height: 65px; } + .popup-buttons .button { + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -moz-flex: 1; + -ms-flex: 1; + flex: 1; + display: block; + min-height: 45px; + border-radius: 2px; + line-height: 20px; + margin-right: 5px; } + .popup-buttons .button:last-child { + margin-right: 0px; } + +.popup-open { + pointer-events: none; } + .popup-open.modal-open .modal { + pointer-events: none; } + .popup-open .popup-backdrop, .popup-open .popup { + pointer-events: auto; } + +/** + * Loading + * -------------------------------------------------- + */ +.loading-container { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + z-index: 13; + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + -moz-justify-content: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + -webkit-transition: 0.2s opacity linear; + transition: 0.2s opacity linear; + visibility: hidden; + opacity: 0; } + .loading-container:not(.visible) .icon, .loading-container:not(.visible) .spinner { + display: none; } + .loading-container.visible { + visibility: visible; } + .loading-container.active { + opacity: 1; } + .loading-container .loading { + padding: 20px; + border-radius: 5px; + background-color: rgba(0, 0, 0, 0.7); + color: #fff; + text-align: center; + text-overflow: ellipsis; + font-size: 15px; } + .loading-container .loading h1, .loading-container .loading h2, .loading-container .loading h3, .loading-container .loading h4, .loading-container .loading h5, .loading-container .loading h6 { + color: #fff; } + +/** + * Items + * -------------------------------------------------- + */ +.item { + border-color: #ddd; + background-color: #fff; + color: #444; + position: relative; + z-index: 2; + display: block; + margin: -1px; + padding: 16px; + border-width: 1px; + border-style: solid; + font-size: 16px; } + .item h2 { + margin: 0 0 2px 0; + font-size: 16px; + font-weight: normal; } + .item h3 { + margin: 0 0 4px 0; + font-size: 14px; } + .item h4 { + margin: 0 0 4px 0; + font-size: 12px; } + .item h5, .item h6 { + margin: 0 0 3px 0; + font-size: 10px; } + .item p { + color: #666; + font-size: 14px; + margin-bottom: 2px; } + .item h1:last-child, .item h2:last-child, .item h3:last-child, .item h4:last-child, .item h5:last-child, .item h6:last-child, .item p:last-child { + margin-bottom: 0; } + .item .badge { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + position: absolute; + top: 16px; + right: 32px; } + .item.item-button-right .badge { + right: 67px; } + .item.item-divider .badge { + top: 8px; } + .item .badge + .badge { + margin-right: 5px; } + .item.item-light { + border-color: #ddd; + background-color: #fff; + color: #444; } + .item.item-stable { + border-color: #b2b2b2; + background-color: #f8f8f8; + color: #444; } + .item.item-positive { + border-color: #0c63ee; + background-color: #387ef5; + color: #fff; } + .item.item-calm { + border-color: #0a9ec7; + background-color: #11c1f3; + color: #fff; } + .item.item-assertive { + border-color: #e42012; + background-color: #ef473a; + color: #fff; } + .item.item-balanced { + border-color: #28a54c; + background-color: #33cd5f; + color: #fff; } + .item.item-energized { + border-color: #e6b400; + background-color: #ffc900; + color: #fff; } + .item.item-royal { + border-color: #6b46e5; + background-color: #886aea; + color: #fff; } + .item.item-dark { + border-color: #111; + background-color: #444; + color: #fff; } + .item[ng-click]:hover { + cursor: pointer; } + +.list-borderless .item, .item-borderless { + border-width: 0; } + +.item.active, .item.activated, .item-complex.active .item-content, .item-complex.activated .item-content, .item .item-content.active, .item .item-content.activated { + border-color: #ccc; + background-color: #D9D9D9; } + .item.active.item-light, .item.activated.item-light, .item-complex.active .item-content.item-light, .item-complex.activated .item-content.item-light, .item .item-content.active.item-light, .item .item-content.activated.item-light { + border-color: #ccc; + background-color: #fafafa; } + .item.active.item-stable, .item.activated.item-stable, .item-complex.active .item-content.item-stable, .item-complex.activated .item-content.item-stable, .item .item-content.active.item-stable, .item .item-content.activated.item-stable { + border-color: #a2a2a2; + background-color: #e5e5e5; } + .item.active.item-positive, .item.activated.item-positive, .item-complex.active .item-content.item-positive, .item-complex.activated .item-content.item-positive, .item .item-content.active.item-positive, .item .item-content.activated.item-positive { + border-color: #0c63ee; + background-color: #0c63ee; } + .item.active.item-calm, .item.activated.item-calm, .item-complex.active .item-content.item-calm, .item-complex.activated .item-content.item-calm, .item .item-content.active.item-calm, .item .item-content.activated.item-calm { + border-color: #0a9ec7; + background-color: #0a9ec7; } + .item.active.item-assertive, .item.activated.item-assertive, .item-complex.active .item-content.item-assertive, .item-complex.activated .item-content.item-assertive, .item .item-content.active.item-assertive, .item .item-content.activated.item-assertive { + border-color: #e42012; + background-color: #e42012; } + .item.active.item-balanced, .item.activated.item-balanced, .item-complex.active .item-content.item-balanced, .item-complex.activated .item-content.item-balanced, .item .item-content.active.item-balanced, .item .item-content.activated.item-balanced { + border-color: #28a54c; + background-color: #28a54c; } + .item.active.item-energized, .item.activated.item-energized, .item-complex.active .item-content.item-energized, .item-complex.activated .item-content.item-energized, .item .item-content.active.item-energized, .item .item-content.activated.item-energized { + border-color: #e6b400; + background-color: #e6b400; } + .item.active.item-royal, .item.activated.item-royal, .item-complex.active .item-content.item-royal, .item-complex.activated .item-content.item-royal, .item .item-content.active.item-royal, .item .item-content.activated.item-royal { + border-color: #6b46e5; + background-color: #6b46e5; } + .item.active.item-dark, .item.activated.item-dark, .item-complex.active .item-content.item-dark, .item-complex.activated .item-content.item-dark, .item .item-content.active.item-dark, .item .item-content.activated.item-dark { + border-color: #000; + background-color: #262626; } + +.item, .item h1, .item h2, .item h3, .item h4, .item h5, .item h6, .item p, .item-content, .item-content h1, .item-content h2, .item-content h3, .item-content h4, .item-content h5, .item-content h6, .item-content p { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + +a.item { + color: inherit; + text-decoration: none; } + a.item:hover, a.item:focus { + text-decoration: none; } + +/** + * Complex Items + * -------------------------------------------------- + * Adding .item-complex allows the .item to be slidable and + * have options underneath the button, but also requires an + * additional .item-content element inside .item. + * Basically .item-complex removes any default settings which + * .item added, so that .item-content looks them as just .item. + */ +.item-complex, a.item.item-complex, button.item.item-complex { + padding: 0; } + +.item-complex .item-content, .item-radio .item-content { + position: relative; + z-index: 2; + padding: 16px 49px 16px 16px; + border: none; + background-color: #fff; } + +a.item-content { + display: block; + color: inherit; + text-decoration: none; } + +.item-text-wrap .item, .item-text-wrap .item-content, .item-text-wrap, .item-text-wrap h1, .item-text-wrap h2, .item-text-wrap h3, .item-text-wrap h4, .item-text-wrap h5, .item-text-wrap h6, .item-text-wrap p, .item-complex.item-text-wrap .item-content, .item-body h1, .item-body h2, .item-body h3, .item-body h4, .item-body h5, .item-body h6, .item-body p { + overflow: visible; + white-space: normal; } + +.item-complex.item-text-wrap, .item-complex.item-text-wrap h1, .item-complex.item-text-wrap h2, .item-complex.item-text-wrap h3, .item-complex.item-text-wrap h4, .item-complex.item-text-wrap h5, .item-complex.item-text-wrap h6, .item-complex.item-text-wrap p { + overflow: visible; + white-space: normal; } + +.item-complex.item-light > .item-content { + border-color: #ddd; + background-color: #fff; + color: #444; } + .item-complex.item-light > .item-content.active, .item-complex.item-light > .item-content:active { + border-color: #ccc; + background-color: #fafafa; } +.item-complex.item-stable > .item-content { + border-color: #b2b2b2; + background-color: #f8f8f8; + color: #444; } + .item-complex.item-stable > .item-content.active, .item-complex.item-stable > .item-content:active { + border-color: #a2a2a2; + background-color: #e5e5e5; } +.item-complex.item-positive > .item-content { + border-color: #0c63ee; + background-color: #387ef5; + color: #fff; } + .item-complex.item-positive > .item-content.active, .item-complex.item-positive > .item-content:active { + border-color: #0c63ee; + background-color: #0c63ee; } +.item-complex.item-calm > .item-content { + border-color: #0a9ec7; + background-color: #11c1f3; + color: #fff; } + .item-complex.item-calm > .item-content.active, .item-complex.item-calm > .item-content:active { + border-color: #0a9ec7; + background-color: #0a9ec7; } +.item-complex.item-assertive > .item-content { + border-color: #e42012; + background-color: #ef473a; + color: #fff; } + .item-complex.item-assertive > .item-content.active, .item-complex.item-assertive > .item-content:active { + border-color: #e42012; + background-color: #e42012; } +.item-complex.item-balanced > .item-content { + border-color: #28a54c; + background-color: #33cd5f; + color: #fff; } + .item-complex.item-balanced > .item-content.active, .item-complex.item-balanced > .item-content:active { + border-color: #28a54c; + background-color: #28a54c; } +.item-complex.item-energized > .item-content { + border-color: #e6b400; + background-color: #ffc900; + color: #fff; } + .item-complex.item-energized > .item-content.active, .item-complex.item-energized > .item-content:active { + border-color: #e6b400; + background-color: #e6b400; } +.item-complex.item-royal > .item-content { + border-color: #6b46e5; + background-color: #886aea; + color: #fff; } + .item-complex.item-royal > .item-content.active, .item-complex.item-royal > .item-content:active { + border-color: #6b46e5; + background-color: #6b46e5; } +.item-complex.item-dark > .item-content { + border-color: #111; + background-color: #444; + color: #fff; } + .item-complex.item-dark > .item-content.active, .item-complex.item-dark > .item-content:active { + border-color: #000; + background-color: #262626; } + +/** + * Item Icons + * -------------------------------------------------- + */ +.item-icon-left .icon, .item-icon-right .icon { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + position: absolute; + top: 0; + height: 100%; + font-size: 32px; } + .item-icon-left .icon:before, .item-icon-right .icon:before { + display: block; + width: 32px; + text-align: center; } + +.item .fill-icon { + min-width: 30px; + min-height: 30px; + font-size: 28px; } + +.item-icon-left { + padding-left: 54px; } + .item-icon-left .icon { + left: 11px; } + +.item-complex.item-icon-left { + padding-left: 0; } + .item-complex.item-icon-left .item-content { + padding-left: 54px; } + +.item-icon-right { + padding-right: 54px; } + .item-icon-right .icon { + right: 11px; } + +.item-complex.item-icon-right { + padding-right: 0; } + .item-complex.item-icon-right .item-content { + padding-right: 54px; } + +.item-icon-left.item-icon-right .icon:first-child { + right: auto; } + +.item-icon-left.item-icon-right .icon:last-child, .item-icon-left .item-delete .icon { + left: auto; } + +.item-icon-left .icon-accessory, .item-icon-right .icon-accessory { + color: #ccc; + font-size: 16px; } + +.item-icon-left .icon-accessory { + left: 3px; } + +.item-icon-right .icon-accessory { + right: 3px; } + +/** + * Item Button + * -------------------------------------------------- + * An item button is a child button inside an .item (not the entire .item) + */ +.item-button-left { + padding-left: 72px; } + +.item-button-left > .button, .item-button-left .item-content > .button { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + position: absolute; + top: 8px; + left: 11px; + min-width: 34px; + min-height: 34px; + font-size: 18px; + line-height: 32px; } + .item-button-left > .button .icon:before, .item-button-left .item-content > .button .icon:before { + position: relative; + left: auto; + width: auto; + line-height: 31px; } + .item-button-left > .button > .button, .item-button-left .item-content > .button > .button { + margin: 0px 2px; + min-height: 34px; + font-size: 18px; + line-height: 32px; } + +.item-button-right, a.item.item-button-right, button.item.item-button-right { + padding-right: 80px; } + +.item-button-right > .button, .item-button-right .item-content > .button, .item-button-right > .buttons, .item-button-right .item-content > .buttons { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + position: absolute; + top: 8px; + right: 16px; + min-width: 34px; + min-height: 34px; + font-size: 18px; + line-height: 32px; } + .item-button-right > .button .icon:before, .item-button-right .item-content > .button .icon:before, .item-button-right > .buttons .icon:before, .item-button-right .item-content > .buttons .icon:before { + position: relative; + left: auto; + width: auto; + line-height: 31px; } + .item-button-right > .button > .button, .item-button-right .item-content > .button > .button, .item-button-right > .buttons > .button, .item-button-right .item-content > .buttons > .button { + margin: 0px 2px; + min-width: 34px; + min-height: 34px; + font-size: 18px; + line-height: 32px; } + +.item-avatar, .item-avatar .item-content, .item-avatar-left, .item-avatar-left .item-content { + padding-left: 72px; + min-height: 72px; } + .item-avatar > img:first-child, .item-avatar .item-image, .item-avatar .item-content > img:first-child, .item-avatar .item-content .item-image, .item-avatar-left > img:first-child, .item-avatar-left .item-image, .item-avatar-left .item-content > img:first-child, .item-avatar-left .item-content .item-image { + position: absolute; + top: 16px; + left: 16px; + max-width: 40px; + max-height: 40px; + width: 100%; + height: 100%; + border-radius: 50%; } + +.item-avatar-right, .item-avatar-right .item-content { + padding-right: 72px; + min-height: 72px; } + .item-avatar-right > img:first-child, .item-avatar-right .item-image, .item-avatar-right .item-content > img:first-child, .item-avatar-right .item-content .item-image { + position: absolute; + top: 16px; + right: 16px; + max-width: 40px; + max-height: 40px; + width: 100%; + height: 100%; + border-radius: 50%; } + +.item-thumbnail-left, .item-thumbnail-left .item-content { + padding-top: 8px; + padding-left: 106px; + min-height: 100px; } + .item-thumbnail-left > img:first-child, .item-thumbnail-left .item-image, .item-thumbnail-left .item-content > img:first-child, .item-thumbnail-left .item-content .item-image { + position: absolute; + top: 10px; + left: 10px; + max-width: 80px; + max-height: 80px; + width: 100%; + height: 100%; } + +.item-avatar.item-complex, .item-avatar-left.item-complex, .item-thumbnail-left.item-complex { + padding-top: 0; + padding-left: 0; } + +.item-thumbnail-right, .item-thumbnail-right .item-content { + padding-top: 8px; + padding-right: 106px; + min-height: 100px; } + .item-thumbnail-right > img:first-child, .item-thumbnail-right .item-image, .item-thumbnail-right .item-content > img:first-child, .item-thumbnail-right .item-content .item-image { + position: absolute; + top: 10px; + right: 10px; + max-width: 80px; + max-height: 80px; + width: 100%; + height: 100%; } + +.item-avatar-right.item-complex, .item-thumbnail-right.item-complex { + padding-top: 0; + padding-right: 0; } + +.item-image { + padding: 0; + text-align: center; } + .item-image img:first-child, .item-image .list-img { + width: 100%; + vertical-align: middle; } + +.item-body { + overflow: auto; + padding: 16px; + text-overflow: inherit; + white-space: normal; } + .item-body h1, .item-body h2, .item-body h3, .item-body h4, .item-body h5, .item-body h6, .item-body p { + margin-top: 16px; + margin-bottom: 16px; } + +.item-divider { + padding-top: 8px; + padding-bottom: 8px; + min-height: 30px; + background-color: #f5f5f5; + color: #222; + font-weight: 500; } + +.platform-ios .item-divider-platform, .item-divider-ios { + padding-top: 26px; + text-transform: uppercase; + font-weight: 300; + font-size: 13px; + background-color: #efeff4; + color: #555; } + +.platform-android .item-divider-platform, .item-divider-android { + font-weight: 300; + font-size: 13px; } + +.item-note { + float: right; + color: #aaa; + font-size: 14px; } + +.item-left-editable .item-content, .item-right-editable .item-content { + -webkit-transition-duration: 250ms; + transition-duration: 250ms; + -webkit-transition-timing-function: ease-in-out; + transition-timing-function: ease-in-out; + -webkit-transition-property: -webkit-transform; + -moz-transition-property: -moz-transform; + transition-property: transform; } + +.list-left-editing .item-left-editable .item-content, .item-left-editing.item-left-editable .item-content { + -webkit-transform: translate3d(50px, 0, 0); + transform: translate3d(50px, 0, 0); } + +.item-remove-animate.ng-leave { + -webkit-transition-duration: 300ms; + transition-duration: 300ms; } +.item-remove-animate.ng-leave .item-content, .item-remove-animate.ng-leave:last-of-type { + -webkit-transition-duration: 300ms; + transition-duration: 300ms; + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + -webkit-transition-property: all; + transition-property: all; } +.item-remove-animate.ng-leave.ng-leave-active .item-content { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) !important; + transform: translate3d(-100%, 0, 0) !important; } +.item-remove-animate.ng-leave.ng-leave-active:last-of-type { + opacity: 0; } +.item-remove-animate.ng-leave.ng-leave-active ~ ion-item:not(.ng-leave) { + -webkit-transform: translate3d(0, -webkit-calc(-100% + 1px), 0); + transform: translate3d(0, calc(-100% + 1px), 0); + -webkit-transition-duration: 300ms; + transition-duration: 300ms; + -webkit-transition-timing-function: cubic-bezier(0.25, 0.81, 0.24, 1); + transition-timing-function: cubic-bezier(0.25, 0.81, 0.24, 1); + -webkit-transition-property: all; + transition-property: all; } + +.item-left-edit { + -webkit-transition: all ease-in-out 125ms; + transition: all ease-in-out 125ms; + position: absolute; + top: 0; + left: 0; + z-index: 0; + width: 50px; + height: 100%; + line-height: 100%; + display: none; + opacity: 0; + -webkit-transform: translate3d(-21px, 0, 0); + transform: translate3d(-21px, 0, 0); } + .item-left-edit .button { + height: 100%; } + .item-left-edit .button.icon { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + position: absolute; + top: 0; + height: 100%; } + .item-left-edit.visible { + display: block; } + .item-left-edit.visible.active { + opacity: 1; + -webkit-transform: translate3d(8px, 0, 0); + transform: translate3d(8px, 0, 0); } + +.list-left-editing .item-left-edit { + -webkit-transition-delay: 125ms; + transition-delay: 125ms; } + +.item-delete .button.icon { + color: #ef473a; + font-size: 24px; } + .item-delete .button.icon:hover { + opacity: 0.7; } + +.item-right-edit { + -webkit-transition: all ease-in-out 250ms; + transition: all ease-in-out 250ms; + position: absolute; + top: 0; + right: 0; + z-index: 3; + width: 75px; + height: 100%; + background: inherit; + padding-left: 20px; + display: block; + opacity: 0; + -webkit-transform: translate3d(75px, 0, 0); + transform: translate3d(75px, 0, 0); } + .item-right-edit .button { + min-width: 50px; + height: 100%; } + .item-right-edit .button.icon { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + position: absolute; + top: 0; + height: 100%; + font-size: 32px; } + .item-right-edit.visible { + display: block; } + .item-right-edit.visible.active { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + +.item-reorder .button.icon { + color: #444; + font-size: 32px; } + +.item-reordering { + position: absolute; + left: 0; + top: 0; + z-index: 9; + width: 100%; + box-shadow: 0px 0px 10px 0px #aaa; } + .item-reordering .item-reorder { + z-index: 9; } + +.item-placeholder { + opacity: 0.7; } + +/** + * The hidden right-side buttons that can be exposed under a list item + * with dragging. + */ +.item-options { + position: absolute; + top: 0; + right: 0; + z-index: 1; + height: 100%; } + .item-options .button { + height: 100%; + border: none; + border-radius: 0; + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -moz-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; } + .item-options .button:before { + margin: 0 auto; } + +/** + * Lists + * -------------------------------------------------- + */ +.list { + position: relative; + padding-top: 1px; + padding-bottom: 1px; + padding-left: 0; + margin-bottom: 20px; } + +.list:last-child { + margin-bottom: 0px; } + .list:last-child.card { + margin-bottom: 40px; } + +/** + * List Header + * -------------------------------------------------- + */ +.list-header { + margin-top: 20px; + padding: 5px 15px; + background-color: transparent; + color: #222; + font-weight: bold; } + +.card.list .list-item { + padding-right: 1px; + padding-left: 1px; } + +/** + * Cards and Inset Lists + * -------------------------------------------------- + * A card and list-inset are close to the same thing, except a card as a box shadow. + */ +.card, .list-inset { + overflow: hidden; + margin: 20px 10px; + border-radius: 2px; + background-color: #fff; } + +.card { + padding-top: 1px; + padding-bottom: 1px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); } + .card .item { + border-left: 0; + border-right: 0; } + .card .item:first-child { + border-top: 0; } + .card .item:last-child { + border-bottom: 0; } + +.padding .card, .padding .list-inset { + margin-left: 0; + margin-right: 0; } + +.card .item:first-child, .list-inset .item:first-child, .padding > .list .item:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; } + .card .item:first-child .item-content, .list-inset .item:first-child .item-content, .padding > .list .item:first-child .item-content { + border-top-left-radius: 2px; + border-top-right-radius: 2px; } +.card .item:last-child, .list-inset .item:last-child, .padding > .list .item:last-child { + border-bottom-right-radius: 2px; + border-bottom-left-radius: 2px; } + .card .item:last-child .item-content, .list-inset .item:last-child .item-content, .padding > .list .item:last-child .item-content { + border-bottom-right-radius: 2px; + border-bottom-left-radius: 2px; } + +.card .item:last-child, .list-inset .item:last-child { + margin-bottom: -1px; } + +.card .item, .list-inset .item, .padding > .list .item, .padding-horizontal > .list .item { + margin-right: 0; + margin-left: 0; } + .card .item.item-input input, .list-inset .item.item-input input, .padding > .list .item.item-input input, .padding-horizontal > .list .item.item-input input { + padding-right: 44px; } + +.padding-left > .list .item { + margin-left: 0; } + +.padding-right > .list .item { + margin-right: 0; } + +/** + * Badges + * -------------------------------------------------- + */ +.badge { + background-color: transparent; + color: #AAAAAA; + z-index: 1; + display: inline-block; + padding: 3px 8px; + min-width: 10px; + border-radius: 10px; + vertical-align: baseline; + text-align: center; + white-space: nowrap; + font-weight: bold; + font-size: 14px; + line-height: 16px; } + .badge:empty { + display: none; } + +.tabs .tab-item .badge.badge-light, .badge.badge-light { + background-color: #fff; + color: #444; } +.tabs .tab-item .badge.badge-stable, .badge.badge-stable { + background-color: #f8f8f8; + color: #444; } +.tabs .tab-item .badge.badge-positive, .badge.badge-positive { + background-color: #387ef5; + color: #fff; } +.tabs .tab-item .badge.badge-calm, .badge.badge-calm { + background-color: #11c1f3; + color: #fff; } +.tabs .tab-item .badge.badge-assertive, .badge.badge-assertive { + background-color: #ef473a; + color: #fff; } +.tabs .tab-item .badge.badge-balanced, .badge.badge-balanced { + background-color: #33cd5f; + color: #fff; } +.tabs .tab-item .badge.badge-energized, .badge.badge-energized { + background-color: #ffc900; + color: #fff; } +.tabs .tab-item .badge.badge-royal, .badge.badge-royal { + background-color: #886aea; + color: #fff; } +.tabs .tab-item .badge.badge-dark, .badge.badge-dark { + background-color: #444; + color: #fff; } + +.button .badge { + position: relative; + top: -1px; } + +/** + * Slide Box + * -------------------------------------------------- + */ +.slider { + position: relative; + visibility: hidden; + overflow: hidden; } + +.slider-slides { + position: relative; + height: 100%; } + +.slider-slide { + position: relative; + display: block; + float: left; + width: 100%; + height: 100%; + vertical-align: top; } + +.slider-slide-image > img { + width: 100%; } + +.slider-pager { + position: absolute; + bottom: 20px; + z-index: 1; + width: 100%; + height: 15px; + text-align: center; } + .slider-pager .slider-pager-page { + display: inline-block; + margin: 0px 3px; + width: 15px; + color: #000; + text-decoration: none; + opacity: 0.3; } + .slider-pager .slider-pager-page.active { + -webkit-transition: opacity 0.4s ease-in; + transition: opacity 0.4s ease-in; + opacity: 1; } + +.scroll-refresher { + position: absolute; + top: -60px; + right: 0; + left: 0; + overflow: hidden; + margin: auto; + height: 60px; } + .scroll-refresher .ionic-refresher-content { + position: absolute; + bottom: 15px; + left: 0; + width: 100%; + color: #666666; + text-align: center; + font-size: 30px; } + .scroll-refresher .ionic-refresher-content .text-refreshing, .scroll-refresher .ionic-refresher-content .text-pulling { + font-size: 16px; + line-height: 16px; } + .scroll-refresher .ionic-refresher-content.ionic-refresher-with-text { + bottom: 10px; } + .scroll-refresher .icon-refreshing, .scroll-refresher .icon-pulling { + width: 100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + .scroll-refresher .icon-pulling { + -webkit-animation-name: refresh-spin-back; + animation-name: refresh-spin-back; + -webkit-animation-duration: 200ms; + animation-duration: 200ms; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + -webkit-animation-fill-mode: none; + animation-fill-mode: none; + -webkit-transform: translate3d(0, 0, 0) rotate(0deg); + transform: translate3d(0, 0, 0) rotate(0deg); } + .scroll-refresher .icon-refreshing, .scroll-refresher .text-refreshing { + display: none; } + .scroll-refresher .icon-refreshing { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; } + .scroll-refresher.active .icon-pulling:not(.pulling-rotation-disabled) { + -webkit-animation-name: refresh-spin; + animation-name: refresh-spin; + -webkit-transform: translate3d(0, 0, 0) rotate(-180deg); + transform: translate3d(0, 0, 0) rotate(-180deg); } + .scroll-refresher.active.refreshing { + -webkit-transition: -webkit-transform 0.2s; + transition: -webkit-transform 0.2s; + -webkit-transition: transform 0.2s; + transition: transform 0.2s; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); } + .scroll-refresher.active.refreshing .icon-pulling, .scroll-refresher.active.refreshing .text-pulling { + display: none; } + .scroll-refresher.active.refreshing .icon-refreshing, .scroll-refresher.active.refreshing .text-refreshing { + display: block; } + .scroll-refresher.active.refreshing.refreshing-tail { + -webkit-transform: scale(0, 0); + transform: scale(0, 0); } + +.overflow-scroll > .scroll { + -webkit-overflow-scrolling: touch; + width: 100%; } + .overflow-scroll > .scroll.overscroll { + position: fixed; } + +@-webkit-keyframes refresh-spin { + 0% { + -webkit-transform: translate3d(0, 0, 0) rotate(0); } + + 100% { + -webkit-transform: translate3d(0, 0, 0) rotate(180deg); } } + +@keyframes refresh-spin { + 0% { + transform: translate3d(0, 0, 0) rotate(0); } + + 100% { + transform: translate3d(0, 0, 0) rotate(180deg); } } + +@-webkit-keyframes refresh-spin-back { + 0% { + -webkit-transform: translate3d(0, 0, 0) rotate(180deg); } + + 100% { + -webkit-transform: translate3d(0, 0, 0) rotate(0); } } + +@keyframes refresh-spin-back { + 0% { + transform: translate3d(0, 0, 0) rotate(180deg); } + + 100% { + transform: translate3d(0, 0, 0) rotate(0); } } + +/** + * Spinners + * -------------------------------------------------- + */ +.spinner { + stroke: #444; + fill: #444; } + .spinner svg { + width: 28px; + height: 28px; } + .spinner.spinner-light { + stroke: #fff; + fill: #fff; } + .spinner.spinner-stable { + stroke: #f8f8f8; + fill: #f8f8f8; } + .spinner.spinner-positive { + stroke: #387ef5; + fill: #387ef5; } + .spinner.spinner-calm { + stroke: #11c1f3; + fill: #11c1f3; } + .spinner.spinner-balanced { + stroke: #33cd5f; + fill: #33cd5f; } + .spinner.spinner-assertive { + stroke: #ef473a; + fill: #ef473a; } + .spinner.spinner-energized { + stroke: #ffc900; + fill: #ffc900; } + .spinner.spinner-royal { + stroke: #886aea; + fill: #886aea; } + .spinner.spinner-dark { + stroke: #444; + fill: #444; } + +.spinner-android { + stroke: #4b8bf4; } + +.spinner-ios, .spinner-ios-small { + stroke: #69717d; } + +.spinner-spiral .stop1 { + stop-color: #fff; + stop-opacity: 0; } +.spinner-spiral.spinner-light .stop1 { + stop-color: #444; } +.spinner-spiral.spinner-light .stop2 { + stop-color: #fff; } +.spinner-spiral.spinner-stable .stop2 { + stop-color: #f8f8f8; } +.spinner-spiral.spinner-positive .stop2 { + stop-color: #387ef5; } +.spinner-spiral.spinner-calm .stop2 { + stop-color: #11c1f3; } +.spinner-spiral.spinner-balanced .stop2 { + stop-color: #33cd5f; } +.spinner-spiral.spinner-assertive .stop2 { + stop-color: #ef473a; } +.spinner-spiral.spinner-energized .stop2 { + stop-color: #ffc900; } +.spinner-spiral.spinner-royal .stop2 { + stop-color: #886aea; } +.spinner-spiral.spinner-dark .stop2 { + stop-color: #444; } + +/** + * Forms + * -------------------------------------------------- + */ +form { + margin: 0 0 1.42857; } + +legend { + display: block; + margin-bottom: 1.42857; + padding: 0; + width: 100%; + border: 1px solid #ddd; + color: #444; + font-size: 21px; + line-height: 2.85714; } + legend small { + color: #f8f8f8; + font-size: 1.07143; } + +label, input, button, select, textarea { + font-weight: normal; + font-size: 14px; + line-height: 1.42857; } + +input, button, select, textarea { + font-family: "Helvetica Neue", "Roboto", "Segoe UI", sans-serif; } + +.item-input { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + position: relative; + overflow: hidden; + padding: 6px 0 5px 16px; } + .item-input input { + -webkit-border-radius: 0; + border-radius: 0; + -webkit-box-flex: 1; + -webkit-flex: 1 220px; + -moz-box-flex: 1; + -moz-flex: 1 220px; + -ms-flex: 1 220px; + flex: 1 220px; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + margin: 0; + padding-right: 24px; + background-color: transparent; } + .item-input .button .icon { + -webkit-box-flex: 0; + -webkit-flex: 0 0 24px; + -moz-box-flex: 0; + -moz-flex: 0 0 24px; + -ms-flex: 0 0 24px; + flex: 0 0 24px; + position: static; + display: inline-block; + height: auto; + text-align: center; + font-size: 16px; } + .item-input .button-bar { + -webkit-border-radius: 0; + border-radius: 0; + -webkit-box-flex: 1; + -webkit-flex: 1 0 220px; + -moz-box-flex: 1; + -moz-flex: 1 0 220px; + -ms-flex: 1 0 220px; + flex: 1 0 220px; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } + .item-input .icon { + min-width: 14px; } + +.platform-windowsphone .item-input input { + flex-shrink: 1; } + +.item-input-inset { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + position: relative; + overflow: hidden; + padding: 10.66667px; } + +.item-input-wrapper { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1 0; + -moz-box-flex: 1; + -moz-flex: 1 0; + -ms-flex: 1 0; + flex: 1 0; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + -webkit-border-radius: 4px; + border-radius: 4px; + padding-right: 8px; + padding-left: 8px; + background: #eee; } + +.item-input-inset .item-input-wrapper input { + padding-left: 4px; + height: 29px; + background: transparent; + line-height: 18px; } + +.item-input-wrapper ~ .button { + margin-left: 10.66667px; } + +.input-label { + display: table; + padding: 7px 10px 7px 0px; + max-width: 200px; + width: 35%; + color: #444; + font-size: 16px; } + +.placeholder-icon { + color: #aaa; } + .placeholder-icon:first-child { + padding-right: 6px; } + .placeholder-icon:last-child { + padding-left: 6px; } + +.item-stacked-label { + display: block; + background-color: transparent; + box-shadow: none; } + .item-stacked-label .input-label, .item-stacked-label .icon { + display: inline-block; + padding: 4px 0 0 0px; + vertical-align: middle; } + +.item-stacked-label input, .item-stacked-label textarea { + -webkit-border-radius: 2px; + border-radius: 2px; + padding: 4px 8px 3px 0; + border: none; + background-color: #fff; } + +.item-stacked-label input { + overflow: hidden; + height: 46px; } + +.item-floating-label { + display: block; + background-color: transparent; + box-shadow: none; } + .item-floating-label .input-label { + position: relative; + padding: 5px 0 0 0; + opacity: 0; + top: 10px; + -webkit-transition: opacity 0.15s ease-in, top 0.2s linear; + transition: opacity 0.15s ease-in, top 0.2s linear; } + .item-floating-label .input-label.has-input { + opacity: 1; + top: 0; + -webkit-transition: opacity 0.15s ease-in, top 0.2s linear; + transition: opacity 0.15s ease-in, top 0.2s linear; } + +textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"] { + display: block; + padding-top: 2px; + padding-left: 0; + height: 34px; + color: #111; + vertical-align: middle; + font-size: 14px; + line-height: 16px; } + +.platform-ios input[type="datetime-local"], .platform-ios input[type="date"], .platform-ios input[type="month"], .platform-ios input[type="time"], .platform-ios input[type="week"], .platform-android input[type="datetime-local"], .platform-android input[type="date"], .platform-android input[type="month"], .platform-android input[type="time"], .platform-android input[type="week"] { + padding-top: 8px; } + +.item-input input, .item-input textarea { + width: 100%; } + +textarea { + padding-left: 0; } + textarea::-moz-placeholder { + color: #aaaaaa; } + textarea:-ms-input-placeholder { + color: #aaaaaa; } + textarea::-webkit-input-placeholder { + color: #aaaaaa; + text-indent: -3px; } + +textarea { + height: auto; } + +textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"] { + border: 0; } + +input[type="radio"], input[type="checkbox"] { + margin: 0; + line-height: normal; } + +.item-input input[type="file"], .item-input input[type="image"], .item-input input[type="submit"], .item-input input[type="reset"], .item-input input[type="button"], .item-input input[type="radio"], .item-input input[type="checkbox"] { + width: auto; } + +input[type="file"] { + line-height: 34px; } + +.previous-input-focus, .cloned-text-input + input, .cloned-text-input + textarea { + position: absolute !important; + left: -9999px; + width: 200px; } + +input::-moz-placeholder, textarea::-moz-placeholder { + color: #aaaaaa; } +input:-ms-input-placeholder, textarea:-ms-input-placeholder { + color: #aaaaaa; } +input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { + color: #aaaaaa; + text-indent: 0; } + +input[disabled], select[disabled], textarea[disabled], input[readonly]:not(.cloned-text-input), textarea[readonly]:not(.cloned-text-input), select[readonly] { + background-color: #f8f8f8; + cursor: not-allowed; } + +input[type="radio"][disabled], input[type="checkbox"][disabled], input[type="radio"][readonly], input[type="checkbox"][readonly] { + background-color: transparent; } + +/** + * Checkbox + * -------------------------------------------------- + */ +.checkbox { + position: relative; + display: inline-block; + padding: 7px 7px; + cursor: pointer; } + .checkbox input:before, .checkbox .checkbox-icon:before { + border-color: #ddd; } + .checkbox input:checked:before, .checkbox input:checked + .checkbox-icon:before { + background: #387ef5; + border-color: #387ef5; } + +.checkbox-light input:before, .checkbox-light .checkbox-icon:before { + border-color: #ddd; } +.checkbox-light input:checked:before, .checkbox-light input:checked + .checkbox-icon:before { + background: #ddd; + border-color: #ddd; } + +.checkbox-stable input:before, .checkbox-stable .checkbox-icon:before { + border-color: #b2b2b2; } +.checkbox-stable input:checked:before, .checkbox-stable input:checked + .checkbox-icon:before { + background: #b2b2b2; + border-color: #b2b2b2; } + +.checkbox-positive input:before, .checkbox-positive .checkbox-icon:before { + border-color: #387ef5; } +.checkbox-positive input:checked:before, .checkbox-positive input:checked + .checkbox-icon:before { + background: #387ef5; + border-color: #387ef5; } + +.checkbox-calm input:before, .checkbox-calm .checkbox-icon:before { + border-color: #11c1f3; } +.checkbox-calm input:checked:before, .checkbox-calm input:checked + .checkbox-icon:before { + background: #11c1f3; + border-color: #11c1f3; } + +.checkbox-assertive input:before, .checkbox-assertive .checkbox-icon:before { + border-color: #ef473a; } +.checkbox-assertive input:checked:before, .checkbox-assertive input:checked + .checkbox-icon:before { + background: #ef473a; + border-color: #ef473a; } + +.checkbox-balanced input:before, .checkbox-balanced .checkbox-icon:before { + border-color: #33cd5f; } +.checkbox-balanced input:checked:before, .checkbox-balanced input:checked + .checkbox-icon:before { + background: #33cd5f; + border-color: #33cd5f; } + +.checkbox-energized input:before, .checkbox-energized .checkbox-icon:before { + border-color: #ffc900; } +.checkbox-energized input:checked:before, .checkbox-energized input:checked + .checkbox-icon:before { + background: #ffc900; + border-color: #ffc900; } + +.checkbox-royal input:before, .checkbox-royal .checkbox-icon:before { + border-color: #886aea; } +.checkbox-royal input:checked:before, .checkbox-royal input:checked + .checkbox-icon:before { + background: #886aea; + border-color: #886aea; } + +.checkbox-dark input:before, .checkbox-dark .checkbox-icon:before { + border-color: #444; } +.checkbox-dark input:checked:before, .checkbox-dark input:checked + .checkbox-icon:before { + background: #444; + border-color: #444; } + +.checkbox input:disabled:before, .checkbox input:disabled + .checkbox-icon:before { + border-color: #ddd; } + +.checkbox input:disabled:checked:before, .checkbox input:disabled:checked + .checkbox-icon:before { + background: #ddd; } + +.checkbox.checkbox-input-hidden input { + display: none !important; } + +.checkbox input, .checkbox-icon { + position: relative; + width: 28px; + height: 28px; + display: block; + border: 0; + background: transparent; + cursor: pointer; + -webkit-appearance: none; } + .checkbox input:before, .checkbox-icon:before { + display: table; + width: 100%; + height: 100%; + border-width: 1px; + border-style: solid; + border-radius: 28px; + background: #fff; + content: ' '; + -webkit-transition: background-color 20ms ease-in-out; + transition: background-color 20ms ease-in-out; } + +.checkbox input:checked:before, input:checked + .checkbox-icon:before { + border-width: 2px; } + +.checkbox input:after, .checkbox-icon:after { + -webkit-transition: opacity 0.05s ease-in-out; + transition: opacity 0.05s ease-in-out; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + position: absolute; + top: 33%; + left: 25%; + display: table; + width: 14px; + height: 6px; + border: 1px solid #fff; + border-top: 0; + border-right: 0; + content: ' '; + opacity: 0; } + +.platform-android .checkbox-platform input:before, .platform-android .checkbox-platform .checkbox-icon:before, .checkbox-square input:before, .checkbox-square .checkbox-icon:before { + border-radius: 2px; + width: 72%; + height: 72%; + margin-top: 14%; + margin-left: 14%; + border-width: 2px; } + +.platform-android .checkbox-platform input:after, .platform-android .checkbox-platform .checkbox-icon:after, .checkbox-square input:after, .checkbox-square .checkbox-icon:after { + border-width: 2px; + top: 19%; + left: 25%; + width: 13px; + height: 7px; } + +.grade-c .checkbox input:after, .grade-c .checkbox-icon:after { + -webkit-transform: rotate(0); + transform: rotate(0); + top: 3px; + left: 4px; + border: none; + color: #fff; + content: '\2713'; + font-weight: bold; + font-size: 20px; } + +.checkbox input:checked:after, input:checked + .checkbox-icon:after { + opacity: 1; } + +.item-checkbox { + padding-left: 60px; } + .item-checkbox.active { + box-shadow: none; } + +.item-checkbox .checkbox { + position: absolute; + top: 50%; + right: 8px; + left: 8px; + z-index: 3; + margin-top: -21px; } + +.item-checkbox.item-checkbox-right { + padding-right: 60px; + padding-left: 16px; } + +.item-checkbox-right .checkbox input, .item-checkbox-right .checkbox-icon { + float: right; } + +/** + * Toggle + * -------------------------------------------------- + */ +.item-toggle { + pointer-events: none; } + +.toggle { + position: relative; + display: inline-block; + pointer-events: auto; + margin: -5px; + padding: 5px; } + .toggle input:checked + .track { + border-color: #4cd964; + background-color: #4cd964; } + .toggle.dragging .handle { + background-color: #f2f2f2 !important; } + +.toggle.toggle-light input:checked + .track { + border-color: #ddd; + background-color: #ddd; } +.toggle.toggle-stable input:checked + .track { + border-color: #b2b2b2; + background-color: #b2b2b2; } +.toggle.toggle-positive input:checked + .track { + border-color: #387ef5; + background-color: #387ef5; } +.toggle.toggle-calm input:checked + .track { + border-color: #11c1f3; + background-color: #11c1f3; } +.toggle.toggle-assertive input:checked + .track { + border-color: #ef473a; + background-color: #ef473a; } +.toggle.toggle-balanced input:checked + .track { + border-color: #33cd5f; + background-color: #33cd5f; } +.toggle.toggle-energized input:checked + .track { + border-color: #ffc900; + background-color: #ffc900; } +.toggle.toggle-royal input:checked + .track { + border-color: #886aea; + background-color: #886aea; } +.toggle.toggle-dark input:checked + .track { + border-color: #444; + background-color: #444; } + +.toggle input { + display: none; } + +/* the track appearance when the toggle is "off" */ +.toggle .track { + -webkit-transition-timing-function: ease-in-out; + transition-timing-function: ease-in-out; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: background-color, border; + transition-property: background-color, border; + display: inline-block; + box-sizing: border-box; + width: 51px; + height: 31px; + border: solid 2px #e6e6e6; + border-radius: 20px; + background-color: #fff; + content: ' '; + cursor: pointer; + pointer-events: none; } + +/* Fix to avoid background color bleeding */ +/* (occured on (at least) Android 4.2, Asus MeMO Pad HD7 ME173X) */ +.platform-android4_2 .toggle .track { + -webkit-background-clip: padding-box; } + +/* the handle (circle) thats inside the toggle's track area */ +/* also the handle's appearance when it is "off" */ +.toggle .handle { + -webkit-transition: 0.3s cubic-bezier(0, 1.1, 1, 1.1); + transition: 0.3s cubic-bezier(0, 1.1, 1, 1.1); + -webkit-transition-property: background-color, transform; + transition-property: background-color, transform; + position: absolute; + display: block; + width: 27px; + height: 27px; + border-radius: 27px; + background-color: #fff; + top: 7px; + left: 7px; + box-shadow: 0 2px 7px rgba(0, 0, 0, 0.35), 0 1px 1px rgba(0, 0, 0, 0.15); } + .toggle .handle:before { + position: absolute; + top: -4px; + left: -21.5px; + padding: 18.5px 34px; + content: " "; } + +.toggle input:checked + .track .handle { + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + background-color: #fff; } + +.item-toggle.active { + box-shadow: none; } + +.item-toggle, .item-toggle.item-complex .item-content { + padding-right: 99px; } + +.item-toggle.item-complex { + padding-right: 0; } + +.item-toggle .toggle { + position: absolute; + top: 10px; + right: 16px; + z-index: 3; } + +.toggle input:disabled + .track { + opacity: 0.6; } + +.toggle-small .track { + border: 0; + width: 34px; + height: 15px; + background: #9e9e9e; } +.toggle-small input:checked + .track { + background: rgba(0, 150, 137, 0.5); } +.toggle-small .handle { + top: 2px; + left: 4px; + width: 21px; + height: 21px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25); } +.toggle-small input:checked + .track .handle { + -webkit-transform: translate3d(16px, 0, 0); + transform: translate3d(16px, 0, 0); + background: #009689; } +.toggle-small.item-toggle .toggle { + top: 19px; } +.toggle-small .toggle-light input:checked + .track { + background-color: rgba(221, 221, 221, 0.5); } +.toggle-small .toggle-light input:checked + .track .handle { + background-color: #ddd; } +.toggle-small .toggle-stable input:checked + .track { + background-color: rgba(178, 178, 178, 0.5); } +.toggle-small .toggle-stable input:checked + .track .handle { + background-color: #b2b2b2; } +.toggle-small .toggle-positive input:checked + .track { + background-color: rgba(56, 126, 245, 0.5); } +.toggle-small .toggle-positive input:checked + .track .handle { + background-color: #387ef5; } +.toggle-small .toggle-calm input:checked + .track { + background-color: rgba(17, 193, 243, 0.5); } +.toggle-small .toggle-calm input:checked + .track .handle { + background-color: #11c1f3; } +.toggle-small .toggle-assertive input:checked + .track { + background-color: rgba(239, 71, 58, 0.5); } +.toggle-small .toggle-assertive input:checked + .track .handle { + background-color: #ef473a; } +.toggle-small .toggle-balanced input:checked + .track { + background-color: rgba(51, 205, 95, 0.5); } +.toggle-small .toggle-balanced input:checked + .track .handle { + background-color: #33cd5f; } +.toggle-small .toggle-energized input:checked + .track { + background-color: rgba(255, 201, 0, 0.5); } +.toggle-small .toggle-energized input:checked + .track .handle { + background-color: #ffc900; } +.toggle-small .toggle-royal input:checked + .track { + background-color: rgba(136, 106, 234, 0.5); } +.toggle-small .toggle-royal input:checked + .track .handle { + background-color: #886aea; } +.toggle-small .toggle-dark input:checked + .track { + background-color: rgba(68, 68, 68, 0.5); } +.toggle-small .toggle-dark input:checked + .track .handle { + background-color: #444; } + +/** + * Radio Button Inputs + * -------------------------------------------------- + */ +.item-radio { + padding: 0; } + .item-radio:hover { + cursor: pointer; } + +.item-radio .item-content { + /* give some room to the right for the checkmark icon */ + padding-right: 64px; } + +.item-radio .radio-icon { + /* checkmark icon will be hidden by default */ + position: absolute; + top: 0; + right: 0; + z-index: 3; + visibility: hidden; + padding: 14px; + height: 100%; + font-size: 24px; } + +.item-radio input { + /* hide any radio button inputs elements (the ugly circles) */ + position: absolute; + left: -9999px; } + .item-radio input:checked ~ .item-content { + /* style the item content when its checked */ + background: #f7f7f7; } + .item-radio input:checked ~ .radio-icon { + /* show the checkmark icon when its checked */ + visibility: visible; } + +.platform-android.grade-b .item-radio, .platform-android.grade-c .item-radio { + -webkit-animation: androidCheckedbugfix infinite 1s; } + +@-webkit-keyframes androidCheckedbugfix { + from { + padding: 0; } + + to { + padding: 0; } } + +/** + * Range + * -------------------------------------------------- + */ +.range input { + display: inline-block; + overflow: hidden; + margin-top: 5px; + margin-bottom: 5px; + padding-right: 2px; + padding-left: 1px; + width: auto; + height: 43px; + outline: none; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ccc), color-stop(100%, #ccc)); + background: linear-gradient(to right, #ccc 0%, #ccc 100%); + background-position: center; + background-size: 99% 2px; + background-repeat: no-repeat; + -webkit-appearance: none; } + .range input::-webkit-slider-thumb { + position: relative; + width: 28px; + height: 28px; + border-radius: 50%; + background-color: #fff; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2); + cursor: pointer; + -webkit-appearance: none; + border: 0; } + .range input::-webkit-slider-thumb:before { + /* what creates the colorful line on the left side of the slider */ + position: absolute; + top: 13px; + left: -2001px; + width: 2000px; + height: 2px; + background: #444; + content: ' '; } + .range input::-webkit-slider-thumb:after { + /* create a larger (but hidden) hit area */ + position: absolute; + top: -15px; + left: -15px; + padding: 30px; + content: ' '; } + .range input::-ms-track { + background: transparent; + border-color: transparent; + border-width: 11px 0 16px; + color: transparent; + margin-top: 20px; } + .range input::-ms-thumb { + width: 28px; + height: 28px; + border-radius: 50%; + background-color: #fff; + border-color: #fff; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2); + margin-left: 1px; + margin-right: 1px; + outline: none; } + .range input::-ms-fill-lower { + height: 2px; + background: #444; } + .range input::-ms-fill-upper { + height: 2px; + background: #ccc; } + +.range { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; + padding: 2px 11px; } + .range.range-light input::-webkit-slider-thumb:before { + background: #ddd; } + .range.range-light input::-ms-fill-lower { + background: #ddd; } + .range.range-stable input::-webkit-slider-thumb:before { + background: #b2b2b2; } + .range.range-stable input::-ms-fill-lower { + background: #b2b2b2; } + .range.range-positive input::-webkit-slider-thumb:before { + background: #387ef5; } + .range.range-positive input::-ms-fill-lower { + background: #387ef5; } + .range.range-calm input::-webkit-slider-thumb:before { + background: #11c1f3; } + .range.range-calm input::-ms-fill-lower { + background: #11c1f3; } + .range.range-balanced input::-webkit-slider-thumb:before { + background: #33cd5f; } + .range.range-balanced input::-ms-fill-lower { + background: #33cd5f; } + .range.range-assertive input::-webkit-slider-thumb:before { + background: #ef473a; } + .range.range-assertive input::-ms-fill-lower { + background: #ef473a; } + .range.range-energized input::-webkit-slider-thumb:before { + background: #ffc900; } + .range.range-energized input::-ms-fill-lower { + background: #ffc900; } + .range.range-royal input::-webkit-slider-thumb:before { + background: #886aea; } + .range.range-royal input::-ms-fill-lower { + background: #886aea; } + .range.range-dark input::-webkit-slider-thumb:before { + background: #444; } + .range.range-dark input::-ms-fill-lower { + background: #444; } + +.range .icon { + -webkit-box-flex: 0; + -webkit-flex: 0; + -moz-box-flex: 0; + -moz-flex: 0; + -ms-flex: 0; + flex: 0; + display: block; + min-width: 24px; + text-align: center; + font-size: 24px; } + +.range input { + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -moz-flex: 1; + -ms-flex: 1; + flex: 1; + display: block; + margin-right: 10px; + margin-left: 10px; } + +.range-label { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -moz-box-flex: 0; + -moz-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + display: block; + white-space: nowrap; } + +.range-label:first-child { + padding-left: 5px; } + +.range input + .range-label { + padding-right: 5px; + padding-left: 0; } + +.platform-windowsphone .range input { + height: auto; } + +/** + * Select + * -------------------------------------------------- + */ +.item-select { + position: relative; } + .item-select select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + position: absolute; + top: 0; + bottom: 0; + right: 0; + padding: 0 48px 0 16px; + max-width: 65%; + border: none; + background: #fff; + color: #333; + text-indent: 0.01px; + text-overflow: ''; + white-space: nowrap; + font-size: 14px; + cursor: pointer; + direction: rtl; } + .item-select select::-ms-expand { + display: none; } + .item-select option { + direction: ltr; } + .item-select:after { + position: absolute; + top: 50%; + right: 16px; + margin-top: -3px; + width: 0; + height: 0; + border-top: 5px solid; + border-right: 5px solid rgba(0, 0, 0, 0); + border-left: 5px solid rgba(0, 0, 0, 0); + color: #999; + content: ""; + pointer-events: none; } + .item-select.item-light select { + background: #fff; + color: #444; } + .item-select.item-stable select { + background: #f8f8f8; + color: #444; } + .item-select.item-stable:after, .item-select.item-stable .input-label { + color: #656565; } + .item-select.item-positive select { + background: #387ef5; + color: #fff; } + .item-select.item-positive:after, .item-select.item-positive .input-label { + color: #fff; } + .item-select.item-calm select { + background: #11c1f3; + color: #fff; } + .item-select.item-calm:after, .item-select.item-calm .input-label { + color: #fff; } + .item-select.item-assertive select { + background: #ef473a; + color: #fff; } + .item-select.item-assertive:after, .item-select.item-assertive .input-label { + color: #fff; } + .item-select.item-balanced select { + background: #33cd5f; + color: #fff; } + .item-select.item-balanced:after, .item-select.item-balanced .input-label { + color: #fff; } + .item-select.item-energized select { + background: #ffc900; + color: #fff; } + .item-select.item-energized:after, .item-select.item-energized .input-label { + color: #fff; } + .item-select.item-royal select { + background: #886aea; + color: #fff; } + .item-select.item-royal:after, .item-select.item-royal .input-label { + color: #fff; } + .item-select.item-dark select { + background: #444; + color: #fff; } + .item-select.item-dark:after, .item-select.item-dark .input-label { + color: #fff; } + +select[multiple], select[size] { + height: auto; } + +/** + * Progress + * -------------------------------------------------- + */ +progress { + display: block; + margin: 15px auto; + width: 100%; } + +/** + * Buttons + * -------------------------------------------------- + */ +.button { + border-color: #b2b2b2; + background-color: #f8f8f8; + color: #444; + position: relative; + display: inline-block; + margin: 0; + padding: 0 12px; + min-width: 52px; + min-height: 47px; + border-width: 1px; + border-style: solid; + border-radius: 2px; + vertical-align: top; + text-align: center; + text-overflow: ellipsis; + font-size: 16px; + line-height: 42px; + cursor: pointer; } + .button:hover { + color: #444; + text-decoration: none; } + .button.active, .button.activated { + border-color: #a2a2a2; + background-color: #e5e5e5; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .button:after { + position: absolute; + top: -6px; + right: -6px; + bottom: -6px; + left: -6px; + content: ' '; } + .button .icon { + vertical-align: top; + pointer-events: none; } + .button .icon:before, .button.icon:before, .button.icon-left:before, .button.icon-right:before { + display: inline-block; + padding: 0 0 1px 0; + vertical-align: inherit; + font-size: 24px; + line-height: 41px; + pointer-events: none; } + .button.icon-left:before { + float: left; + padding-right: 0.2em; + padding-left: 0; } + .button.icon-right:before { + float: right; + padding-right: 0; + padding-left: 0.2em; } + .button.button-block, .button.button-full { + margin-top: 10px; + margin-bottom: 10px; } + .button.button-light { + border-color: #ddd; + background-color: #fff; + color: #444; } + .button.button-light:hover { + color: #444; + text-decoration: none; } + .button.button-light.active, .button.button-light.activated { + border-color: #ccc; + background-color: #fafafa; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .button.button-light.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #ddd; } + .button.button-light.button-icon { + border-color: transparent; + background: none; } + .button.button-light.button-outline { + border-color: #ddd; + background: transparent; + color: #ddd; } + .button.button-light.button-outline.active, .button.button-light.button-outline.activated { + background-color: #ddd; + box-shadow: none; + color: #fff; } + .button.button-stable { + border-color: #b2b2b2; + background-color: #f8f8f8; + color: #444; } + .button.button-stable:hover { + color: #444; + text-decoration: none; } + .button.button-stable.active, .button.button-stable.activated { + border-color: #a2a2a2; + background-color: #e5e5e5; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .button.button-stable.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #b2b2b2; } + .button.button-stable.button-icon { + border-color: transparent; + background: none; } + .button.button-stable.button-outline { + border-color: #b2b2b2; + background: transparent; + color: #b2b2b2; } + .button.button-stable.button-outline.active, .button.button-stable.button-outline.activated { + background-color: #b2b2b2; + box-shadow: none; + color: #fff; } + .button.button-positive { + border-color: #0c63ee; + background-color: #387ef5; + color: #fff; } + .button.button-positive:hover { + color: #fff; + text-decoration: none; } + .button.button-positive.active, .button.button-positive.activated { + border-color: #0c63ee; + background-color: #0c63ee; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .button.button-positive.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #387ef5; } + .button.button-positive.button-icon { + border-color: transparent; + background: none; } + .button.button-positive.button-outline { + border-color: #387ef5; + background: transparent; + color: #387ef5; } + .button.button-positive.button-outline.active, .button.button-positive.button-outline.activated { + background-color: #387ef5; + box-shadow: none; + color: #fff; } + .button.button-calm { + border-color: #0a9ec7; + background-color: #11c1f3; + color: #fff; } + .button.button-calm:hover { + color: #fff; + text-decoration: none; } + .button.button-calm.active, .button.button-calm.activated { + border-color: #0a9ec7; + background-color: #0a9ec7; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .button.button-calm.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #11c1f3; } + .button.button-calm.button-icon { + border-color: transparent; + background: none; } + .button.button-calm.button-outline { + border-color: #11c1f3; + background: transparent; + color: #11c1f3; } + .button.button-calm.button-outline.active, .button.button-calm.button-outline.activated { + background-color: #11c1f3; + box-shadow: none; + color: #fff; } + .button.button-assertive { + border-color: #e42012; + background-color: #ef473a; + color: #fff; } + .button.button-assertive:hover { + color: #fff; + text-decoration: none; } + .button.button-assertive.active, .button.button-assertive.activated { + border-color: #e42012; + background-color: #e42012; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .button.button-assertive.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #ef473a; } + .button.button-assertive.button-icon { + border-color: transparent; + background: none; } + .button.button-assertive.button-outline { + border-color: #ef473a; + background: transparent; + color: #ef473a; } + .button.button-assertive.button-outline.active, .button.button-assertive.button-outline.activated { + background-color: #ef473a; + box-shadow: none; + color: #fff; } + .button.button-balanced { + border-color: #28a54c; + background-color: #33cd5f; + color: #fff; } + .button.button-balanced:hover { + color: #fff; + text-decoration: none; } + .button.button-balanced.active, .button.button-balanced.activated { + border-color: #28a54c; + background-color: #28a54c; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .button.button-balanced.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #33cd5f; } + .button.button-balanced.button-icon { + border-color: transparent; + background: none; } + .button.button-balanced.button-outline { + border-color: #33cd5f; + background: transparent; + color: #33cd5f; } + .button.button-balanced.button-outline.active, .button.button-balanced.button-outline.activated { + background-color: #33cd5f; + box-shadow: none; + color: #fff; } + .button.button-energized { + border-color: #e6b400; + background-color: #ffc900; + color: #fff; } + .button.button-energized:hover { + color: #fff; + text-decoration: none; } + .button.button-energized.active, .button.button-energized.activated { + border-color: #e6b400; + background-color: #e6b400; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .button.button-energized.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #ffc900; } + .button.button-energized.button-icon { + border-color: transparent; + background: none; } + .button.button-energized.button-outline { + border-color: #ffc900; + background: transparent; + color: #ffc900; } + .button.button-energized.button-outline.active, .button.button-energized.button-outline.activated { + background-color: #ffc900; + box-shadow: none; + color: #fff; } + .button.button-royal { + border-color: #6b46e5; + background-color: #886aea; + color: #fff; } + .button.button-royal:hover { + color: #fff; + text-decoration: none; } + .button.button-royal.active, .button.button-royal.activated { + border-color: #6b46e5; + background-color: #6b46e5; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .button.button-royal.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #886aea; } + .button.button-royal.button-icon { + border-color: transparent; + background: none; } + .button.button-royal.button-outline { + border-color: #886aea; + background: transparent; + color: #886aea; } + .button.button-royal.button-outline.active, .button.button-royal.button-outline.activated { + background-color: #886aea; + box-shadow: none; + color: #fff; } + .button.button-dark { + border-color: #111; + background-color: #444; + color: #fff; } + .button.button-dark:hover { + color: #fff; + text-decoration: none; } + .button.button-dark.active, .button.button-dark.activated { + border-color: #000; + background-color: #262626; + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.1); } + .button.button-dark.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #444; } + .button.button-dark.button-icon { + border-color: transparent; + background: none; } + .button.button-dark.button-outline { + border-color: #444; + background: transparent; + color: #444; } + .button.button-dark.button-outline.active, .button.button-dark.button-outline.activated { + background-color: #444; + box-shadow: none; + color: #fff; } + +.button-small { + padding: 2px 4px 1px; + min-width: 28px; + min-height: 30px; + font-size: 12px; + line-height: 26px; } + .button-small .icon:before, .button-small.icon:before, .button-small.icon-left:before, .button-small.icon-right:before { + font-size: 16px; + line-height: 19px; + margin-top: 3px; } + +.button-large { + padding: 0 16px; + min-width: 68px; + min-height: 59px; + font-size: 20px; + line-height: 53px; } + .button-large .icon:before, .button-large.icon:before, .button-large.icon-left:before, .button-large.icon-right:before { + padding-bottom: 2px; + font-size: 32px; + line-height: 51px; } + +.button-icon { + -webkit-transition: opacity 0.1s; + transition: opacity 0.1s; + padding: 0 6px; + min-width: initial; + border-color: transparent; + background: none; } + .button-icon.button.active, .button-icon.button.activated { + border-color: transparent; + background: none; + box-shadow: none; + opacity: 0.3; } + .button-icon .icon:before, .button-icon.icon:before { + font-size: 32px; } + +.button-clear { + -webkit-transition: opacity 0.1s; + transition: opacity 0.1s; + padding: 0 6px; + max-height: 42px; + border-color: transparent; + background: none; + box-shadow: none; } + .button-clear.button-clear { + border-color: transparent; + background: none; + box-shadow: none; + color: #b2b2b2; } + .button-clear.button-icon { + border-color: transparent; + background: none; } + .button-clear.active, .button-clear.activated { + opacity: 0.3; } + +.button-outline { + -webkit-transition: opacity 0.1s; + transition: opacity 0.1s; + background: none; + box-shadow: none; } + .button-outline.button-outline { + border-color: #b2b2b2; + background: transparent; + color: #b2b2b2; } + .button-outline.button-outline.active, .button-outline.button-outline.activated { + background-color: #b2b2b2; + box-shadow: none; + color: #fff; } + +.padding > .button.button-block:first-child { + margin-top: 0; } + +.button-block { + display: block; + clear: both; } + .button-block:after { + clear: both; } + +.button-full, .button-full > .button { + display: block; + margin-right: 0; + margin-left: 0; + border-right-width: 0; + border-left-width: 0; + border-radius: 0; } + +button.button-block, button.button-full, .button-full > button.button, input.button.button-block { + width: 100%; } + +a.button { + text-decoration: none; } + a.button .icon:before, a.button.icon:before, a.button.icon-left:before, a.button.icon-right:before { + margin-top: 2px; } + +.button.disabled, .button[disabled] { + opacity: 0.4; + cursor: default !important; + pointer-events: none; } + +/** + * Button Bar + * -------------------------------------------------- + */ +.button-bar { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -moz-flex: 1; + -ms-flex: 1; + flex: 1; + width: 100%; } + .button-bar.button-bar-inline { + display: block; + width: auto; + *zoom: 1; } + .button-bar.button-bar-inline:before, .button-bar.button-bar-inline:after { + display: table; + content: ""; + line-height: 0; } + .button-bar.button-bar-inline:after { + clear: both; } + .button-bar.button-bar-inline > .button { + width: auto; + display: inline-block; + float: left; } + +.button-bar > .button { + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -moz-flex: 1; + -ms-flex: 1; + flex: 1; + display: block; + overflow: hidden; + padding: 0 16px; + width: 0; + border-width: 1px 0px 1px 1px; + border-radius: 0; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; } + .button-bar > .button:before, .button-bar > .button .icon:before { + line-height: 44px; } + .button-bar > .button:first-child { + border-radius: 2px 0px 0px 2px; } + .button-bar > .button:last-child { + border-right-width: 1px; + border-radius: 0px 2px 2px 0px; } + +.button-bar > .button-small:before, .button-bar > .button-small .icon:before { + line-height: 28px; } + +/** + * Grid + * -------------------------------------------------- + * Using flexbox for the grid, inspired by Philip Walton: + * http://philipwalton.github.io/solved-by-flexbox/demos/grids/ + * By default each .col within a .row will evenly take up + * available width, and the height of each .col with take + * up the height of the tallest .col in the same .row. + */ +.row { + display: -webkit-box; + display: -webkit-flex; + display: -moz-box; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + padding: 5px; + width: 100%; } + +.row-wrap { + -webkit-flex-wrap: wrap; + -moz-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + +.row-no-padding { + padding: 0; } + .row-no-padding > .col { + padding: 0; } + +.row + .row { + margin-top: -5px; + padding-top: 0; } + +.col { + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -moz-flex: 1; + -ms-flex: 1; + flex: 1; + display: block; + padding: 5px; + width: 100%; } + +/* Vertically Align Columns */ +/* .row-* vertically aligns every .col in the .row */ +.row-top { + -webkit-box-align: start; + -ms-flex-align: start; + -webkit-align-items: flex-start; + -moz-align-items: flex-start; + align-items: flex-start; } + +.row-bottom { + -webkit-box-align: end; + -ms-flex-align: end; + -webkit-align-items: flex-end; + -moz-align-items: flex-end; + align-items: flex-end; } + +.row-center { + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + -moz-align-items: center; + align-items: center; } + +.row-stretch { + -webkit-box-align: stretch; + -ms-flex-align: stretch; + -webkit-align-items: stretch; + -moz-align-items: stretch; + align-items: stretch; } + +.row-baseline { + -webkit-box-align: baseline; + -ms-flex-align: baseline; + -webkit-align-items: baseline; + -moz-align-items: baseline; + align-items: baseline; } + +/* .col-* vertically aligns an individual .col */ +.col-top { + -webkit-align-self: flex-start; + -moz-align-self: flex-start; + -ms-flex-item-align: start; + align-self: flex-start; } + +.col-bottom { + -webkit-align-self: flex-end; + -moz-align-self: flex-end; + -ms-flex-item-align: end; + align-self: flex-end; } + +.col-center { + -webkit-align-self: center; + -moz-align-self: center; + -ms-flex-item-align: center; + align-self: center; } + +/* Column Offsets */ +.col-offset-10 { + margin-left: 10%; } + +.col-offset-20 { + margin-left: 20%; } + +.col-offset-25 { + margin-left: 25%; } + +.col-offset-33, .col-offset-34 { + margin-left: 33.3333%; } + +.col-offset-50 { + margin-left: 50%; } + +.col-offset-66, .col-offset-67 { + margin-left: 66.6666%; } + +.col-offset-75 { + margin-left: 75%; } + +.col-offset-80 { + margin-left: 80%; } + +.col-offset-90 { + margin-left: 90%; } + +/* Explicit Column Percent Sizes */ +/* By default each grid column will evenly distribute */ +/* across the grid. However, you can specify individual */ +/* columns to take up a certain size of the available area */ +.col-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -moz-box-flex: 0; + -moz-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 10%; } + +.col-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -moz-box-flex: 0; + -moz-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; } + +.col-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -moz-box-flex: 0; + -moz-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; } + +.col-33, .col-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33.3333%; + -moz-box-flex: 0; + -moz-flex: 0 0 33.3333%; + -ms-flex: 0 0 33.3333%; + flex: 0 0 33.3333%; + max-width: 33.3333%; } + +.col-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -moz-box-flex: 0; + -moz-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; } + +.col-66, .col-67 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66.6666%; + -moz-box-flex: 0; + -moz-flex: 0 0 66.6666%; + -ms-flex: 0 0 66.6666%; + flex: 0 0 66.6666%; + max-width: 66.6666%; } + +.col-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -moz-box-flex: 0; + -moz-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; } + +.col-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -moz-box-flex: 0; + -moz-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 80%; } + +.col-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -moz-box-flex: 0; + -moz-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 90%; } + +/* Responsive Grid Classes */ +/* Adding a class of responsive-X to a row */ +/* will trigger the flex-direction to */ +/* change to column and add some margin */ +/* to any columns in the row for clearity */ +@media (max-width: 567px) { + .responsive-sm { + -webkit-box-direction: normal; + -moz-box-direction: normal; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .responsive-sm .col, .responsive-sm .col-10, .responsive-sm .col-20, .responsive-sm .col-25, .responsive-sm .col-33, .responsive-sm .col-34, .responsive-sm .col-50, .responsive-sm .col-66, .responsive-sm .col-67, .responsive-sm .col-75, .responsive-sm .col-80, .responsive-sm .col-90 { + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -moz-flex: 1; + -ms-flex: 1; + flex: 1; + margin-bottom: 15px; + margin-left: 0; + max-width: 100%; + width: 100%; } } + +@media (max-width: 767px) { + .responsive-md { + -webkit-box-direction: normal; + -moz-box-direction: normal; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .responsive-md .col, .responsive-md .col-10, .responsive-md .col-20, .responsive-md .col-25, .responsive-md .col-33, .responsive-md .col-34, .responsive-md .col-50, .responsive-md .col-66, .responsive-md .col-67, .responsive-md .col-75, .responsive-md .col-80, .responsive-md .col-90 { + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -moz-flex: 1; + -ms-flex: 1; + flex: 1; + margin-bottom: 15px; + margin-left: 0; + max-width: 100%; + width: 100%; } } + +@media (max-width: 1023px) { + .responsive-lg { + -webkit-box-direction: normal; + -moz-box-direction: normal; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .responsive-lg .col, .responsive-lg .col-10, .responsive-lg .col-20, .responsive-lg .col-25, .responsive-lg .col-33, .responsive-lg .col-34, .responsive-lg .col-50, .responsive-lg .col-66, .responsive-lg .col-67, .responsive-lg .col-75, .responsive-lg .col-80, .responsive-lg .col-90 { + -webkit-box-flex: 1; + -webkit-flex: 1; + -moz-box-flex: 1; + -moz-flex: 1; + -ms-flex: 1; + flex: 1; + margin-bottom: 15px; + margin-left: 0; + max-width: 100%; + width: 100%; } } + +/** + * Utility Classes + * -------------------------------------------------- + */ +.hide { + display: none; } + +.opacity-hide { + opacity: 0; } + +.grade-b .opacity-hide, .grade-c .opacity-hide { + opacity: 1; + display: none; } + +.show { + display: block; } + +.opacity-show { + opacity: 1; } + +.invisible { + visibility: hidden; } + +.keyboard-open .hide-on-keyboard-open { + display: none; } + +.keyboard-open .tabs.hide-on-keyboard-open + .pane .has-tabs, .keyboard-open .bar-footer.hide-on-keyboard-open + .pane .has-footer { + bottom: 0; } + +.inline { + display: inline-block; } + +.disable-pointer-events { + pointer-events: none; } + +.enable-pointer-events { + pointer-events: auto; } + +.disable-user-behavior { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-touch-callout: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-tap-highlight-color: transparent; + -webkit-user-drag: none; + -ms-touch-action: none; + -ms-content-zooming: none; } + +.click-block { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + opacity: 0; + z-index: 99999; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + overflow: hidden; } + +.click-block-hide { + -webkit-transform: translate3d(-9999px, 0, 0); + transform: translate3d(-9999px, 0, 0); } + +.no-resize { + resize: none; } + +.block { + display: block; + clear: both; } + .block:after { + display: block; + visibility: hidden; + clear: both; + height: 0; + content: "."; } + +.full-image { + width: 100%; } + +.clearfix { + *zoom: 1; } + .clearfix:before, .clearfix:after { + display: table; + content: ""; + line-height: 0; } + .clearfix:after { + clear: both; } + +/** + * Content Padding + * -------------------------------------------------- + */ +.padding { + padding: 10px; } + +.padding-top, .padding-vertical { + padding-top: 10px; } + +.padding-right, .padding-horizontal { + padding-right: 10px; } + +.padding-bottom, .padding-vertical { + padding-bottom: 10px; } + +.padding-left, .padding-horizontal { + padding-left: 10px; } + +/** + * Scrollable iFrames + * -------------------------------------------------- + */ +.iframe-wrapper { + position: fixed; + -webkit-overflow-scrolling: touch; + overflow: scroll; } + .iframe-wrapper iframe { + height: 100%; + width: 100%; } + +/** + * Rounded + * -------------------------------------------------- + */ +.rounded { + border-radius: 4px; } + +/** + * Utility Colors + * -------------------------------------------------- + * Utility colors are added to help set a naming convention. You'll + * notice we purposely do not use words like "red" or "blue", but + * instead have colors which represent an emotion or generic theme. + */ +.light, a.light { + color: #fff; } + +.light-bg { + background-color: #fff; } + +.light-border { + border-color: #ddd; } + +.stable, a.stable { + color: #f8f8f8; } + +.stable-bg { + background-color: #f8f8f8; } + +.stable-border { + border-color: #b2b2b2; } + +.positive, a.positive { + color: #387ef5; } + +.positive-bg { + background-color: #387ef5; } + +.positive-border { + border-color: #0c63ee; } + +.calm, a.calm { + color: #11c1f3; } + +.calm-bg { + background-color: #11c1f3; } + +.calm-border { + border-color: #0a9ec7; } + +.assertive, a.assertive { + color: #ef473a; } + +.assertive-bg { + background-color: #ef473a; } + +.assertive-border { + border-color: #e42012; } + +.balanced, a.balanced { + color: #33cd5f; } + +.balanced-bg { + background-color: #33cd5f; } + +.balanced-border { + border-color: #28a54c; } + +.energized, a.energized { + color: #ffc900; } + +.energized-bg { + background-color: #ffc900; } + +.energized-border { + border-color: #e6b400; } + +.royal, a.royal { + color: #886aea; } + +.royal-bg { + background-color: #886aea; } + +.royal-border { + border-color: #6b46e5; } + +.dark, a.dark { + color: #444; } + +.dark-bg { + background-color: #444; } + +.dark-border { + border-color: #111; } + +[collection-repeat] { + /* Position is set by transforms */ + left: 0 !important; + top: 0 !important; + position: absolute !important; + z-index: 1; } + +.collection-repeat-container { + position: relative; + z-index: 1; } + +.collection-repeat-after-container { + z-index: 0; + display: block; + /* when scrolling horizontally, make sure the after container doesn't take up 100% width */ } + .collection-repeat-after-container.horizontal { + display: inline-block; } + +[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak, .ng-hide:not(.ng-hide-animate) { + display: none !important; } + +/** + * Platform + * -------------------------------------------------- + * Platform specific tweaks + */ +.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader) { + height: 64px; } + .platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper { + margin-top: 19px !important; } + .platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader) > * { + margin-top: 20px; } +.platform-ios.platform-cordova:not(.fullscreen) .tabs-top > .tabs, .platform-ios.platform-cordova:not(.fullscreen) .tabs.tabs-top { + top: 64px; } +.platform-ios.platform-cordova:not(.fullscreen) .has-header, .platform-ios.platform-cordova:not(.fullscreen) .bar-subheader { + top: 64px; } +.platform-ios.platform-cordova:not(.fullscreen) .has-subheader { + top: 108px; } +.platform-ios.platform-cordova:not(.fullscreen) .has-header.has-tabs-top { + top: 113px; } +.platform-ios.platform-cordova:not(.fullscreen) .has-header.has-subheader.has-tabs-top { + top: 157px; } +.platform-ios.platform-cordova .popover .bar-header:not(.bar-subheader) { + height: 44px; } + .platform-ios.platform-cordova .popover .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper { + margin-top: -1px; } + .platform-ios.platform-cordova .popover .bar-header:not(.bar-subheader) > * { + margin-top: 0; } +.platform-ios.platform-cordova .popover .has-header, .platform-ios.platform-cordova .popover .bar-subheader { + top: 44px; } +.platform-ios.platform-cordova .popover .has-subheader { + top: 88px; } +.platform-ios.platform-cordova.status-bar-hide { + margin-bottom: 20px; } + +@media (orientation: landscape) { + .platform-ios.platform-browser.platform-ipad { + position: fixed; } } + +.platform-c:not(.enable-transitions) * { + -webkit-transition: none !important; + transition: none !important; } + +.slide-in-up { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } + +.slide-in-up.ng-enter, .slide-in-up > .ng-enter { + -webkit-transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms; + transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms; } + +.slide-in-up.ng-enter-active, .slide-in-up > .ng-enter-active { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + +.slide-in-up.ng-leave, .slide-in-up > .ng-leave { + -webkit-transition: all ease-in-out 250ms; + transition: all ease-in-out 250ms; } + +@-webkit-keyframes scaleOut { + from { + -webkit-transform: scale(1); + opacity: 1; } + + to { + -webkit-transform: scale(0.8); + opacity: 0; } } + +@keyframes scaleOut { + from { + transform: scale(1); + opacity: 1; } + + to { + transform: scale(0.8); + opacity: 0; } } + +@-webkit-keyframes superScaleIn { + from { + -webkit-transform: scale(1.2); + opacity: 0; } + + to { + -webkit-transform: scale(1); + opacity: 1; } } + +@keyframes superScaleIn { + from { + transform: scale(1.2); + opacity: 0; } + + to { + transform: scale(1); + opacity: 1; } } + +[nav-view-transition="ios"] [nav-view="entering"], [nav-view-transition="ios"] [nav-view="leaving"] { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: cubic-bezier(0.36, 0.66, 0.04, 1); + transition-timing-function: cubic-bezier(0.36, 0.66, 0.04, 1); + -webkit-transition-property: opacity, -webkit-transform, box-shadow; + transition-property: opacity, transform, box-shadow; } +[nav-view-transition="ios"][nav-view-direction="forward"], [nav-view-transition="ios"][nav-view-direction="back"] { + background-color: #000; } +[nav-view-transition="ios"] [nav-view="active"], [nav-view-transition="ios"][nav-view-direction="forward"] [nav-view="entering"], [nav-view-transition="ios"][nav-view-direction="back"] [nav-view="leaving"] { + z-index: 3; } +[nav-view-transition="ios"][nav-view-direction="back"] [nav-view="entering"], [nav-view-transition="ios"][nav-view-direction="forward"] [nav-view="leaving"] { + z-index: 2; } + +[nav-bar-transition="ios"] .title, [nav-bar-transition="ios"] .buttons, [nav-bar-transition="ios"] .back-text { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -webkit-transition-timing-function: cubic-bezier(0.36, 0.66, 0.04, 1); + transition-timing-function: cubic-bezier(0.36, 0.66, 0.04, 1); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, transform; } +[nav-bar-transition="ios"] [nav-bar="active"], [nav-bar-transition="ios"] [nav-bar="entering"] { + z-index: 10; } + [nav-bar-transition="ios"] [nav-bar="active"] .bar, [nav-bar-transition="ios"] [nav-bar="entering"] .bar { + background: transparent; } +[nav-bar-transition="ios"] [nav-bar="cached"] { + display: block; } + [nav-bar-transition="ios"] [nav-bar="cached"] .header-item { + display: none; } + +[nav-view-transition="android"] [nav-view="entering"], [nav-view-transition="android"] [nav-view="leaving"] { + -webkit-transition-duration: 200ms; + transition-duration: 200ms; + -webkit-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); + transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); + -webkit-transition-property: -webkit-transform; + transition-property: transform; } +[nav-view-transition="android"] [nav-view="active"], [nav-view-transition="android"][nav-view-direction="forward"] [nav-view="entering"], [nav-view-transition="android"][nav-view-direction="back"] [nav-view="leaving"] { + z-index: 3; } +[nav-view-transition="android"][nav-view-direction="back"] [nav-view="entering"], [nav-view-transition="android"][nav-view-direction="forward"] [nav-view="leaving"] { + z-index: 2; } + +[nav-bar-transition="android"] .title, [nav-bar-transition="android"] .buttons { + -webkit-transition-duration: 200ms; + transition-duration: 200ms; + -webkit-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); + transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); + -webkit-transition-property: opacity; + transition-property: opacity; } +[nav-bar-transition="android"] [nav-bar="active"], [nav-bar-transition="android"] [nav-bar="entering"] { + z-index: 10; } + [nav-bar-transition="android"] [nav-bar="active"] .bar, [nav-bar-transition="android"] [nav-bar="entering"] .bar { + background: transparent; } +[nav-bar-transition="android"] [nav-bar="cached"] { + display: block; } + [nav-bar-transition="android"] [nav-bar="cached"] .header-item { + display: none; } + +[nav-swipe="fast"] [nav-view], [nav-swipe="fast"] .title, [nav-swipe="fast"] .buttons, [nav-swipe="fast"] .back-text { + -webkit-transition-duration: 50ms; + transition-duration: 50ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; } + +[nav-swipe="slow"] [nav-view], [nav-swipe="slow"] .title, [nav-swipe="slow"] .buttons, [nav-swipe="slow"] .back-text { + -webkit-transition-duration: 160ms; + transition-duration: 160ms; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; } + +[nav-view="cached"], [nav-bar="cached"] { + display: none; } + +[nav-view="stage"] { + opacity: 0; + -webkit-transition-duration: 0; + transition-duration: 0; } + +[nav-bar="stage"] .title, [nav-bar="stage"] .buttons, [nav-bar="stage"] .back-text { + position: absolute; + opacity: 0; + -webkit-transition-duration: 0s; + transition-duration: 0s; } diff --git a/1.1.0/css/ionic.min.css b/1.1.0/css/ionic.min.css new file mode 100644 index 00000000..cbcd07c5 --- /dev/null +++ b/1.1.0/css/ionic.min.css @@ -0,0 +1,23 @@ +/*! + * Copyright 2014 Drifty Co. + * http://drifty.com/ + * + * Ionic, v1.1.0 + * A powerful HTML5 mobile app framework. + * http://ionicframework.com/ + * + * By @maxlynch, @benjsperry, @adamdbradley <3 + * + * Licensed under the MIT license. Please see LICENSE for more information. + * + *//*! + Ionicons, v2.0.1 + Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ + https://twitter.com/benjsperry https://twitter.com/ionicframework + MIT License: https://github.com/driftyco/ionicons + + Android-style icons originally built by Google’s + Material Design Icons: https://github.com/google/material-design-icons + used under CC BY http://creativecommons.org/licenses/by/4.0/ + Modified icons to fit ionicon’s grid from original. +*/@font-face{font-family:Ionicons;src:url(../fonts/ionicons.eot?v=2.0.1);src:url(../fonts/ionicons.eot?v=2.0.1#iefix) format("embedded-opentype"),url(../fonts/ionicons.ttf?v=2.0.1) format("truetype"),url(../fonts/ionicons.woff?v=2.0.1) format("woff"),url(../fonts/ionicons.woff) format("woff"),url(../fonts/ionicons.svg?v=2.0.1#Ionicons) format("svg");font-weight:400;font-style:normal}.ion,.ion-alert-circled:before,.ion-alert:before,.ion-android-add-circle:before,.ion-android-add:before,.ion-android-alarm-clock:before,.ion-android-alert:before,.ion-android-apps:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down:before,.ion-android-arrow-dropdown-circle:before,.ion-android-arrow-dropdown:before,.ion-android-arrow-dropleft-circle:before,.ion-android-arrow-dropleft:before,.ion-android-arrow-dropright-circle:before,.ion-android-arrow-dropright:before,.ion-android-arrow-dropup-circle:before,.ion-android-arrow-dropup:before,.ion-android-arrow-forward:before,.ion-android-arrow-up:before,.ion-android-attach:before,.ion-android-bar:before,.ion-android-bicycle:before,.ion-android-boat:before,.ion-android-bookmark:before,.ion-android-bulb:before,.ion-android-bus:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-cancel:before,.ion-android-car:before,.ion-android-cart:before,.ion-android-chat:before,.ion-android-checkbox-blank:before,.ion-android-checkbox-outline-blank:before,.ion-android-checkbox-outline:before,.ion-android-checkbox:before,.ion-android-checkmark-circle:before,.ion-android-clipboard:before,.ion-android-close:before,.ion-android-cloud-circle:before,.ion-android-cloud-done:before,.ion-android-cloud-outline:before,.ion-android-cloud:before,.ion-android-color-palette:before,.ion-android-compass:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-contract:before,.ion-android-create:before,.ion-android-delete:before,.ion-android-desktop:before,.ion-android-document:before,.ion-android-done-all:before,.ion-android-done:before,.ion-android-download:before,.ion-android-drafts:before,.ion-android-exit:before,.ion-android-expand:before,.ion-android-favorite-outline:before,.ion-android-favorite:before,.ion-android-film:before,.ion-android-folder-open:before,.ion-android-folder:before,.ion-android-funnel:before,.ion-android-globe:before,.ion-android-hand:before,.ion-android-hangout:before,.ion-android-happy:before,.ion-android-home:before,.ion-android-image:before,.ion-android-laptop:before,.ion-android-list:before,.ion-android-locate:before,.ion-android-lock:before,.ion-android-mail:before,.ion-android-map:before,.ion-android-menu:before,.ion-android-microphone-off:before,.ion-android-microphone:before,.ion-android-more-horizontal:before,.ion-android-more-vertical:before,.ion-android-navigate:before,.ion-android-notifications-none:before,.ion-android-notifications-off:before,.ion-android-notifications:before,.ion-android-open:before,.ion-android-options:before,.ion-android-people:before,.ion-android-person-add:before,.ion-android-person:before,.ion-android-phone-landscape:before,.ion-android-phone-portrait:before,.ion-android-pin:before,.ion-android-plane:before,.ion-android-playstore:before,.ion-android-print:before,.ion-android-radio-button-off:before,.ion-android-radio-button-on:before,.ion-android-refresh:before,.ion-android-remove-circle:before,.ion-android-remove:before,.ion-android-restaurant:before,.ion-android-sad:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share-alt:before,.ion-android-share:before,.ion-android-star-half:before,.ion-android-star-outline:before,.ion-android-star:before,.ion-android-stopwatch:before,.ion-android-subway:before,.ion-android-sunny:before,.ion-android-sync:before,.ion-android-textsms:before,.ion-android-time:before,.ion-android-train:before,.ion-android-unlock:before,.ion-android-upload:before,.ion-android-volume-down:before,.ion-android-volume-mute:before,.ion-android-volume-off:before,.ion-android-volume-up:before,.ion-android-walk:before,.ion-android-warning:before,.ion-android-watch:before,.ion-android-wifi:before,.ion-aperture:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-asterisk:before,.ion-at:before,.ion-backspace-outline:before,.ion-backspace:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bonfire:before,.ion-bookmark:before,.ion-bowtie:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-cash:before,.ion-chatbox-working:before,.ion-chatbox:before,.ion-chatboxes:before,.ion-chatbubble-working:before,.ion-chatbubble:before,.ion-chatbubbles:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-checkmark:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close-circled:before,.ion-close-round:before,.ion-close:before,.ion-closed-captioning:before,.ion-cloud:before,.ion-code-download:before,.ion-code-working:before,.ion-code:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-crop:before,.ion-cube:before,.ion-disc:before,.ion-document-text:before,.ion-document:before,.ion-drag:before,.ion-earth:before,.ion-easel:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email-unread:before,.ion-email:before,.ion-erlenmeyer-flask-bubbles:before,.ion-erlenmeyer-flask:before,.ion-eye-disabled:before,.ion-eye:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-fireball:before,.ion-flag:before,.ion-flame:before,.ion-flash-off:before,.ion-flash:before,.ion-folder:before,.ion-fork-repo:before,.ion-fork:before,.ion-forward:before,.ion-funnel:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-happy-outline:before,.ion-happy:before,.ion-headphone:before,.ion-heart-broken:before,.ion-heart:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-help:before,.ion-home:before,.ion-icecream:before,.ion-image:before,.ion-images:before,.ion-information-circled:before,.ion-information:before,.ion-ionic:before,.ion-ios-alarm-outline:before,.ion-ios-alarm:before,.ion-ios-albums-outline:before,.ion-ios-albums:before,.ion-ios-americanfootball-outline:before,.ion-ios-americanfootball:before,.ion-ios-analytics-outline:before,.ion-ios-analytics:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-left:before,.ion-ios-arrow-right:before,.ion-ios-arrow-thin-down:before,.ion-ios-arrow-thin-left:before,.ion-ios-arrow-thin-right:before,.ion-ios-arrow-thin-up:before,.ion-ios-arrow-up:before,.ion-ios-at-outline:before,.ion-ios-at:before,.ion-ios-barcode-outline:before,.ion-ios-barcode:before,.ion-ios-baseball-outline:before,.ion-ios-baseball:before,.ion-ios-basketball-outline:before,.ion-ios-basketball:before,.ion-ios-bell-outline:before,.ion-ios-bell:before,.ion-ios-body-outline:before,.ion-ios-body:before,.ion-ios-bolt-outline:before,.ion-ios-bolt:before,.ion-ios-book-outline:before,.ion-ios-book:before,.ion-ios-bookmarks-outline:before,.ion-ios-bookmarks:before,.ion-ios-box-outline:before,.ion-ios-box:before,.ion-ios-briefcase-outline:before,.ion-ios-briefcase:before,.ion-ios-browsers-outline:before,.ion-ios-browsers:before,.ion-ios-calculator-outline:before,.ion-ios-calculator:before,.ion-ios-calendar-outline:before,.ion-ios-calendar:before,.ion-ios-camera-outline:before,.ion-ios-camera:before,.ion-ios-cart-outline:before,.ion-ios-cart:before,.ion-ios-chatboxes-outline:before,.ion-ios-chatboxes:before,.ion-ios-chatbubble-outline:before,.ion-ios-chatbubble:before,.ion-ios-checkmark-empty:before,.ion-ios-checkmark-outline:before,.ion-ios-checkmark:before,.ion-ios-circle-filled:before,.ion-ios-circle-outline:before,.ion-ios-clock-outline:before,.ion-ios-clock:before,.ion-ios-close-empty:before,.ion-ios-close-outline:before,.ion-ios-close:before,.ion-ios-cloud-download-outline:before,.ion-ios-cloud-download:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloud:before,.ion-ios-cloudy-night-outline:before,.ion-ios-cloudy-night:before,.ion-ios-cloudy-outline:before,.ion-ios-cloudy:before,.ion-ios-cog-outline:before,.ion-ios-cog:before,.ion-ios-color-filter-outline:before,.ion-ios-color-filter:before,.ion-ios-color-wand-outline:before,.ion-ios-color-wand:before,.ion-ios-compose-outline:before,.ion-ios-compose:before,.ion-ios-contact-outline:before,.ion-ios-contact:before,.ion-ios-copy-outline:before,.ion-ios-copy:before,.ion-ios-crop-strong:before,.ion-ios-crop:before,.ion-ios-download-outline:before,.ion-ios-download:before,.ion-ios-drag:before,.ion-ios-email-outline:before,.ion-ios-email:before,.ion-ios-eye-outline:before,.ion-ios-eye:before,.ion-ios-fastforward-outline:before,.ion-ios-fastforward:before,.ion-ios-filing-outline:before,.ion-ios-filing:before,.ion-ios-film-outline:before,.ion-ios-film:before,.ion-ios-flag-outline:before,.ion-ios-flag:before,.ion-ios-flame-outline:before,.ion-ios-flame:before,.ion-ios-flask-outline:before,.ion-ios-flask:before,.ion-ios-flower-outline:before,.ion-ios-flower:before,.ion-ios-folder-outline:before,.ion-ios-folder:before,.ion-ios-football-outline:before,.ion-ios-football:before,.ion-ios-game-controller-a-outline:before,.ion-ios-game-controller-a:before,.ion-ios-game-controller-b-outline:before,.ion-ios-game-controller-b:before,.ion-ios-gear-outline:before,.ion-ios-gear:before,.ion-ios-glasses-outline:before,.ion-ios-glasses:before,.ion-ios-grid-view-outline:before,.ion-ios-grid-view:before,.ion-ios-heart-outline:before,.ion-ios-heart:before,.ion-ios-help-empty:before,.ion-ios-help-outline:before,.ion-ios-help:before,.ion-ios-home-outline:before,.ion-ios-home:before,.ion-ios-infinite-outline:before,.ion-ios-infinite:before,.ion-ios-information-empty:before,.ion-ios-information-outline:before,.ion-ios-information:before,.ion-ios-ionic-outline:before,.ion-ios-keypad-outline:before,.ion-ios-keypad:before,.ion-ios-lightbulb-outline:before,.ion-ios-lightbulb:before,.ion-ios-list-outline:before,.ion-ios-list:before,.ion-ios-location-outline:before,.ion-ios-location:before,.ion-ios-locked-outline:before,.ion-ios-locked:before,.ion-ios-loop-strong:before,.ion-ios-loop:before,.ion-ios-medical-outline:before,.ion-ios-medical:before,.ion-ios-medkit-outline:before,.ion-ios-medkit:before,.ion-ios-mic-off:before,.ion-ios-mic-outline:before,.ion-ios-mic:before,.ion-ios-minus-empty:before,.ion-ios-minus-outline:before,.ion-ios-minus:before,.ion-ios-monitor-outline:before,.ion-ios-monitor:before,.ion-ios-moon-outline:before,.ion-ios-moon:before,.ion-ios-more-outline:before,.ion-ios-more:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate-outline:before,.ion-ios-navigate:before,.ion-ios-nutrition-outline:before,.ion-ios-nutrition:before,.ion-ios-paper-outline:before,.ion-ios-paper:before,.ion-ios-paperplane-outline:before,.ion-ios-paperplane:before,.ion-ios-partlysunny-outline:before,.ion-ios-partlysunny:before,.ion-ios-pause-outline:before,.ion-ios-pause:before,.ion-ios-paw-outline:before,.ion-ios-paw:before,.ion-ios-people-outline:before,.ion-ios-people:before,.ion-ios-person-outline:before,.ion-ios-person:before,.ion-ios-personadd-outline:before,.ion-ios-personadd:before,.ion-ios-photos-outline:before,.ion-ios-photos:before,.ion-ios-pie-outline:before,.ion-ios-pie:before,.ion-ios-pint-outline:before,.ion-ios-pint:before,.ion-ios-play-outline:before,.ion-ios-play:before,.ion-ios-plus-empty:before,.ion-ios-plus-outline:before,.ion-ios-plus:before,.ion-ios-pricetag-outline:before,.ion-ios-pricetag:before,.ion-ios-pricetags-outline:before,.ion-ios-pricetags:before,.ion-ios-printer-outline:before,.ion-ios-printer:before,.ion-ios-pulse-strong:before,.ion-ios-pulse:before,.ion-ios-rainy-outline:before,.ion-ios-rainy:before,.ion-ios-recording-outline:before,.ion-ios-recording:before,.ion-ios-redo-outline:before,.ion-ios-redo:before,.ion-ios-refresh-empty:before,.ion-ios-refresh-outline:before,.ion-ios-refresh:before,.ion-ios-reload:before,.ion-ios-reverse-camera-outline:before,.ion-ios-reverse-camera:before,.ion-ios-rewind-outline:before,.ion-ios-rewind:before,.ion-ios-rose-outline:before,.ion-ios-rose:before,.ion-ios-search-strong:before,.ion-ios-search:before,.ion-ios-settings-strong:before,.ion-ios-settings:before,.ion-ios-shuffle-strong:before,.ion-ios-shuffle:before,.ion-ios-skipbackward-outline:before,.ion-ios-skipbackward:before,.ion-ios-skipforward-outline:before,.ion-ios-skipforward:before,.ion-ios-snowy:before,.ion-ios-speedometer-outline:before,.ion-ios-speedometer:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-star:before,.ion-ios-stopwatch-outline:before,.ion-ios-stopwatch:before,.ion-ios-sunny-outline:before,.ion-ios-sunny:before,.ion-ios-telephone-outline:before,.ion-ios-telephone:before,.ion-ios-tennisball-outline:before,.ion-ios-tennisball:before,.ion-ios-thunderstorm-outline:before,.ion-ios-thunderstorm:before,.ion-ios-time-outline:before,.ion-ios-time:before,.ion-ios-timer-outline:before,.ion-ios-timer:before,.ion-ios-toggle-outline:before,.ion-ios-toggle:before,.ion-ios-trash-outline:before,.ion-ios-trash:before,.ion-ios-undo-outline:before,.ion-ios-undo:before,.ion-ios-unlocked-outline:before,.ion-ios-unlocked:before,.ion-ios-upload-outline:before,.ion-ios-upload:before,.ion-ios-videocam-outline:before,.ion-ios-videocam:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-wineglass-outline:before,.ion-ios-wineglass:before,.ion-ios-world-outline:before,.ion-ios-world:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-location:before,.ion-lock-combination:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-merge:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-minus:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-mouse:before,.ion-music-note:before,.ion-navicon-round:before,.ion-navicon:before,.ion-navigate:before,.ion-network:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-outlet:before,.ion-paintbrush:before,.ion-paintbucket:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person-add:before,.ion-person-stalker:before,.ion-person:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-planet:before,.ion-play:before,.ion-playstation:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-plus:before,.ion-podium:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-pull-request:before,.ion-qr-scanner:before,.ion-quote:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-reply-all:before,.ion-reply:before,.ion-ribbon-a:before,.ion-ribbon-b:before,.ion-sad-outline:before,.ion-sad:before,.ion-scissors:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android-outline:before,.ion-social-android:before,.ion-social-angular-outline:before,.ion-social-angular:before,.ion-social-apple-outline:before,.ion-social-apple:before,.ion-social-bitcoin-outline:before,.ion-social-bitcoin:before,.ion-social-buffer-outline:before,.ion-social-buffer:before,.ion-social-chrome-outline:before,.ion-social-chrome:before,.ion-social-codepen-outline:before,.ion-social-codepen:before,.ion-social-css3-outline:before,.ion-social-css3:before,.ion-social-designernews-outline:before,.ion-social-designernews:before,.ion-social-dribbble-outline:before,.ion-social-dribbble:before,.ion-social-dropbox-outline:before,.ion-social-dropbox:before,.ion-social-euro-outline:before,.ion-social-euro:before,.ion-social-facebook-outline:before,.ion-social-facebook:before,.ion-social-foursquare-outline:before,.ion-social-foursquare:before,.ion-social-freebsd-devil:before,.ion-social-github-outline:before,.ion-social-github:before,.ion-social-google-outline:before,.ion-social-google:before,.ion-social-googleplus-outline:before,.ion-social-googleplus:before,.ion-social-hackernews-outline:before,.ion-social-hackernews:before,.ion-social-html5-outline:before,.ion-social-html5:before,.ion-social-instagram-outline:before,.ion-social-instagram:before,.ion-social-javascript-outline:before,.ion-social-javascript:before,.ion-social-linkedin-outline:before,.ion-social-linkedin:before,.ion-social-markdown:before,.ion-social-nodejs:before,.ion-social-octocat:before,.ion-social-pinterest-outline:before,.ion-social-pinterest:before,.ion-social-python:before,.ion-social-reddit-outline:before,.ion-social-reddit:before,.ion-social-rss-outline:before,.ion-social-rss:before,.ion-social-sass:before,.ion-social-skype-outline:before,.ion-social-skype:before,.ion-social-snapchat-outline:before,.ion-social-snapchat:before,.ion-social-tumblr-outline:before,.ion-social-tumblr:before,.ion-social-tux:before,.ion-social-twitch-outline:before,.ion-social-twitch:before,.ion-social-twitter-outline:before,.ion-social-twitter:before,.ion-social-usd-outline:before,.ion-social-usd:before,.ion-social-vimeo-outline:before,.ion-social-vimeo:before,.ion-social-whatsapp-outline:before,.ion-social-whatsapp:before,.ion-social-windows-outline:before,.ion-social-windows:before,.ion-social-wordpress-outline:before,.ion-social-wordpress:before,.ion-social-yahoo-outline:before,.ion-social-yahoo:before,.ion-social-yen-outline:before,.ion-social-yen:before,.ion-social-youtube-outline:before,.ion-social-youtube:before,.ion-soup-can-outline:before,.ion-soup-can:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-toggle-filled:before,.ion-toggle:before,.ion-transgender:before,.ion-trash-a:before,.ion-trash-b:before,.ion-trophy:before,.ion-tshirt-outline:before,.ion-tshirt:before,.ion-umbrella:before,.ion-university:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-wand:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before,.ionicons{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-alert:before{content:"\f101"}.ion-alert-circled:before{content:"\f100"}.ion-android-add:before{content:"\f2c7"}.ion-android-add-circle:before{content:"\f359"}.ion-android-alarm-clock:before{content:"\f35a"}.ion-android-alert:before{content:"\f35b"}.ion-android-apps:before{content:"\f35c"}.ion-android-archive:before{content:"\f2c9"}.ion-android-arrow-back:before{content:"\f2ca"}.ion-android-arrow-down:before{content:"\f35d"}.ion-android-arrow-dropdown:before{content:"\f35f"}.ion-android-arrow-dropdown-circle:before{content:"\f35e"}.ion-android-arrow-dropleft:before{content:"\f361"}.ion-android-arrow-dropleft-circle:before{content:"\f360"}.ion-android-arrow-dropright:before{content:"\f363"}.ion-android-arrow-dropright-circle:before{content:"\f362"}.ion-android-arrow-dropup:before{content:"\f365"}.ion-android-arrow-dropup-circle:before{content:"\f364"}.ion-android-arrow-forward:before{content:"\f30f"}.ion-android-arrow-up:before{content:"\f366"}.ion-android-attach:before{content:"\f367"}.ion-android-bar:before{content:"\f368"}.ion-android-bicycle:before{content:"\f369"}.ion-android-boat:before{content:"\f36a"}.ion-android-bookmark:before{content:"\f36b"}.ion-android-bulb:before{content:"\f36c"}.ion-android-bus:before{content:"\f36d"}.ion-android-calendar:before{content:"\f2d1"}.ion-android-call:before{content:"\f2d2"}.ion-android-camera:before{content:"\f2d3"}.ion-android-cancel:before{content:"\f36e"}.ion-android-car:before{content:"\f36f"}.ion-android-cart:before{content:"\f370"}.ion-android-chat:before{content:"\f2d4"}.ion-android-checkbox:before{content:"\f374"}.ion-android-checkbox-blank:before{content:"\f371"}.ion-android-checkbox-outline:before{content:"\f373"}.ion-android-checkbox-outline-blank:before{content:"\f372"}.ion-android-checkmark-circle:before{content:"\f375"}.ion-android-clipboard:before{content:"\f376"}.ion-android-close:before{content:"\f2d7"}.ion-android-cloud:before{content:"\f37a"}.ion-android-cloud-circle:before{content:"\f377"}.ion-android-cloud-done:before{content:"\f378"}.ion-android-cloud-outline:before{content:"\f379"}.ion-android-color-palette:before{content:"\f37b"}.ion-android-compass:before{content:"\f37c"}.ion-android-contact:before{content:"\f2d8"}.ion-android-contacts:before{content:"\f2d9"}.ion-android-contract:before{content:"\f37d"}.ion-android-create:before{content:"\f37e"}.ion-android-delete:before{content:"\f37f"}.ion-android-desktop:before{content:"\f380"}.ion-android-document:before{content:"\f381"}.ion-android-done:before{content:"\f383"}.ion-android-done-all:before{content:"\f382"}.ion-android-download:before{content:"\f2dd"}.ion-android-drafts:before{content:"\f384"}.ion-android-exit:before{content:"\f385"}.ion-android-expand:before{content:"\f386"}.ion-android-favorite:before{content:"\f388"}.ion-android-favorite-outline:before{content:"\f387"}.ion-android-film:before{content:"\f389"}.ion-android-folder:before{content:"\f2e0"}.ion-android-folder-open:before{content:"\f38a"}.ion-android-funnel:before{content:"\f38b"}.ion-android-globe:before{content:"\f38c"}.ion-android-hand:before{content:"\f2e3"}.ion-android-hangout:before{content:"\f38d"}.ion-android-happy:before{content:"\f38e"}.ion-android-home:before{content:"\f38f"}.ion-android-image:before{content:"\f2e4"}.ion-android-laptop:before{content:"\f390"}.ion-android-list:before{content:"\f391"}.ion-android-locate:before{content:"\f2e9"}.ion-android-lock:before{content:"\f392"}.ion-android-mail:before{content:"\f2eb"}.ion-android-map:before{content:"\f393"}.ion-android-menu:before{content:"\f394"}.ion-android-microphone:before{content:"\f2ec"}.ion-android-microphone-off:before{content:"\f395"}.ion-android-more-horizontal:before{content:"\f396"}.ion-android-more-vertical:before{content:"\f397"}.ion-android-navigate:before{content:"\f398"}.ion-android-notifications:before{content:"\f39b"}.ion-android-notifications-none:before{content:"\f399"}.ion-android-notifications-off:before{content:"\f39a"}.ion-android-open:before{content:"\f39c"}.ion-android-options:before{content:"\f39d"}.ion-android-people:before{content:"\f39e"}.ion-android-person:before{content:"\f3a0"}.ion-android-person-add:before{content:"\f39f"}.ion-android-phone-landscape:before{content:"\f3a1"}.ion-android-phone-portrait:before{content:"\f3a2"}.ion-android-pin:before{content:"\f3a3"}.ion-android-plane:before{content:"\f3a4"}.ion-android-playstore:before{content:"\f2f0"}.ion-android-print:before{content:"\f3a5"}.ion-android-radio-button-off:before{content:"\f3a6"}.ion-android-radio-button-on:before{content:"\f3a7"}.ion-android-refresh:before{content:"\f3a8"}.ion-android-remove:before{content:"\f2f4"}.ion-android-remove-circle:before{content:"\f3a9"}.ion-android-restaurant:before{content:"\f3aa"}.ion-android-sad:before{content:"\f3ab"}.ion-android-search:before{content:"\f2f5"}.ion-android-send:before{content:"\f2f6"}.ion-android-settings:before{content:"\f2f7"}.ion-android-share:before{content:"\f2f8"}.ion-android-share-alt:before{content:"\f3ac"}.ion-android-star:before{content:"\f2fc"}.ion-android-star-half:before{content:"\f3ad"}.ion-android-star-outline:before{content:"\f3ae"}.ion-android-stopwatch:before{content:"\f2fd"}.ion-android-subway:before{content:"\f3af"}.ion-android-sunny:before{content:"\f3b0"}.ion-android-sync:before{content:"\f3b1"}.ion-android-textsms:before{content:"\f3b2"}.ion-android-time:before{content:"\f3b3"}.ion-android-train:before{content:"\f3b4"}.ion-android-unlock:before{content:"\f3b5"}.ion-android-upload:before{content:"\f3b6"}.ion-android-volume-down:before{content:"\f3b7"}.ion-android-volume-mute:before{content:"\f3b8"}.ion-android-volume-off:before{content:"\f3b9"}.ion-android-volume-up:before{content:"\f3ba"}.ion-android-walk:before{content:"\f3bb"}.ion-android-warning:before{content:"\f3bc"}.ion-android-watch:before{content:"\f3bd"}.ion-android-wifi:before{content:"\f305"}.ion-aperture:before{content:"\f313"}.ion-archive:before{content:"\f102"}.ion-arrow-down-a:before{content:"\f103"}.ion-arrow-down-b:before{content:"\f104"}.ion-arrow-down-c:before{content:"\f105"}.ion-arrow-expand:before{content:"\f25e"}.ion-arrow-graph-down-left:before{content:"\f25f"}.ion-arrow-graph-down-right:before{content:"\f260"}.ion-arrow-graph-up-left:before{content:"\f261"}.ion-arrow-graph-up-right:before{content:"\f262"}.ion-arrow-left-a:before{content:"\f106"}.ion-arrow-left-b:before{content:"\f107"}.ion-arrow-left-c:before{content:"\f108"}.ion-arrow-move:before{content:"\f263"}.ion-arrow-resize:before{content:"\f264"}.ion-arrow-return-left:before{content:"\f265"}.ion-arrow-return-right:before{content:"\f266"}.ion-arrow-right-a:before{content:"\f109"}.ion-arrow-right-b:before{content:"\f10a"}.ion-arrow-right-c:before{content:"\f10b"}.ion-arrow-shrink:before{content:"\f267"}.ion-arrow-swap:before{content:"\f268"}.ion-arrow-up-a:before{content:"\f10c"}.ion-arrow-up-b:before{content:"\f10d"}.ion-arrow-up-c:before{content:"\f10e"}.ion-asterisk:before{content:"\f314"}.ion-at:before{content:"\f10f"}.ion-backspace:before{content:"\f3bf"}.ion-backspace-outline:before{content:"\f3be"}.ion-bag:before{content:"\f110"}.ion-battery-charging:before{content:"\f111"}.ion-battery-empty:before{content:"\f112"}.ion-battery-full:before{content:"\f113"}.ion-battery-half:before{content:"\f114"}.ion-battery-low:before{content:"\f115"}.ion-beaker:before{content:"\f269"}.ion-beer:before{content:"\f26a"}.ion-bluetooth:before{content:"\f116"}.ion-bonfire:before{content:"\f315"}.ion-bookmark:before{content:"\f26b"}.ion-bowtie:before{content:"\f3c0"}.ion-briefcase:before{content:"\f26c"}.ion-bug:before{content:"\f2be"}.ion-calculator:before{content:"\f26d"}.ion-calendar:before{content:"\f117"}.ion-camera:before{content:"\f118"}.ion-card:before{content:"\f119"}.ion-cash:before{content:"\f316"}.ion-chatbox:before{content:"\f11b"}.ion-chatbox-working:before{content:"\f11a"}.ion-chatboxes:before{content:"\f11c"}.ion-chatbubble:before{content:"\f11e"}.ion-chatbubble-working:before{content:"\f11d"}.ion-chatbubbles:before{content:"\f11f"}.ion-checkmark:before{content:"\f122"}.ion-checkmark-circled:before{content:"\f120"}.ion-checkmark-round:before{content:"\f121"}.ion-chevron-down:before{content:"\f123"}.ion-chevron-left:before{content:"\f124"}.ion-chevron-right:before{content:"\f125"}.ion-chevron-up:before{content:"\f126"}.ion-clipboard:before{content:"\f127"}.ion-clock:before{content:"\f26e"}.ion-close:before{content:"\f12a"}.ion-close-circled:before{content:"\f128"}.ion-close-round:before{content:"\f129"}.ion-closed-captioning:before{content:"\f317"}.ion-cloud:before{content:"\f12b"}.ion-code:before{content:"\f271"}.ion-code-download:before{content:"\f26f"}.ion-code-working:before{content:"\f270"}.ion-coffee:before{content:"\f272"}.ion-compass:before{content:"\f273"}.ion-compose:before{content:"\f12c"}.ion-connection-bars:before{content:"\f274"}.ion-contrast:before{content:"\f275"}.ion-crop:before{content:"\f3c1"}.ion-cube:before{content:"\f318"}.ion-disc:before{content:"\f12d"}.ion-document:before{content:"\f12f"}.ion-document-text:before{content:"\f12e"}.ion-drag:before{content:"\f130"}.ion-earth:before{content:"\f276"}.ion-easel:before{content:"\f3c2"}.ion-edit:before{content:"\f2bf"}.ion-egg:before{content:"\f277"}.ion-eject:before{content:"\f131"}.ion-email:before{content:"\f132"}.ion-email-unread:before{content:"\f3c3"}.ion-erlenmeyer-flask:before{content:"\f3c5"}.ion-erlenmeyer-flask-bubbles:before{content:"\f3c4"}.ion-eye:before{content:"\f133"}.ion-eye-disabled:before{content:"\f306"}.ion-female:before{content:"\f278"}.ion-filing:before{content:"\f134"}.ion-film-marker:before{content:"\f135"}.ion-fireball:before{content:"\f319"}.ion-flag:before{content:"\f279"}.ion-flame:before{content:"\f31a"}.ion-flash:before{content:"\f137"}.ion-flash-off:before{content:"\f136"}.ion-folder:before{content:"\f139"}.ion-fork:before{content:"\f27a"}.ion-fork-repo:before{content:"\f2c0"}.ion-forward:before{content:"\f13a"}.ion-funnel:before{content:"\f31b"}.ion-gear-a:before{content:"\f13d"}.ion-gear-b:before{content:"\f13e"}.ion-grid:before{content:"\f13f"}.ion-hammer:before{content:"\f27b"}.ion-happy:before{content:"\f31c"}.ion-happy-outline:before{content:"\f3c6"}.ion-headphone:before{content:"\f140"}.ion-heart:before{content:"\f141"}.ion-heart-broken:before{content:"\f31d"}.ion-help:before{content:"\f143"}.ion-help-buoy:before{content:"\f27c"}.ion-help-circled:before{content:"\f142"}.ion-home:before{content:"\f144"}.ion-icecream:before{content:"\f27d"}.ion-image:before{content:"\f147"}.ion-images:before{content:"\f148"}.ion-information:before{content:"\f14a"}.ion-information-circled:before{content:"\f149"}.ion-ionic:before{content:"\f14b"}.ion-ios-alarm:before{content:"\f3c8"}.ion-ios-alarm-outline:before{content:"\f3c7"}.ion-ios-albums:before{content:"\f3ca"}.ion-ios-albums-outline:before{content:"\f3c9"}.ion-ios-americanfootball:before{content:"\f3cc"}.ion-ios-americanfootball-outline:before{content:"\f3cb"}.ion-ios-analytics:before{content:"\f3ce"}.ion-ios-analytics-outline:before{content:"\f3cd"}.ion-ios-arrow-back:before{content:"\f3cf"}.ion-ios-arrow-down:before{content:"\f3d0"}.ion-ios-arrow-forward:before{content:"\f3d1"}.ion-ios-arrow-left:before{content:"\f3d2"}.ion-ios-arrow-right:before{content:"\f3d3"}.ion-ios-arrow-thin-down:before{content:"\f3d4"}.ion-ios-arrow-thin-left:before{content:"\f3d5"}.ion-ios-arrow-thin-right:before{content:"\f3d6"}.ion-ios-arrow-thin-up:before{content:"\f3d7"}.ion-ios-arrow-up:before{content:"\f3d8"}.ion-ios-at:before{content:"\f3da"}.ion-ios-at-outline:before{content:"\f3d9"}.ion-ios-barcode:before{content:"\f3dc"}.ion-ios-barcode-outline:before{content:"\f3db"}.ion-ios-baseball:before{content:"\f3de"}.ion-ios-baseball-outline:before{content:"\f3dd"}.ion-ios-basketball:before{content:"\f3e0"}.ion-ios-basketball-outline:before{content:"\f3df"}.ion-ios-bell:before{content:"\f3e2"}.ion-ios-bell-outline:before{content:"\f3e1"}.ion-ios-body:before{content:"\f3e4"}.ion-ios-body-outline:before{content:"\f3e3"}.ion-ios-bolt:before{content:"\f3e6"}.ion-ios-bolt-outline:before{content:"\f3e5"}.ion-ios-book:before{content:"\f3e8"}.ion-ios-book-outline:before{content:"\f3e7"}.ion-ios-bookmarks:before{content:"\f3ea"}.ion-ios-bookmarks-outline:before{content:"\f3e9"}.ion-ios-box:before{content:"\f3ec"}.ion-ios-box-outline:before{content:"\f3eb"}.ion-ios-briefcase:before{content:"\f3ee"}.ion-ios-briefcase-outline:before{content:"\f3ed"}.ion-ios-browsers:before{content:"\f3f0"}.ion-ios-browsers-outline:before{content:"\f3ef"}.ion-ios-calculator:before{content:"\f3f2"}.ion-ios-calculator-outline:before{content:"\f3f1"}.ion-ios-calendar:before{content:"\f3f4"}.ion-ios-calendar-outline:before{content:"\f3f3"}.ion-ios-camera:before{content:"\f3f6"}.ion-ios-camera-outline:before{content:"\f3f5"}.ion-ios-cart:before{content:"\f3f8"}.ion-ios-cart-outline:before{content:"\f3f7"}.ion-ios-chatboxes:before{content:"\f3fa"}.ion-ios-chatboxes-outline:before{content:"\f3f9"}.ion-ios-chatbubble:before{content:"\f3fc"}.ion-ios-chatbubble-outline:before{content:"\f3fb"}.ion-ios-checkmark:before{content:"\f3ff"}.ion-ios-checkmark-empty:before{content:"\f3fd"}.ion-ios-checkmark-outline:before{content:"\f3fe"}.ion-ios-circle-filled:before{content:"\f400"}.ion-ios-circle-outline:before{content:"\f401"}.ion-ios-clock:before{content:"\f403"}.ion-ios-clock-outline:before{content:"\f402"}.ion-ios-close:before{content:"\f406"}.ion-ios-close-empty:before{content:"\f404"}.ion-ios-close-outline:before{content:"\f405"}.ion-ios-cloud:before{content:"\f40c"}.ion-ios-cloud-download:before{content:"\f408"}.ion-ios-cloud-download-outline:before{content:"\f407"}.ion-ios-cloud-outline:before{content:"\f409"}.ion-ios-cloud-upload:before{content:"\f40b"}.ion-ios-cloud-upload-outline:before{content:"\f40a"}.ion-ios-cloudy:before{content:"\f410"}.ion-ios-cloudy-night:before{content:"\f40e"}.ion-ios-cloudy-night-outline:before{content:"\f40d"}.ion-ios-cloudy-outline:before{content:"\f40f"}.ion-ios-cog:before{content:"\f412"}.ion-ios-cog-outline:before{content:"\f411"}.ion-ios-color-filter:before{content:"\f414"}.ion-ios-color-filter-outline:before{content:"\f413"}.ion-ios-color-wand:before{content:"\f416"}.ion-ios-color-wand-outline:before{content:"\f415"}.ion-ios-compose:before{content:"\f418"}.ion-ios-compose-outline:before{content:"\f417"}.ion-ios-contact:before{content:"\f41a"}.ion-ios-contact-outline:before{content:"\f419"}.ion-ios-copy:before{content:"\f41c"}.ion-ios-copy-outline:before{content:"\f41b"}.ion-ios-crop:before{content:"\f41e"}.ion-ios-crop-strong:before{content:"\f41d"}.ion-ios-download:before{content:"\f420"}.ion-ios-download-outline:before{content:"\f41f"}.ion-ios-drag:before{content:"\f421"}.ion-ios-email:before{content:"\f423"}.ion-ios-email-outline:before{content:"\f422"}.ion-ios-eye:before{content:"\f425"}.ion-ios-eye-outline:before{content:"\f424"}.ion-ios-fastforward:before{content:"\f427"}.ion-ios-fastforward-outline:before{content:"\f426"}.ion-ios-filing:before{content:"\f429"}.ion-ios-filing-outline:before{content:"\f428"}.ion-ios-film:before{content:"\f42b"}.ion-ios-film-outline:before{content:"\f42a"}.ion-ios-flag:before{content:"\f42d"}.ion-ios-flag-outline:before{content:"\f42c"}.ion-ios-flame:before{content:"\f42f"}.ion-ios-flame-outline:before{content:"\f42e"}.ion-ios-flask:before{content:"\f431"}.ion-ios-flask-outline:before{content:"\f430"}.ion-ios-flower:before{content:"\f433"}.ion-ios-flower-outline:before{content:"\f432"}.ion-ios-folder:before{content:"\f435"}.ion-ios-folder-outline:before{content:"\f434"}.ion-ios-football:before{content:"\f437"}.ion-ios-football-outline:before{content:"\f436"}.ion-ios-game-controller-a:before{content:"\f439"}.ion-ios-game-controller-a-outline:before{content:"\f438"}.ion-ios-game-controller-b:before{content:"\f43b"}.ion-ios-game-controller-b-outline:before{content:"\f43a"}.ion-ios-gear:before{content:"\f43d"}.ion-ios-gear-outline:before{content:"\f43c"}.ion-ios-glasses:before{content:"\f43f"}.ion-ios-glasses-outline:before{content:"\f43e"}.ion-ios-grid-view:before{content:"\f441"}.ion-ios-grid-view-outline:before{content:"\f440"}.ion-ios-heart:before{content:"\f443"}.ion-ios-heart-outline:before{content:"\f442"}.ion-ios-help:before{content:"\f446"}.ion-ios-help-empty:before{content:"\f444"}.ion-ios-help-outline:before{content:"\f445"}.ion-ios-home:before{content:"\f448"}.ion-ios-home-outline:before{content:"\f447"}.ion-ios-infinite:before{content:"\f44a"}.ion-ios-infinite-outline:before{content:"\f449"}.ion-ios-information:before{content:"\f44d"}.ion-ios-information-empty:before{content:"\f44b"}.ion-ios-information-outline:before{content:"\f44c"}.ion-ios-ionic-outline:before{content:"\f44e"}.ion-ios-keypad:before{content:"\f450"}.ion-ios-keypad-outline:before{content:"\f44f"}.ion-ios-lightbulb:before{content:"\f452"}.ion-ios-lightbulb-outline:before{content:"\f451"}.ion-ios-list:before{content:"\f454"}.ion-ios-list-outline:before{content:"\f453"}.ion-ios-location:before{content:"\f456"}.ion-ios-location-outline:before{content:"\f455"}.ion-ios-locked:before{content:"\f458"}.ion-ios-locked-outline:before{content:"\f457"}.ion-ios-loop:before{content:"\f45a"}.ion-ios-loop-strong:before{content:"\f459"}.ion-ios-medical:before{content:"\f45c"}.ion-ios-medical-outline:before{content:"\f45b"}.ion-ios-medkit:before{content:"\f45e"}.ion-ios-medkit-outline:before{content:"\f45d"}.ion-ios-mic:before{content:"\f461"}.ion-ios-mic-off:before{content:"\f45f"}.ion-ios-mic-outline:before{content:"\f460"}.ion-ios-minus:before{content:"\f464"}.ion-ios-minus-empty:before{content:"\f462"}.ion-ios-minus-outline:before{content:"\f463"}.ion-ios-monitor:before{content:"\f466"}.ion-ios-monitor-outline:before{content:"\f465"}.ion-ios-moon:before{content:"\f468"}.ion-ios-moon-outline:before{content:"\f467"}.ion-ios-more:before{content:"\f46a"}.ion-ios-more-outline:before{content:"\f469"}.ion-ios-musical-note:before{content:"\f46b"}.ion-ios-musical-notes:before{content:"\f46c"}.ion-ios-navigate:before{content:"\f46e"}.ion-ios-navigate-outline:before{content:"\f46d"}.ion-ios-nutrition:before{content:"\f470"}.ion-ios-nutrition-outline:before{content:"\f46f"}.ion-ios-paper:before{content:"\f472"}.ion-ios-paper-outline:before{content:"\f471"}.ion-ios-paperplane:before{content:"\f474"}.ion-ios-paperplane-outline:before{content:"\f473"}.ion-ios-partlysunny:before{content:"\f476"}.ion-ios-partlysunny-outline:before{content:"\f475"}.ion-ios-pause:before{content:"\f478"}.ion-ios-pause-outline:before{content:"\f477"}.ion-ios-paw:before{content:"\f47a"}.ion-ios-paw-outline:before{content:"\f479"}.ion-ios-people:before{content:"\f47c"}.ion-ios-people-outline:before{content:"\f47b"}.ion-ios-person:before{content:"\f47e"}.ion-ios-person-outline:before{content:"\f47d"}.ion-ios-personadd:before{content:"\f480"}.ion-ios-personadd-outline:before{content:"\f47f"}.ion-ios-photos:before{content:"\f482"}.ion-ios-photos-outline:before{content:"\f481"}.ion-ios-pie:before{content:"\f484"}.ion-ios-pie-outline:before{content:"\f483"}.ion-ios-pint:before{content:"\f486"}.ion-ios-pint-outline:before{content:"\f485"}.ion-ios-play:before{content:"\f488"}.ion-ios-play-outline:before{content:"\f487"}.ion-ios-plus:before{content:"\f48b"}.ion-ios-plus-empty:before{content:"\f489"}.ion-ios-plus-outline:before{content:"\f48a"}.ion-ios-pricetag:before{content:"\f48d"}.ion-ios-pricetag-outline:before{content:"\f48c"}.ion-ios-pricetags:before{content:"\f48f"}.ion-ios-pricetags-outline:before{content:"\f48e"}.ion-ios-printer:before{content:"\f491"}.ion-ios-printer-outline:before{content:"\f490"}.ion-ios-pulse:before{content:"\f493"}.ion-ios-pulse-strong:before{content:"\f492"}.ion-ios-rainy:before{content:"\f495"}.ion-ios-rainy-outline:before{content:"\f494"}.ion-ios-recording:before{content:"\f497"}.ion-ios-recording-outline:before{content:"\f496"}.ion-ios-redo:before{content:"\f499"}.ion-ios-redo-outline:before{content:"\f498"}.ion-ios-refresh:before{content:"\f49c"}.ion-ios-refresh-empty:before{content:"\f49a"}.ion-ios-refresh-outline:before{content:"\f49b"}.ion-ios-reload:before{content:"\f49d"}.ion-ios-reverse-camera:before{content:"\f49f"}.ion-ios-reverse-camera-outline:before{content:"\f49e"}.ion-ios-rewind:before{content:"\f4a1"}.ion-ios-rewind-outline:before{content:"\f4a0"}.ion-ios-rose:before{content:"\f4a3"}.ion-ios-rose-outline:before{content:"\f4a2"}.ion-ios-search:before{content:"\f4a5"}.ion-ios-search-strong:before{content:"\f4a4"}.ion-ios-settings:before{content:"\f4a7"}.ion-ios-settings-strong:before{content:"\f4a6"}.ion-ios-shuffle:before{content:"\f4a9"}.ion-ios-shuffle-strong:before{content:"\f4a8"}.ion-ios-skipbackward:before{content:"\f4ab"}.ion-ios-skipbackward-outline:before{content:"\f4aa"}.ion-ios-skipforward:before{content:"\f4ad"}.ion-ios-skipforward-outline:before{content:"\f4ac"}.ion-ios-snowy:before{content:"\f4ae"}.ion-ios-speedometer:before{content:"\f4b0"}.ion-ios-speedometer-outline:before{content:"\f4af"}.ion-ios-star:before{content:"\f4b3"}.ion-ios-star-half:before{content:"\f4b1"}.ion-ios-star-outline:before{content:"\f4b2"}.ion-ios-stopwatch:before{content:"\f4b5"}.ion-ios-stopwatch-outline:before{content:"\f4b4"}.ion-ios-sunny:before{content:"\f4b7"}.ion-ios-sunny-outline:before{content:"\f4b6"}.ion-ios-telephone:before{content:"\f4b9"}.ion-ios-telephone-outline:before{content:"\f4b8"}.ion-ios-tennisball:before{content:"\f4bb"}.ion-ios-tennisball-outline:before{content:"\f4ba"}.ion-ios-thunderstorm:before{content:"\f4bd"}.ion-ios-thunderstorm-outline:before{content:"\f4bc"}.ion-ios-time:before{content:"\f4bf"}.ion-ios-time-outline:before{content:"\f4be"}.ion-ios-timer:before{content:"\f4c1"}.ion-ios-timer-outline:before{content:"\f4c0"}.ion-ios-toggle:before{content:"\f4c3"}.ion-ios-toggle-outline:before{content:"\f4c2"}.ion-ios-trash:before{content:"\f4c5"}.ion-ios-trash-outline:before{content:"\f4c4"}.ion-ios-undo:before{content:"\f4c7"}.ion-ios-undo-outline:before{content:"\f4c6"}.ion-ios-unlocked:before{content:"\f4c9"}.ion-ios-unlocked-outline:before{content:"\f4c8"}.ion-ios-upload:before{content:"\f4cb"}.ion-ios-upload-outline:before{content:"\f4ca"}.ion-ios-videocam:before{content:"\f4cd"}.ion-ios-videocam-outline:before{content:"\f4cc"}.ion-ios-volume-high:before{content:"\f4ce"}.ion-ios-volume-low:before{content:"\f4cf"}.ion-ios-wineglass:before{content:"\f4d1"}.ion-ios-wineglass-outline:before{content:"\f4d0"}.ion-ios-world:before{content:"\f4d3"}.ion-ios-world-outline:before{content:"\f4d2"}.ion-ipad:before{content:"\f1f9"}.ion-iphone:before{content:"\f1fa"}.ion-ipod:before{content:"\f1fb"}.ion-jet:before{content:"\f295"}.ion-key:before{content:"\f296"}.ion-knife:before{content:"\f297"}.ion-laptop:before{content:"\f1fc"}.ion-leaf:before{content:"\f1fd"}.ion-levels:before{content:"\f298"}.ion-lightbulb:before{content:"\f299"}.ion-link:before{content:"\f1fe"}.ion-load-a:before{content:"\f29a"}.ion-load-b:before{content:"\f29b"}.ion-load-c:before{content:"\f29c"}.ion-load-d:before{content:"\f29d"}.ion-location:before{content:"\f1ff"}.ion-lock-combination:before{content:"\f4d4"}.ion-locked:before{content:"\f200"}.ion-log-in:before{content:"\f29e"}.ion-log-out:before{content:"\f29f"}.ion-loop:before{content:"\f201"}.ion-magnet:before{content:"\f2a0"}.ion-male:before{content:"\f2a1"}.ion-man:before{content:"\f202"}.ion-map:before{content:"\f203"}.ion-medkit:before{content:"\f2a2"}.ion-merge:before{content:"\f33f"}.ion-mic-a:before{content:"\f204"}.ion-mic-b:before{content:"\f205"}.ion-mic-c:before{content:"\f206"}.ion-minus:before{content:"\f209"}.ion-minus-circled:before{content:"\f207"}.ion-minus-round:before{content:"\f208"}.ion-model-s:before{content:"\f2c1"}.ion-monitor:before{content:"\f20a"}.ion-more:before{content:"\f20b"}.ion-mouse:before{content:"\f340"}.ion-music-note:before{content:"\f20c"}.ion-navicon:before{content:"\f20e"}.ion-navicon-round:before{content:"\f20d"}.ion-navigate:before{content:"\f2a3"}.ion-network:before{content:"\f341"}.ion-no-smoking:before{content:"\f2c2"}.ion-nuclear:before{content:"\f2a4"}.ion-outlet:before{content:"\f342"}.ion-paintbrush:before{content:"\f4d5"}.ion-paintbucket:before{content:"\f4d6"}.ion-paper-airplane:before{content:"\f2c3"}.ion-paperclip:before{content:"\f20f"}.ion-pause:before{content:"\f210"}.ion-person:before{content:"\f213"}.ion-person-add:before{content:"\f211"}.ion-person-stalker:before{content:"\f212"}.ion-pie-graph:before{content:"\f2a5"}.ion-pin:before{content:"\f2a6"}.ion-pinpoint:before{content:"\f2a7"}.ion-pizza:before{content:"\f2a8"}.ion-plane:before{content:"\f214"}.ion-planet:before{content:"\f343"}.ion-play:before{content:"\f215"}.ion-playstation:before{content:"\f30a"}.ion-plus:before{content:"\f218"}.ion-plus-circled:before{content:"\f216"}.ion-plus-round:before{content:"\f217"}.ion-podium:before{content:"\f344"}.ion-pound:before{content:"\f219"}.ion-power:before{content:"\f2a9"}.ion-pricetag:before{content:"\f2aa"}.ion-pricetags:before{content:"\f2ab"}.ion-printer:before{content:"\f21a"}.ion-pull-request:before{content:"\f345"}.ion-qr-scanner:before{content:"\f346"}.ion-quote:before{content:"\f347"}.ion-radio-waves:before{content:"\f2ac"}.ion-record:before{content:"\f21b"}.ion-refresh:before{content:"\f21c"}.ion-reply:before{content:"\f21e"}.ion-reply-all:before{content:"\f21d"}.ion-ribbon-a:before{content:"\f348"}.ion-ribbon-b:before{content:"\f349"}.ion-sad:before{content:"\f34a"}.ion-sad-outline:before{content:"\f4d7"}.ion-scissors:before{content:"\f34b"}.ion-search:before{content:"\f21f"}.ion-settings:before{content:"\f2ad"}.ion-share:before{content:"\f220"}.ion-shuffle:before{content:"\f221"}.ion-skip-backward:before{content:"\f222"}.ion-skip-forward:before{content:"\f223"}.ion-social-android:before{content:"\f225"}.ion-social-android-outline:before{content:"\f224"}.ion-social-angular:before{content:"\f4d9"}.ion-social-angular-outline:before{content:"\f4d8"}.ion-social-apple:before{content:"\f227"}.ion-social-apple-outline:before{content:"\f226"}.ion-social-bitcoin:before{content:"\f2af"}.ion-social-bitcoin-outline:before{content:"\f2ae"}.ion-social-buffer:before{content:"\f229"}.ion-social-buffer-outline:before{content:"\f228"}.ion-social-chrome:before{content:"\f4db"}.ion-social-chrome-outline:before{content:"\f4da"}.ion-social-codepen:before{content:"\f4dd"}.ion-social-codepen-outline:before{content:"\f4dc"}.ion-social-css3:before{content:"\f4df"}.ion-social-css3-outline:before{content:"\f4de"}.ion-social-designernews:before{content:"\f22b"}.ion-social-designernews-outline:before{content:"\f22a"}.ion-social-dribbble:before{content:"\f22d"}.ion-social-dribbble-outline:before{content:"\f22c"}.ion-social-dropbox:before{content:"\f22f"}.ion-social-dropbox-outline:before{content:"\f22e"}.ion-social-euro:before{content:"\f4e1"}.ion-social-euro-outline:before{content:"\f4e0"}.ion-social-facebook:before{content:"\f231"}.ion-social-facebook-outline:before{content:"\f230"}.ion-social-foursquare:before{content:"\f34d"}.ion-social-foursquare-outline:before{content:"\f34c"}.ion-social-freebsd-devil:before{content:"\f2c4"}.ion-social-github:before{content:"\f233"}.ion-social-github-outline:before{content:"\f232"}.ion-social-google:before{content:"\f34f"}.ion-social-google-outline:before{content:"\f34e"}.ion-social-googleplus:before{content:"\f235"}.ion-social-googleplus-outline:before{content:"\f234"}.ion-social-hackernews:before{content:"\f237"}.ion-social-hackernews-outline:before{content:"\f236"}.ion-social-html5:before{content:"\f4e3"}.ion-social-html5-outline:before{content:"\f4e2"}.ion-social-instagram:before{content:"\f351"}.ion-social-instagram-outline:before{content:"\f350"}.ion-social-javascript:before{content:"\f4e5"}.ion-social-javascript-outline:before{content:"\f4e4"}.ion-social-linkedin:before{content:"\f239"}.ion-social-linkedin-outline:before{content:"\f238"}.ion-social-markdown:before{content:"\f4e6"}.ion-social-nodejs:before{content:"\f4e7"}.ion-social-octocat:before{content:"\f4e8"}.ion-social-pinterest:before{content:"\f2b1"}.ion-social-pinterest-outline:before{content:"\f2b0"}.ion-social-python:before{content:"\f4e9"}.ion-social-reddit:before{content:"\f23b"}.ion-social-reddit-outline:before{content:"\f23a"}.ion-social-rss:before{content:"\f23d"}.ion-social-rss-outline:before{content:"\f23c"}.ion-social-sass:before{content:"\f4ea"}.ion-social-skype:before{content:"\f23f"}.ion-social-skype-outline:before{content:"\f23e"}.ion-social-snapchat:before{content:"\f4ec"}.ion-social-snapchat-outline:before{content:"\f4eb"}.ion-social-tumblr:before{content:"\f241"}.ion-social-tumblr-outline:before{content:"\f240"}.ion-social-tux:before{content:"\f2c5"}.ion-social-twitch:before{content:"\f4ee"}.ion-social-twitch-outline:before{content:"\f4ed"}.ion-social-twitter:before{content:"\f243"}.ion-social-twitter-outline:before{content:"\f242"}.ion-social-usd:before{content:"\f353"}.ion-social-usd-outline:before{content:"\f352"}.ion-social-vimeo:before{content:"\f245"}.ion-social-vimeo-outline:before{content:"\f244"}.ion-social-whatsapp:before{content:"\f4f0"}.ion-social-whatsapp-outline:before{content:"\f4ef"}.ion-social-windows:before{content:"\f247"}.ion-social-windows-outline:before{content:"\f246"}.ion-social-wordpress:before{content:"\f249"}.ion-social-wordpress-outline:before{content:"\f248"}.ion-social-yahoo:before{content:"\f24b"}.ion-social-yahoo-outline:before{content:"\f24a"}.ion-social-yen:before{content:"\f4f2"}.ion-social-yen-outline:before{content:"\f4f1"}.ion-social-youtube:before{content:"\f24d"}.ion-social-youtube-outline:before{content:"\f24c"}.ion-soup-can:before{content:"\f4f4"}.ion-soup-can-outline:before{content:"\f4f3"}.ion-speakerphone:before{content:"\f2b2"}.ion-speedometer:before{content:"\f2b3"}.ion-spoon:before{content:"\f2b4"}.ion-star:before{content:"\f24e"}.ion-stats-bars:before{content:"\f2b5"}.ion-steam:before{content:"\f30b"}.ion-stop:before{content:"\f24f"}.ion-thermometer:before{content:"\f2b6"}.ion-thumbsdown:before{content:"\f250"}.ion-thumbsup:before{content:"\f251"}.ion-toggle:before{content:"\f355"}.ion-toggle-filled:before{content:"\f354"}.ion-transgender:before{content:"\f4f5"}.ion-trash-a:before{content:"\f252"}.ion-trash-b:before{content:"\f253"}.ion-trophy:before{content:"\f356"}.ion-tshirt:before{content:"\f4f7"}.ion-tshirt-outline:before{content:"\f4f6"}.ion-umbrella:before{content:"\f2b7"}.ion-university:before{content:"\f357"}.ion-unlocked:before{content:"\f254"}.ion-upload:before{content:"\f255"}.ion-usb:before{content:"\f2b8"}.ion-videocamera:before{content:"\f256"}.ion-volume-high:before{content:"\f257"}.ion-volume-low:before{content:"\f258"}.ion-volume-medium:before{content:"\f259"}.ion-volume-mute:before{content:"\f25a"}.ion-wand:before{content:"\f358"}.ion-waterdrop:before{content:"\f25b"}.ion-wifi:before{content:"\f25c"}.ion-wineglass:before{content:"\f2b9"}.ion-woman:before{content:"\f25d"}.ion-wrench:before{content:"\f2ba"}.ion-xbox:before{content:"\f30c"}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;vertical-align:baseline;font:inherit;font-size:100%}ol,ul{list-style:none}blockquote,q{quotes:none}audio:not([controls]){display:none;height:0}[hidden],template{display:none}script{display:none!important}html{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}:focus,a,a:active,a:focus,a:hover,button,button:focus{outline:0}a{-webkit-user-drag:none;-webkit-tap-highlight-color:transparent}a[href]:hover{cursor:pointer}b,strong{font-weight:700}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}code,kbd,pre,samp{font-size:1em;font-family:monospace,serif}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}sub,sup{position:relative;vertical-align:baseline;font-size:75%;line-height:0}sup{top:-.5em}sub{bottom:-.25em}fieldset{margin:0 2px;padding:.35em .625em .75em;border:1px solid silver}button,input,select,textarea{margin:0;outline-offset:0;outline-style:none;outline-width:0;-webkit-font-smoothing:inherit;background-image:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto}img{-webkit-user-drag:none}table{border-spacing:0;border-collapse:collapse}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{overflow:hidden;-ms-touch-action:pan-y;touch-action:pan-y}.ionic-body,body{-webkit-touch-callout:none;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0;padding:0;color:#000;word-wrap:break-word;font-size:14px;font-family:"Helvetica Neue",Roboto,"Segoe UI",sans-serif;line-height:20px;text-rendering:optimizeLegibility;-webkit-backface-visibility:hidden;-webkit-user-drag:none;-ms-content-zooming:none}body.grade-b,body.grade-c{text-rendering:auto}.content{position:relative}.scroll-content{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;margin-top:-1px;padding-top:1px;margin-bottom:-1px;width:auto;height:auto}.menu .scroll-content.scroll-content-false{z-index:11}.scroll-view{position:relative;display:block;overflow:hidden;margin-top:-1px}.scroll{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-transform-origin:left top;transform-origin:left top}@-ms-viewport{width:device-width}.scroll-bar{position:absolute;z-index:9999}.ng-animate .scroll-bar{visibility:hidden}.scroll-bar-h{right:2px;bottom:3px;left:2px;height:3px}.scroll-bar-h .scroll-bar-indicator{height:100%}.scroll-bar-v{top:2px;right:3px;bottom:2px;width:3px}.scroll-bar-v .scroll-bar-indicator{width:100%}.scroll-bar-indicator{position:absolute;border-radius:4px;background:rgba(0,0,0,.3);opacity:1;-webkit-transition:opacity .3s linear;transition:opacity .3s linear}.scroll-bar-indicator.scroll-bar-fade-out{opacity:0}.platform-android .scroll-bar-indicator{border-radius:0}.grade-b .scroll-bar-indicator,.grade-c .scroll-bar-indicator{background:#aaa}.grade-b .scroll-bar-indicator.scroll-bar-fade-out,.grade-c .scroll-bar-indicator.scroll-bar-fade-out{-webkit-transition:none;transition:none}ion-infinite-scroll{height:60px;width:100%;display:block;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}ion-infinite-scroll .icon{font-size:30px;color:#666}ion-infinite-scroll:not(.active) .icon:before,ion-infinite-scroll:not(.active) .spinner{display:none}.overflow-scroll{overflow-x:hidden;overflow-y:scroll;-webkit-overflow-scrolling:touch;top:0;right:0;bottom:0;left:0;position:absolute}.overflow-scroll .scroll{position:static;height:100%;-webkit-transform:translate3d(0,0,0)}.has-header{top:44px}.no-header{top:0}.has-subheader{top:88px}.has-tabs-top{top:93px}.has-header.has-subheader.has-tabs-top{top:137px}.has-footer{bottom:44px}.has-subfooter{bottom:88px}.bar-footer.has-tabs,.has-tabs{bottom:49px}.bar-footer.has-tabs.pane,.has-tabs.pane{bottom:49px;height:auto}.has-footer.has-tabs{bottom:93px}.pane{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-duration:0;transition-duration:0;z-index:1}.view{z-index:1}.pane,.view{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#fff;overflow:hidden}.view-container{position:absolute;display:block;width:100%;height:100%}p{margin:0 0 10px}small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#000;font-weight:500;font-family:"Helvetica Neue",Roboto,"Segoe UI",sans-serif;line-height:1.2}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1:first-child,.h2:first-child,.h3:first-child,h1:first-child,h2:first-child,h3:first-child{margin-top:0}.h1+.h1,.h1+.h2,.h1+.h3,.h1+h1,.h1+h2,.h1+h3,.h2+.h1,.h2+.h2,.h2+.h3,.h2+h1,.h2+h2,.h2+h3,.h3+.h1,.h3+.h2,.h3+.h3,.h3+h1,.h3+h2,.h3+h3,h1+.h1,h1+.h2,h1+.h3,h1+h1,h1+h2,h1+h3,h2+.h1,h2+.h2,h2+.h3,h2+h1,h2+h2,h2+h3,h3+.h1,h3+.h2,h3+.h3,h3+h1,h3+h2,h3+h3{margin-top:10px}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}.h1 small,h1 small{font-size:24px}.h2 small,h2 small{font-size:18px}.h3 small,.h4 small,h3 small,h4 small{font-size:14px}dl{margin-bottom:20px}dd,dt{line-height:1.42857}dt{font-weight:700}blockquote{margin:0 0 20px;padding:10px 20px;border-left:5px solid gray}blockquote p{font-weight:300;font-size:17.5px;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.42857}blockquote small:before{content:'\2014 \00A0'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.42857}a.subdued{padding-right:10px;color:#888;text-decoration:none}a.subdued:hover{text-decoration:none}a.subdued:last-child{padding-right:0}.action-sheet-backdrop{-webkit-transition:background-color 150ms ease-in-out;transition:background-color 150ms ease-in-out;position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:transparent}.action-sheet-backdrop.active{background-color:rgba(0,0,0,.4)}.action-sheet-wrapper{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);-webkit-transition:all cubic-bezier(.36,.66,.04,1) 500ms;transition:all cubic-bezier(.36,.66,.04,1) 500ms;position:absolute;bottom:0;left:0;right:0;width:100%;max-width:500px;margin:auto}.action-sheet-up{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.action-sheet{margin-left:8px;margin-right:8px;width:auto;z-index:11;overflow:hidden}.action-sheet .button{display:block;padding:1px;width:100%;border-radius:0;border-color:#d1d3d6;background-color:transparent;color:#007aff;font-size:21px}.action-sheet .button:hover{color:#007aff}.action-sheet .button.destructive,.action-sheet .button.destructive:hover{color:#ff3b30}.action-sheet .button.activated,.action-sheet .button.active{box-shadow:none;border-color:#d1d3d6;color:#007aff;background:#e4e5e7}.action-sheet-has-icons .icon{position:absolute;left:16px}.action-sheet-title{padding:16px;color:#8f8f8f;text-align:center;font-size:13px}.action-sheet-group{margin-bottom:8px;border-radius:4px;background-color:#fff;overflow:hidden}.action-sheet-group .button{border-width:1px 0 0}.action-sheet-group .button:first-child:last-child{border-width:0}.action-sheet-options{background:#f1f2f3}.action-sheet-cancel .button{font-weight:500}.action-sheet-open,.action-sheet-open.modal-open .modal{pointer-events:none}.action-sheet-open .action-sheet-backdrop{pointer-events:auto}.platform-android .action-sheet-backdrop.active{background-color:rgba(0,0,0,.2)}.platform-android .action-sheet{margin:0}.platform-android .action-sheet .action-sheet-title,.platform-android .action-sheet .button{text-align:left;border-color:transparent;font-size:16px;color:inherit}.platform-android .action-sheet .action-sheet-title{font-size:14px;padding:16px;color:#666}.platform-android .action-sheet .button.activated,.platform-android .action-sheet .button.active{background:#e8e8e8}.platform-android .action-sheet-group{margin:0;border-radius:0;background-color:#fafafa}.platform-android .action-sheet-cancel{display:none}.platform-android .action-sheet-has-icons .button{padding-left:56px}.backdrop{position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:rgba(0,0,0,.4);visibility:hidden;opacity:0;-webkit-transition:.1s opacity linear;transition:.1s opacity linear}.backdrop.visible{visibility:visible}.backdrop.active{opacity:1}.bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;right:0;left:0;z-index:9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:5px;width:100%;height:44px;border-width:0;border-style:solid;border-top:1px solid transparent;border-bottom:1px solid #ddd;background-color:#fff;background-size:0}@media (min--moz-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:144dpi),(min-resolution:1.5dppx){.bar{border:none;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);background-position:bottom;background-size:100% 1px;background-repeat:no-repeat}}.bar.bar-clear{border:none;background:0 0;color:#fff}.bar.bar-clear .button,.bar.bar-clear .title{color:#fff}.bar.item-input-inset .item-input-wrapper{margin-top:-1px}.bar.item-input-inset .item-input-wrapper input{padding-left:8px;width:94%;height:28px;background:0 0}.bar.bar-light{border-color:#ddd;background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);color:#444}.bar.bar-light .title{color:#444}.bar.bar-light.bar-footer{background-image:linear-gradient(180deg,#ddd,#ddd 50%,transparent 50%)}.bar.bar-stable{border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444}.bar.bar-stable .title{color:#444}.bar.bar-stable.bar-footer{background-image:linear-gradient(180deg,#b2b2b2,#b2b2b2 50%,transparent 50%)}.bar.bar-positive{border-color:#0c63ee;background-color:#387ef5;background-image:linear-gradient(0deg,#0c63ee,#0c63ee 50%,transparent 50%);color:#fff}.bar.bar-positive .title{color:#fff}.bar.bar-positive.bar-footer{background-image:linear-gradient(180deg,#0c63ee,#0c63ee 50%,transparent 50%)}.bar.bar-calm{border-color:#0a9ec7;background-color:#11c1f3;background-image:linear-gradient(0deg,#0a9ec7,#0a9ec7 50%,transparent 50%);color:#fff}.bar.bar-calm .title{color:#fff}.bar.bar-calm.bar-footer{background-image:linear-gradient(180deg,#0a9ec7,#0a9ec7 50%,transparent 50%)}.bar.bar-assertive{border-color:#e42012;background-color:#ef473a;background-image:linear-gradient(0deg,#e42012,#e42012 50%,transparent 50%);color:#fff}.bar.bar-assertive .title{color:#fff}.bar.bar-assertive.bar-footer{background-image:linear-gradient(180deg,#e42012,#e42012 50%,transparent 50%)}.bar.bar-balanced{border-color:#28a54c;background-color:#33cd5f;background-image:linear-gradient(0deg,#28a54c,#28a54c 50%,transparent 50%);color:#fff}.bar.bar-balanced .title{color:#fff}.bar.bar-balanced.bar-footer{background-image:linear-gradient(180deg,#28a54c,#0c63ee 50%,transparent 50%)}.bar.bar-energized{border-color:#e6b400;background-color:#ffc900;background-image:linear-gradient(0deg,#e6b400,#e6b400 50%,transparent 50%);color:#fff}.bar.bar-energized .title{color:#fff}.bar.bar-energized.bar-footer{background-image:linear-gradient(180deg,#e6b400,#e6b400 50%,transparent 50%)}.bar.bar-royal{border-color:#6b46e5;background-color:#886aea;background-image:linear-gradient(0deg,#6b46e5,#6b46e5 50%,transparent 50%);color:#fff}.bar.bar-royal .title{color:#fff}.bar.bar-royal.bar-footer{background-image:linear-gradient(180deg,#6b46e5,#6b46e5 50%,transparent 50%)}.bar.bar-dark{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);color:#fff}.bar.bar-dark .title{color:#fff}.bar.bar-dark.bar-footer{background-image:linear-gradient(180deg,#111,#111 50%,transparent 50%)}.bar .title{position:absolute;top:0;right:0;left:0;z-index:0;overflow:hidden;margin:0 10px;min-width:30px;height:43px;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:500;line-height:44px}.bar .title.title-left{text-align:left}.bar .title.title-right{text-align:right}.bar .title a{color:inherit}.bar .button{z-index:1;padding:0 8px;min-width:initial;min-height:31px;font-weight:400;font-size:13px;line-height:32px}.bar .button .icon:before,.bar .button.button-icon:before,.bar .button.icon-left:before,.bar .button.icon-right:before,.bar .button.icon:before{padding-right:2px;padding-left:2px;font-size:20px;line-height:32px}.bar .button.button-icon{font-size:17px}.bar .button.button-icon .icon:before,.bar .button.button-icon.icon-left:before,.bar .button.button-icon.icon-right:before,.bar .button.button-icon:before{vertical-align:top;font-size:32px;line-height:32px}.bar .button.button-clear{padding-right:2px;padding-left:2px;font-weight:300;font-size:17px}.bar .button.button-clear .icon:before,.bar .button.button-clear.icon-left:before,.bar .button.button-clear.icon-right:before,.bar .button.button-clear.icon:before{font-size:32px;line-height:32px}.bar .button.back-button{display:block;margin-right:5px;padding:0;white-space:nowrap;font-weight:400}.bar .button.back-button.activated,.bar .button.back-button.active{opacity:.2}.bar .button-bar>.button,.bar .buttons>.button{min-height:31px;line-height:32px}.bar .button+.button-bar,.bar .button-bar+.button{margin-left:5px}.bar .buttons,.bar .buttons.primary-buttons,.bar .buttons.secondary-buttons{display:inherit}.bar .buttons span{display:inline-block}.bar .buttons-left span{margin-right:5px;display:inherit}.bar .buttons-right span{margin-left:5px;display:inherit}.bar .buttons.pull-right,.bar .title+.button:last-child,.bar .title+.buttons,.bar>.button+.button:last-child,.bar>.button.pull-right{position:absolute;top:5px;right:5px;bottom:5px}.platform-android .nav-bar-has-subheader .bar{background-image:none}.platform-android .bar .back-button .icon:before{font-size:24px}.platform-android .bar .title{font-size:19px;line-height:44px}.bar-light .button{border-color:#ddd;background-color:#fff;color:#444}.bar-light .button:hover{color:#444;text-decoration:none}.bar-light .button.activated,.bar-light .button.active{border-color:#ccc;background-color:#fafafa;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.bar-light .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#444;font-size:17px}.bar-light .button.button-icon{border-color:transparent;background:0 0}.bar-stable .button{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.bar-stable .button:hover{color:#444;text-decoration:none}.bar-stable .button.activated,.bar-stable .button.active{border-color:#a2a2a2;background-color:#e5e5e5;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.bar-stable .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#444;font-size:17px}.bar-stable .button.button-icon{border-color:transparent;background:0 0}.bar-positive .button{border-color:#0c63ee;background-color:#387ef5;color:#fff}.bar-positive .button:hover{color:#fff;text-decoration:none}.bar-positive .button.activated,.bar-positive .button.active{border-color:#0c63ee;background-color:#0c63ee;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.bar-positive .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-positive .button.button-icon{border-color:transparent;background:0 0}.bar-calm .button{border-color:#0a9ec7;background-color:#11c1f3;color:#fff}.bar-calm .button:hover{color:#fff;text-decoration:none}.bar-calm .button.activated,.bar-calm .button.active{border-color:#0a9ec7;background-color:#0a9ec7;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.bar-calm .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-calm .button.button-icon{border-color:transparent;background:0 0}.bar-assertive .button{border-color:#e42012;background-color:#ef473a;color:#fff}.bar-assertive .button:hover{color:#fff;text-decoration:none}.bar-assertive .button.activated,.bar-assertive .button.active{border-color:#e42012;background-color:#e42012;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.bar-assertive .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-assertive .button.button-icon{border-color:transparent;background:0 0}.bar-balanced .button{border-color:#28a54c;background-color:#33cd5f;color:#fff}.bar-balanced .button:hover{color:#fff;text-decoration:none}.bar-balanced .button.activated,.bar-balanced .button.active{border-color:#28a54c;background-color:#28a54c;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.bar-balanced .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-balanced .button.button-icon{border-color:transparent;background:0 0}.bar-energized .button{border-color:#e6b400;background-color:#ffc900;color:#fff}.bar-energized .button:hover{color:#fff;text-decoration:none}.bar-energized .button.activated,.bar-energized .button.active{border-color:#e6b400;background-color:#e6b400;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.bar-energized .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-energized .button.button-icon{border-color:transparent;background:0 0}.bar-royal .button{border-color:#6b46e5;background-color:#886aea;color:#fff}.bar-royal .button:hover{color:#fff;text-decoration:none}.bar-royal .button.activated,.bar-royal .button.active{border-color:#6b46e5;background-color:#6b46e5;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.bar-royal .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-royal .button.button-icon{border-color:transparent;background:0 0}.bar-dark .button{border-color:#111;background-color:#444;color:#fff}.bar-dark .button:hover{color:#fff;text-decoration:none}.bar-dark .button.activated,.bar-dark .button.active{border-color:#000;background-color:#262626;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.bar-dark .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-dark .button.button-icon{border-color:transparent;background:0 0}.bar-header{top:0;border-top-width:0;border-bottom-width:1px}.bar-header.has-tabs-top,.tabs-top .bar-header{border-bottom-width:0;background-image:none}.bar-footer{bottom:0;border-top-width:1px;border-bottom-width:0;background-position:top;height:44px}.bar-footer.item-input-inset{position:absolute}.bar-tabs{padding:0}.bar-subheader{top:44px;display:block;height:44px}.bar-subfooter{bottom:44px;display:block;height:44px}.nav-bar-block{position:absolute;top:0;right:0;left:0;z-index:9}.bar .back-button.hide,.bar .buttons .hide{display:none}.nav-bar-tabs-top .bar{background-image:none}.tabs{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:horizontal;-moz-flex-direction:horizontal;-ms-flex-direction:horizontal;flex-direction:horizontal;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444;position:absolute;bottom:0;z-index:5;width:100%;height:49px;border-style:solid;border-top-width:1px;background-size:0;line-height:49px}.tabs .tab-item .badge{background-color:#444;color:#f8f8f8}@media (min--moz-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:144dpi),(min-resolution:1.5dppx){.tabs{padding-top:2px;border-top:none!important;border-bottom:none;background-position:top;background-size:100% 1px;background-repeat:no-repeat}}.tabs-light>.tabs,.tabs.tabs-light{border-color:#ddd;background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);color:#444}.tabs-light>.tabs .tab-item .badge,.tabs.tabs-light .tab-item .badge{background-color:#444;color:#fff}.tabs-stable>.tabs,.tabs.tabs-stable{border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444}.tabs-stable>.tabs .tab-item .badge,.tabs.tabs-stable .tab-item .badge{background-color:#444;color:#f8f8f8}.tabs-positive>.tabs,.tabs.tabs-positive{border-color:#0c63ee;background-color:#387ef5;background-image:linear-gradient(0deg,#0c63ee,#0c63ee 50%,transparent 50%);color:#fff}.tabs-positive>.tabs .tab-item .badge,.tabs.tabs-positive .tab-item .badge{background-color:#fff;color:#387ef5}.tabs-calm>.tabs,.tabs.tabs-calm{border-color:#0a9ec7;background-color:#11c1f3;background-image:linear-gradient(0deg,#0a9ec7,#0a9ec7 50%,transparent 50%);color:#fff}.tabs-calm>.tabs .tab-item .badge,.tabs.tabs-calm .tab-item .badge{background-color:#fff;color:#11c1f3}.tabs-assertive>.tabs,.tabs.tabs-assertive{border-color:#e42012;background-color:#ef473a;background-image:linear-gradient(0deg,#e42012,#e42012 50%,transparent 50%);color:#fff}.tabs-assertive>.tabs .tab-item .badge,.tabs.tabs-assertive .tab-item .badge{background-color:#fff;color:#ef473a}.tabs-balanced>.tabs,.tabs.tabs-balanced{border-color:#28a54c;background-color:#33cd5f;background-image:linear-gradient(0deg,#28a54c,#28a54c 50%,transparent 50%);color:#fff}.tabs-balanced>.tabs .tab-item .badge,.tabs.tabs-balanced .tab-item .badge{background-color:#fff;color:#33cd5f}.tabs-energized>.tabs,.tabs.tabs-energized{border-color:#e6b400;background-color:#ffc900;background-image:linear-gradient(0deg,#e6b400,#e6b400 50%,transparent 50%);color:#fff}.tabs-energized>.tabs .tab-item .badge,.tabs.tabs-energized .tab-item .badge{background-color:#fff;color:#ffc900}.tabs-royal>.tabs,.tabs.tabs-royal{border-color:#6b46e5;background-color:#886aea;background-image:linear-gradient(0deg,#6b46e5,#6b46e5 50%,transparent 50%);color:#fff}.tabs-royal>.tabs .tab-item .badge,.tabs.tabs-royal .tab-item .badge{background-color:#fff;color:#886aea}.tabs-dark>.tabs,.tabs.tabs-dark{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);color:#fff}.tabs-dark>.tabs .tab-item .badge,.tabs.tabs-dark .tab-item .badge{background-color:#fff;color:#444}.tabs-striped .tabs{background-color:#fff;background-image:none;border:none;border-bottom:1px solid #ddd;padding-top:2px}.tabs-striped .tab-item.activated,.tabs-striped .tab-item.active,.tabs-striped .tab-item.tab-item-active{margin-top:-2px;border-style:solid;border-width:2px 0 0;border-color:#444}.tabs-striped .tab-item.activated .badge,.tabs-striped .tab-item.active .badge,.tabs-striped .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-light .tabs{background-color:#fff}.tabs-striped.tabs-light .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-striped.tabs-light .tab-item .badge{opacity:.4}.tabs-striped.tabs-light .tab-item.activated,.tabs-striped.tabs-light .tab-item.active,.tabs-striped.tabs-light .tab-item.tab-item-active{margin-top:-2px;color:#444;border-style:solid;border-width:2px 0 0;border-color:#444}.tabs-striped.tabs-stable .tabs{background-color:#f8f8f8}.tabs-striped.tabs-stable .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-striped.tabs-stable .tab-item .badge{opacity:.4}.tabs-striped.tabs-stable .tab-item.activated,.tabs-striped.tabs-stable .tab-item.active,.tabs-striped.tabs-stable .tab-item.tab-item-active{margin-top:-2px;color:#444;border-style:solid;border-width:2px 0 0;border-color:#444}.tabs-striped.tabs-positive .tabs{background-color:#387ef5}.tabs-striped.tabs-positive .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-positive .tab-item .badge{opacity:.4}.tabs-striped.tabs-positive .tab-item.activated,.tabs-striped.tabs-positive .tab-item.active,.tabs-striped.tabs-positive .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-calm .tabs{background-color:#11c1f3}.tabs-striped.tabs-calm .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-calm .tab-item .badge{opacity:.4}.tabs-striped.tabs-calm .tab-item.activated,.tabs-striped.tabs-calm .tab-item.active,.tabs-striped.tabs-calm .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-assertive .tabs{background-color:#ef473a}.tabs-striped.tabs-assertive .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-assertive .tab-item .badge{opacity:.4}.tabs-striped.tabs-assertive .tab-item.activated,.tabs-striped.tabs-assertive .tab-item.active,.tabs-striped.tabs-assertive .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-balanced .tabs{background-color:#33cd5f}.tabs-striped.tabs-balanced .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-balanced .tab-item .badge{opacity:.4}.tabs-striped.tabs-balanced .tab-item.activated,.tabs-striped.tabs-balanced .tab-item.active,.tabs-striped.tabs-balanced .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-energized .tabs{background-color:#ffc900}.tabs-striped.tabs-energized .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-energized .tab-item .badge{opacity:.4}.tabs-striped.tabs-energized .tab-item.activated,.tabs-striped.tabs-energized .tab-item.active,.tabs-striped.tabs-energized .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-royal .tabs{background-color:#886aea}.tabs-striped.tabs-royal .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-royal .tab-item .badge{opacity:.4}.tabs-striped.tabs-royal .tab-item.activated,.tabs-striped.tabs-royal .tab-item.active,.tabs-striped.tabs-royal .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-dark .tabs{background-color:#444}.tabs-striped.tabs-dark .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-dark .tab-item .badge{opacity:.4}.tabs-striped.tabs-dark .tab-item.activated,.tabs-striped.tabs-dark .tab-item.active,.tabs-striped.tabs-dark .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-top .tab-item.activated .badge,.tabs-striped.tabs-top .tab-item.active .badge,.tabs-striped.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-striped.tabs-background-light .tabs{background-color:#fff;background-image:none}.tabs-striped.tabs-background-stable .tabs{background-color:#f8f8f8;background-image:none}.tabs-striped.tabs-background-positive .tabs{background-color:#387ef5;background-image:none}.tabs-striped.tabs-background-calm .tabs{background-color:#11c1f3;background-image:none}.tabs-striped.tabs-background-assertive .tabs{background-color:#ef473a;background-image:none}.tabs-striped.tabs-background-balanced .tabs{background-color:#33cd5f;background-image:none}.tabs-striped.tabs-background-energized .tabs{background-color:#ffc900;background-image:none}.tabs-striped.tabs-background-royal .tabs{background-color:#886aea;background-image:none}.tabs-striped.tabs-background-dark .tabs{background-color:#444;background-image:none}.tabs-striped.tabs-color-light .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-color-light .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-light .tab-item.activated,.tabs-striped.tabs-color-light .tab-item.active,.tabs-striped.tabs-color-light .tab-item.tab-item-active{margin-top:-2px;color:#fff;border:0 solid #fff;border-top-width:2px}.tabs-striped.tabs-color-light .tab-item.activated .badge,.tabs-striped.tabs-color-light .tab-item.active .badge,.tabs-striped.tabs-color-light .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-stable .tab-item{color:rgba(248,248,248,.4);opacity:1}.tabs-striped.tabs-color-stable .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-stable .tab-item.activated,.tabs-striped.tabs-color-stable .tab-item.active,.tabs-striped.tabs-color-stable .tab-item.tab-item-active{margin-top:-2px;color:#f8f8f8;border:0 solid #f8f8f8;border-top-width:2px}.tabs-striped.tabs-color-stable .tab-item.activated .badge,.tabs-striped.tabs-color-stable .tab-item.active .badge,.tabs-striped.tabs-color-stable .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-positive .tab-item{color:rgba(56,126,245,.4);opacity:1}.tabs-striped.tabs-color-positive .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-positive .tab-item.activated,.tabs-striped.tabs-color-positive .tab-item.active,.tabs-striped.tabs-color-positive .tab-item.tab-item-active{margin-top:-2px;color:#387ef5;border:0 solid #387ef5;border-top-width:2px}.tabs-striped.tabs-color-positive .tab-item.activated .badge,.tabs-striped.tabs-color-positive .tab-item.active .badge,.tabs-striped.tabs-color-positive .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-calm .tab-item{color:rgba(17,193,243,.4);opacity:1}.tabs-striped.tabs-color-calm .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-calm .tab-item.activated,.tabs-striped.tabs-color-calm .tab-item.active,.tabs-striped.tabs-color-calm .tab-item.tab-item-active{margin-top:-2px;color:#11c1f3;border:0 solid #11c1f3;border-top-width:2px}.tabs-striped.tabs-color-calm .tab-item.activated .badge,.tabs-striped.tabs-color-calm .tab-item.active .badge,.tabs-striped.tabs-color-calm .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-assertive .tab-item{color:rgba(239,71,58,.4);opacity:1}.tabs-striped.tabs-color-assertive .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-assertive .tab-item.activated,.tabs-striped.tabs-color-assertive .tab-item.active,.tabs-striped.tabs-color-assertive .tab-item.tab-item-active{margin-top:-2px;color:#ef473a;border:0 solid #ef473a;border-top-width:2px}.tabs-striped.tabs-color-assertive .tab-item.activated .badge,.tabs-striped.tabs-color-assertive .tab-item.active .badge,.tabs-striped.tabs-color-assertive .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-balanced .tab-item{color:rgba(51,205,95,.4);opacity:1}.tabs-striped.tabs-color-balanced .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-balanced .tab-item.activated,.tabs-striped.tabs-color-balanced .tab-item.active,.tabs-striped.tabs-color-balanced .tab-item.tab-item-active{margin-top:-2px;color:#33cd5f;border:0 solid #33cd5f;border-top-width:2px}.tabs-striped.tabs-color-balanced .tab-item.activated .badge,.tabs-striped.tabs-color-balanced .tab-item.active .badge,.tabs-striped.tabs-color-balanced .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-energized .tab-item{color:rgba(255,201,0,.4);opacity:1}.tabs-striped.tabs-color-energized .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-energized .tab-item.activated,.tabs-striped.tabs-color-energized .tab-item.active,.tabs-striped.tabs-color-energized .tab-item.tab-item-active{margin-top:-2px;color:#ffc900;border:0 solid #ffc900;border-top-width:2px}.tabs-striped.tabs-color-energized .tab-item.activated .badge,.tabs-striped.tabs-color-energized .tab-item.active .badge,.tabs-striped.tabs-color-energized .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-royal .tab-item{color:rgba(136,106,234,.4);opacity:1}.tabs-striped.tabs-color-royal .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-royal .tab-item.activated,.tabs-striped.tabs-color-royal .tab-item.active,.tabs-striped.tabs-color-royal .tab-item.tab-item-active{margin-top:-2px;color:#886aea;border:0 solid #886aea;border-top-width:2px}.tabs-striped.tabs-color-royal .tab-item.activated .badge,.tabs-striped.tabs-color-royal .tab-item.active .badge,.tabs-striped.tabs-color-royal .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-dark .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-striped.tabs-color-dark .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-dark .tab-item.activated,.tabs-striped.tabs-color-dark .tab-item.active,.tabs-striped.tabs-color-dark .tab-item.tab-item-active{margin-top:-2px;color:#444;border:0 solid #444;border-top-width:2px}.tabs-striped.tabs-color-dark .tab-item.activated .badge,.tabs-striped.tabs-color-dark .tab-item.active .badge,.tabs-striped.tabs-color-dark .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-background-light .tabs,.tabs-background-light>.tabs{background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);border-color:#ddd}.tabs-background-stable .tabs,.tabs-background-stable>.tabs{background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);border-color:#b2b2b2}.tabs-background-positive .tabs,.tabs-background-positive>.tabs{background-color:#387ef5;background-image:linear-gradient(0deg,#0c63ee,#0c63ee 50%,transparent 50%);border-color:#0c63ee}.tabs-background-calm .tabs,.tabs-background-calm>.tabs{background-color:#11c1f3;background-image:linear-gradient(0deg,#0a9ec7,#0a9ec7 50%,transparent 50%);border-color:#0a9ec7}.tabs-background-assertive .tabs,.tabs-background-assertive>.tabs{background-color:#ef473a;background-image:linear-gradient(0deg,#e42012,#e42012 50%,transparent 50%);border-color:#e42012}.tabs-background-balanced .tabs,.tabs-background-balanced>.tabs{background-color:#33cd5f;background-image:linear-gradient(0deg,#28a54c,#28a54c 50%,transparent 50%);border-color:#28a54c}.tabs-background-energized .tabs,.tabs-background-energized>.tabs{background-color:#ffc900;background-image:linear-gradient(0deg,#e6b400,#e6b400 50%,transparent 50%);border-color:#e6b400}.tabs-background-royal .tabs,.tabs-background-royal>.tabs{background-color:#886aea;background-image:linear-gradient(0deg,#6b46e5,#6b46e5 50%,transparent 50%);border-color:#6b46e5}.tabs-background-dark .tabs,.tabs-background-dark>.tabs{background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);border-color:#111}.tabs-color-light .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-color-light .tab-item .badge{opacity:.4}.tabs-color-light .tab-item.activated,.tabs-color-light .tab-item.active,.tabs-color-light .tab-item.tab-item-active{color:#fff;border:0 solid #fff}.tabs-color-light .tab-item.activated .badge,.tabs-color-light .tab-item.active .badge,.tabs-color-light .tab-item.tab-item-active .badge{opacity:1}.tabs-color-stable .tab-item{color:rgba(248,248,248,.4);opacity:1}.tabs-color-stable .tab-item .badge{opacity:.4}.tabs-color-stable .tab-item.activated,.tabs-color-stable .tab-item.active,.tabs-color-stable .tab-item.tab-item-active{color:#f8f8f8;border:0 solid #f8f8f8}.tabs-color-stable .tab-item.activated .badge,.tabs-color-stable .tab-item.active .badge,.tabs-color-stable .tab-item.tab-item-active .badge{opacity:1}.tabs-color-positive .tab-item{color:rgba(56,126,245,.4);opacity:1}.tabs-color-positive .tab-item .badge{opacity:.4}.tabs-color-positive .tab-item.activated,.tabs-color-positive .tab-item.active,.tabs-color-positive .tab-item.tab-item-active{color:#387ef5;border:0 solid #387ef5}.tabs-color-positive .tab-item.activated .badge,.tabs-color-positive .tab-item.active .badge,.tabs-color-positive .tab-item.tab-item-active .badge{opacity:1}.tabs-color-calm .tab-item{color:rgba(17,193,243,.4);opacity:1}.tabs-color-calm .tab-item .badge{opacity:.4}.tabs-color-calm .tab-item.activated,.tabs-color-calm .tab-item.active,.tabs-color-calm .tab-item.tab-item-active{color:#11c1f3;border:0 solid #11c1f3}.tabs-color-calm .tab-item.activated .badge,.tabs-color-calm .tab-item.active .badge,.tabs-color-calm .tab-item.tab-item-active .badge{opacity:1}.tabs-color-assertive .tab-item{color:rgba(239,71,58,.4);opacity:1}.tabs-color-assertive .tab-item .badge{opacity:.4}.tabs-color-assertive .tab-item.activated,.tabs-color-assertive .tab-item.active,.tabs-color-assertive .tab-item.tab-item-active{color:#ef473a;border:0 solid #ef473a}.tabs-color-assertive .tab-item.activated .badge,.tabs-color-assertive .tab-item.active .badge,.tabs-color-assertive .tab-item.tab-item-active .badge{opacity:1}.tabs-color-balanced .tab-item{color:rgba(51,205,95,.4);opacity:1}.tabs-color-balanced .tab-item .badge{opacity:.4}.tabs-color-balanced .tab-item.activated,.tabs-color-balanced .tab-item.active,.tabs-color-balanced .tab-item.tab-item-active{color:#33cd5f;border:0 solid #33cd5f}.tabs-color-balanced .tab-item.activated .badge,.tabs-color-balanced .tab-item.active .badge,.tabs-color-balanced .tab-item.tab-item-active .badge{opacity:1}.tabs-color-energized .tab-item{color:rgba(255,201,0,.4);opacity:1}.tabs-color-energized .tab-item .badge{opacity:.4}.tabs-color-energized .tab-item.activated,.tabs-color-energized .tab-item.active,.tabs-color-energized .tab-item.tab-item-active{color:#ffc900;border:0 solid #ffc900}.tabs-color-energized .tab-item.activated .badge,.tabs-color-energized .tab-item.active .badge,.tabs-color-energized .tab-item.tab-item-active .badge{opacity:1}.tabs-color-royal .tab-item{color:rgba(136,106,234,.4);opacity:1}.tabs-color-royal .tab-item .badge{opacity:.4}.tabs-color-royal .tab-item.activated,.tabs-color-royal .tab-item.active,.tabs-color-royal .tab-item.tab-item-active{color:#886aea;border:0 solid #886aea}.tabs-color-royal .tab-item.activated .badge,.tabs-color-royal .tab-item.active .badge,.tabs-color-royal .tab-item.tab-item-active .badge{opacity:1}.tabs-color-dark .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-color-dark .tab-item .badge{opacity:.4}.tabs-color-dark .tab-item.activated,.tabs-color-dark .tab-item.active,.tabs-color-dark .tab-item.tab-item-active{color:#444;border:0 solid #444}.tabs-color-dark .tab-item.activated .badge,.tabs-color-dark .tab-item.active .badge,.tabs-color-dark .tab-item.tab-item-active .badge{opacity:1}ion-tabs.tabs-color-active-light .tab-item{color:#444}ion-tabs.tabs-color-active-light .tab-item.activated,ion-tabs.tabs-color-active-light .tab-item.active,ion-tabs.tabs-color-active-light .tab-item.tab-item-active{color:#fff}ion-tabs.tabs-color-active-stable .tab-item{color:#444}ion-tabs.tabs-color-active-stable .tab-item.activated,ion-tabs.tabs-color-active-stable .tab-item.active,ion-tabs.tabs-color-active-stable .tab-item.tab-item-active{color:#f8f8f8}ion-tabs.tabs-color-active-positive .tab-item{color:#444}ion-tabs.tabs-color-active-positive .tab-item.activated,ion-tabs.tabs-color-active-positive .tab-item.active,ion-tabs.tabs-color-active-positive .tab-item.tab-item-active{color:#387ef5}ion-tabs.tabs-color-active-calm .tab-item{color:#444}ion-tabs.tabs-color-active-calm .tab-item.activated,ion-tabs.tabs-color-active-calm .tab-item.active,ion-tabs.tabs-color-active-calm .tab-item.tab-item-active{color:#11c1f3}ion-tabs.tabs-color-active-assertive .tab-item{color:#444}ion-tabs.tabs-color-active-assertive .tab-item.activated,ion-tabs.tabs-color-active-assertive .tab-item.active,ion-tabs.tabs-color-active-assertive .tab-item.tab-item-active{color:#ef473a}ion-tabs.tabs-color-active-balanced .tab-item{color:#444}ion-tabs.tabs-color-active-balanced .tab-item.activated,ion-tabs.tabs-color-active-balanced .tab-item.active,ion-tabs.tabs-color-active-balanced .tab-item.tab-item-active{color:#33cd5f}ion-tabs.tabs-color-active-energized .tab-item{color:#444}ion-tabs.tabs-color-active-energized .tab-item.activated,ion-tabs.tabs-color-active-energized .tab-item.active,ion-tabs.tabs-color-active-energized .tab-item.tab-item-active{color:#ffc900}ion-tabs.tabs-color-active-royal .tab-item{color:#444}ion-tabs.tabs-color-active-royal .tab-item.activated,ion-tabs.tabs-color-active-royal .tab-item.active,ion-tabs.tabs-color-active-royal .tab-item.tab-item-active{color:#886aea}ion-tabs.tabs-color-active-dark .tab-item{color:#fff}ion-tabs.tabs-color-active-dark .tab-item.activated,ion-tabs.tabs-color-active-dark .tab-item.active,ion-tabs.tabs-color-active-dark .tab-item.tab-item-active{color:#444}.tabs-top.tabs-striped{padding-bottom:0}.tabs-top.tabs-striped .tab-item{background:0 0;-webkit-transition:color .1s ease;-moz-transition:color .1s ease;-ms-transition:color .1s ease;-o-transition:color .1s ease;transition:color .1s ease}.tabs-top.tabs-striped .tab-item.activated,.tabs-top.tabs-striped .tab-item.active,.tabs-top.tabs-striped .tab-item.tab-item-active{margin-top:1px;border-width:0 0 2px!important;border-style:solid}.tabs-top.tabs-striped .tab-item.activated>.badge,.tabs-top.tabs-striped .tab-item.activated>i,.tabs-top.tabs-striped .tab-item.active>.badge,.tabs-top.tabs-striped .tab-item.active>i,.tabs-top.tabs-striped .tab-item.tab-item-active>.badge,.tabs-top.tabs-striped .tab-item.tab-item-active>i{margin-top:-1px}.tabs-top.tabs-striped .tab-item .badge{-webkit-transition:color .2s ease;-moz-transition:color .2s ease;-ms-transition:color .2s ease;-o-transition:color .2s ease;transition:color .2s ease}.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.activated .tab-title,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.activated i,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.active .tab-title,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.active i,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.tab-item-active .tab-title,.tabs-top.tabs-striped:not(.tabs-icon-left):not(.tabs-icon-top) .tab-item.tab-item-active i{display:block;margin-top:-1px}.tabs-top.tabs-striped.tabs-icon-left .tab-item{margin-top:1px}.tabs-top.tabs-striped.tabs-icon-left .tab-item.activated .tab-title,.tabs-top.tabs-striped.tabs-icon-left .tab-item.activated i,.tabs-top.tabs-striped.tabs-icon-left .tab-item.active .tab-title,.tabs-top.tabs-striped.tabs-icon-left .tab-item.active i,.tabs-top.tabs-striped.tabs-icon-left .tab-item.tab-item-active .tab-title,.tabs-top.tabs-striped.tabs-icon-left .tab-item.tab-item-active i{margin-top:-.1em}.tabs-top>.tabs,.tabs.tabs-top{top:44px;padding-top:0;background-position:bottom;border-top-width:0;border-bottom-width:1px}.tabs-top>.tabs .tab-item.activated .badge,.tabs-top>.tabs .tab-item.active .badge,.tabs-top>.tabs .tab-item.tab-item-active .badge,.tabs.tabs-top .tab-item.activated .badge,.tabs.tabs-top .tab-item.active .badge,.tabs.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-top~.bar-header{border-bottom-width:0}.tab-item{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;max-width:150px;height:100%;color:inherit;text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;font-weight:400;font-size:14px;font-family:"Helvetica Neue",Roboto,"Segoe UI",sans-serif;opacity:.7}.tab-item:hover{cursor:pointer}.tab-item.tab-hidden,.tabs-item-hide>.tabs,.tabs.tabs-item-hide{display:none}.tabs-icon-bottom.tabs .tab-item,.tabs-icon-bottom>.tabs .tab-item,.tabs-icon-top.tabs .tab-item,.tabs-icon-top>.tabs .tab-item{font-size:10px;line-height:14px}.tab-item .icon{display:block;margin:0 auto;height:32px;font-size:32px}.tabs-icon-left.tabs .tab-item,.tabs-icon-left>.tabs .tab-item,.tabs-icon-right.tabs .tab-item,.tabs-icon-right>.tabs .tab-item{font-size:10px}.tabs-icon-left.tabs .tab-item .icon,.tabs-icon-left.tabs .tab-item .tab-title,.tabs-icon-left>.tabs .tab-item .icon,.tabs-icon-left>.tabs .tab-item .tab-title,.tabs-icon-right.tabs .tab-item .icon,.tabs-icon-right.tabs .tab-item .tab-title,.tabs-icon-right>.tabs .tab-item .icon,.tabs-icon-right>.tabs .tab-item .tab-title{display:inline-block;vertical-align:top;margin-top:-.1em}.tabs-icon-left.tabs .tab-item .icon:before,.tabs-icon-left.tabs .tab-item .tab-title:before,.tabs-icon-left>.tabs .tab-item .icon:before,.tabs-icon-left>.tabs .tab-item .tab-title:before,.tabs-icon-right.tabs .tab-item .icon:before,.tabs-icon-right.tabs .tab-item .tab-title:before,.tabs-icon-right>.tabs .tab-item .icon:before,.tabs-icon-right>.tabs .tab-item .tab-title:before{font-size:24px;line-height:49px}.tabs-icon-left.tabs .tab-item .icon,.tabs-icon-left>.tabs .tab-item .icon{padding-right:3px}.tabs-icon-right.tabs .tab-item .icon,.tabs-icon-right>.tabs .tab-item .icon{padding-left:3px}.tabs-icon-only.tabs .icon,.tabs-icon-only>.tabs .icon{line-height:inherit}.tab-item.has-badge{position:relative}.tab-item .badge{position:absolute;top:4%;right:33%;right:calc(50% - 26px);padding:1px 6px;height:auto;font-size:12px;line-height:16px}.tab-item.activated,.tab-item.active,.tab-item.tab-item-active{opacity:1}.tab-item.activated.tab-item-light,.tab-item.active.tab-item-light,.tab-item.tab-item-active.tab-item-light{color:#fff}.tab-item.activated.tab-item-stable,.tab-item.active.tab-item-stable,.tab-item.tab-item-active.tab-item-stable{color:#f8f8f8}.tab-item.activated.tab-item-positive,.tab-item.active.tab-item-positive,.tab-item.tab-item-active.tab-item-positive{color:#387ef5}.tab-item.activated.tab-item-calm,.tab-item.active.tab-item-calm,.tab-item.tab-item-active.tab-item-calm{color:#11c1f3}.tab-item.activated.tab-item-assertive,.tab-item.active.tab-item-assertive,.tab-item.tab-item-active.tab-item-assertive{color:#ef473a}.tab-item.activated.tab-item-balanced,.tab-item.active.tab-item-balanced,.tab-item.tab-item-active.tab-item-balanced{color:#33cd5f}.tab-item.activated.tab-item-energized,.tab-item.active.tab-item-energized,.tab-item.tab-item-active.tab-item-energized{color:#ffc900}.tab-item.activated.tab-item-royal,.tab-item.active.tab-item-royal,.tab-item.tab-item-active.tab-item-royal{color:#886aea}.tab-item.activated.tab-item-dark,.tab-item.active.tab-item-dark,.tab-item.tab-item-active.tab-item-dark{color:#444}.item.tabs{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;padding:0}.item.tabs .icon:before{position:relative}.tab-item.disabled,.tab-item[disabled]{opacity:.4;cursor:default;pointer-events:none}.nav-bar-tabs-top.hide~.view-container .tabs-top .tabs{top:0}.pane[hide-nav-bar=true] .has-tabs-top{top:49px}.menu{position:absolute;top:0;bottom:0;z-index:0;overflow:hidden;min-height:100%;max-height:100%;width:275px;background-color:#fff}.menu .scroll-content{z-index:10}.menu .bar-header{z-index:11}.menu-content{-webkit-transform:none;transform:none;box-shadow:-1px 0 2px rgba(0,0,0,.2),1px 0 2px rgba(0,0,0,.2)}.menu-open .menu-content .pane,.menu-open .menu-content .scroll-content{pointer-events:none;overflow:hidden}.grade-b .menu-content,.grade-c .menu-content{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;right:-1px;left:-1px;border-right:1px solid #ccc;border-left:1px solid #ccc;box-shadow:none}.menu-left{left:0}.menu-right{right:0}.aside-open.aside-resizing .menu-right{display:none}.menu-animated{-webkit-transition:-webkit-transform 200ms ease;transition:transform 200ms ease}.modal-backdrop,.modal-backdrop-bg{position:fixed;top:0;left:0;z-index:10;width:100%;height:100%}.modal-backdrop-bg{pointer-events:none}.modal{display:block;position:absolute;top:0;z-index:10;overflow:hidden;min-height:100%;width:100%;background-color:#fff}@media (min-width:680px){.modal{top:20%;right:20%;bottom:20%;left:20%;min-height:240px;width:60%}.modal.ng-leave-active{bottom:0}.platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader){height:44px}.platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader)>*{margin-top:0}.platform-ios.platform-cordova .modal-wrapper .modal .bar-subheader,.platform-ios.platform-cordova .modal-wrapper .modal .has-header,.platform-ios.platform-cordova .modal-wrapper .modal .tabs-top>.tabs,.platform-ios.platform-cordova .modal-wrapper .modal .tabs.tabs-top{top:44px}.platform-ios.platform-cordova .modal-wrapper .modal .has-subheader{top:88px}.platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-tabs-top{top:93px}.platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-subheader.has-tabs-top{top:137px}.modal-backdrop-bg{-webkit-transition:opacity 300ms ease-in-out;transition:opacity 300ms ease-in-out;background-color:#000;opacity:0}.active .modal-backdrop-bg{opacity:.5}}.modal-open{pointer-events:none}.modal-open .modal,.modal-open .modal-backdrop{pointer-events:auto}.modal-open.loading-active .modal,.modal-open.loading-active .modal-backdrop{pointer-events:none}.popover-backdrop{position:fixed;top:0;left:0;z-index:10;width:100%;height:100%;background-color:transparent}.popover-backdrop.active{background-color:rgba(0,0,0,.1)}.popover{position:absolute;top:25%;left:50%;z-index:10;display:block;margin-top:12px;margin-left:-110px;height:280px;width:220px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);opacity:0}.popover .item:first-child{border-top:0}.popover .item:last-child{border-bottom:0}.popover.popover-bottom{margin-top:-12px}.popover,.popover .bar-header{border-radius:2px}.popover .scroll-content{z-index:1;margin:2px 0}.popover .bar-header{border-bottom-right-radius:0;border-bottom-left-radius:0}.popover .has-header{border-top-right-radius:0;border-top-left-radius:0}.popover-arrow{display:none}.platform-ios .popover{box-shadow:0 0 40px rgba(0,0,0,.08);border-radius:10px}.platform-ios .popover .bar-header{-webkit-border-top-right-radius:10px;border-top-right-radius:10px;-webkit-border-top-left-radius:10px;border-top-left-radius:10px}.platform-ios .popover .scroll-content{margin:8px 0;border-radius:10px}.platform-ios .popover .scroll-content.has-header{margin-top:0}.platform-ios .popover-arrow{position:absolute;display:block;top:-17px;width:30px;height:19px;overflow:hidden}.platform-ios .popover-arrow:after{position:absolute;top:12px;left:5px;width:20px;height:20px;background-color:#fff;border-radius:3px;content:'';-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.platform-ios .popover-bottom .popover-arrow{top:auto;bottom:-10px}.platform-ios .popover-bottom .popover-arrow:after{top:-6px}.platform-android .popover{margin-top:-32px;background-color:#fafafa;box-shadow:0 2px 6px rgba(0,0,0,.35)}.platform-android .popover .item{border-color:#fafafa;background-color:#fafafa;color:#4d4d4d}.platform-android .popover.popover-bottom{margin-top:32px}.platform-android .popover-backdrop,.platform-android .popover-backdrop.active{background-color:transparent}.popover-open{pointer-events:none}.popover-open .popover,.popover-open .popover-backdrop{pointer-events:auto}.popover-open.loading-active .popover,.popover-open.loading-active .popover-backdrop{pointer-events:none}@media (min-width:680px){.popover{width:360px}}.popup-container{position:absolute;top:0;left:0;bottom:0;right:0;background:0 0;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;z-index:12;visibility:hidden}.popup-container.popup-showing{visibility:visible}.popup-container.popup-hidden .popup{-webkit-animation-name:scaleOut;animation-name:scaleOut;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.popup-container.active .popup{-webkit-animation-name:superScaleIn;animation-name:superScaleIn;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.popup-container .popup{width:250px;max-width:100%;max-height:90%;border-radius:0;background-color:rgba(255,255,255,.9);display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.popup-container input,.popup-container textarea{width:100%}.popup-head{padding:15px 10px;border-bottom:1px solid #eee;text-align:center}.popup-title{margin:0;padding:0;font-size:15px}.popup-sub-title{margin:5px 0 0;padding:0;font-weight:400;font-size:11px}.popup-body{padding:10px;overflow:auto}.popup-buttons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding:10px;min-height:65px}.popup-buttons .button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;min-height:45px;border-radius:2px;line-height:20px;margin-right:5px}.popup-buttons .button:last-child{margin-right:0}.popup-open,.popup-open.modal-open .modal{pointer-events:none}.popup-open .popup,.popup-open .popup-backdrop{pointer-events:auto}.loading-container{position:absolute;left:0;top:0;right:0;bottom:0;z-index:13;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-transition:.2s opacity linear;transition:.2s opacity linear;visibility:hidden;opacity:0}.loading-container:not(.visible) .icon,.loading-container:not(.visible) .spinner{display:none}.loading-container.visible{visibility:visible}.loading-container.active{opacity:1}.loading-container .loading{padding:20px;border-radius:5px;background-color:rgba(0,0,0,.7);color:#fff;text-align:center;text-overflow:ellipsis;font-size:15px}.loading-container .loading h1,.loading-container .loading h2,.loading-container .loading h3,.loading-container .loading h4,.loading-container .loading h5,.loading-container .loading h6{color:#fff}.item{border-color:#ddd;background-color:#fff;color:#444;position:relative;z-index:2;display:block;margin:-1px;padding:16px;border-width:1px;border-style:solid;font-size:16px}.item h2{margin:0 0 2px;font-size:16px;font-weight:400}.item h3{margin:0 0 4px;font-size:14px}.item h4{margin:0 0 4px;font-size:12px}.item h5,.item h6{margin:0 0 3px;font-size:10px}.item p{color:#666;font-size:14px;margin-bottom:2px}.item h1:last-child,.item h2:last-child,.item h3:last-child,.item h4:last-child,.item h5:last-child,.item h6:last-child,.item p:last-child{margin-bottom:0}.item .badge{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;position:absolute;top:16px;right:32px}.item.item-button-right .badge{right:67px}.item.item-divider .badge{top:8px}.item .badge+.badge{margin-right:5px}.item.item-light{border-color:#ddd;background-color:#fff;color:#444}.item.item-stable{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.item.item-positive{border-color:#0c63ee;background-color:#387ef5;color:#fff}.item.item-calm{border-color:#0a9ec7;background-color:#11c1f3;color:#fff}.item.item-assertive{border-color:#e42012;background-color:#ef473a;color:#fff}.item.item-balanced{border-color:#28a54c;background-color:#33cd5f;color:#fff}.item.item-energized{border-color:#e6b400;background-color:#ffc900;color:#fff}.item.item-royal{border-color:#6b46e5;background-color:#886aea;color:#fff}.item.item-dark{border-color:#111;background-color:#444;color:#fff}.item[ng-click]:hover{cursor:pointer}.item-borderless,.list-borderless .item{border-width:0}.item .item-content.activated,.item .item-content.active,.item-complex.activated .item-content,.item-complex.active .item-content,.item.activated,.item.active{border-color:#ccc;background-color:#D9D9D9}.item .item-content.activated.item-light,.item .item-content.active.item-light,.item-complex.activated .item-content.item-light,.item-complex.active .item-content.item-light,.item.activated.item-light,.item.active.item-light{border-color:#ccc;background-color:#fafafa}.item .item-content.activated.item-stable,.item .item-content.active.item-stable,.item-complex.activated .item-content.item-stable,.item-complex.active .item-content.item-stable,.item.activated.item-stable,.item.active.item-stable{border-color:#a2a2a2;background-color:#e5e5e5}.item .item-content.activated.item-positive,.item .item-content.active.item-positive,.item-complex.activated .item-content.item-positive,.item-complex.active .item-content.item-positive,.item.activated.item-positive,.item.active.item-positive{border-color:#0c63ee;background-color:#0c63ee}.item .item-content.activated.item-calm,.item .item-content.active.item-calm,.item-complex.activated .item-content.item-calm,.item-complex.active .item-content.item-calm,.item.activated.item-calm,.item.active.item-calm{border-color:#0a9ec7;background-color:#0a9ec7}.item .item-content.activated.item-assertive,.item .item-content.active.item-assertive,.item-complex.activated .item-content.item-assertive,.item-complex.active .item-content.item-assertive,.item.activated.item-assertive,.item.active.item-assertive{border-color:#e42012;background-color:#e42012}.item .item-content.activated.item-balanced,.item .item-content.active.item-balanced,.item-complex.activated .item-content.item-balanced,.item-complex.active .item-content.item-balanced,.item.activated.item-balanced,.item.active.item-balanced{border-color:#28a54c;background-color:#28a54c}.item .item-content.activated.item-energized,.item .item-content.active.item-energized,.item-complex.activated .item-content.item-energized,.item-complex.active .item-content.item-energized,.item.activated.item-energized,.item.active.item-energized{border-color:#e6b400;background-color:#e6b400}.item .item-content.activated.item-royal,.item .item-content.active.item-royal,.item-complex.activated .item-content.item-royal,.item-complex.active .item-content.item-royal,.item.activated.item-royal,.item.active.item-royal{border-color:#6b46e5;background-color:#6b46e5}.item .item-content.activated.item-dark,.item .item-content.active.item-dark,.item-complex.activated .item-content.item-dark,.item-complex.active .item-content.item-dark,.item.activated.item-dark,.item.active.item-dark{border-color:#000;background-color:#262626}.item,.item h1,.item h2,.item h3,.item h4,.item h5,.item h6,.item p,.item-content,.item-content h1,.item-content h2,.item-content h3,.item-content h4,.item-content h5,.item-content h6,.item-content p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.item{color:inherit;text-decoration:none}a.item:focus,a.item:hover{text-decoration:none}.item-complex,a.item.item-complex,button.item.item-complex{padding:0}.item-complex .item-content,.item-radio .item-content{position:relative;z-index:2;padding:16px 49px 16px 16px;border:none;background-color:#fff}a.item-content{display:block;color:inherit;text-decoration:none}.item-body h1,.item-body h2,.item-body h3,.item-body h4,.item-body h5,.item-body h6,.item-body p,.item-complex.item-text-wrap,.item-complex.item-text-wrap .item-content,.item-complex.item-text-wrap h1,.item-complex.item-text-wrap h2,.item-complex.item-text-wrap h3,.item-complex.item-text-wrap h4,.item-complex.item-text-wrap h5,.item-complex.item-text-wrap h6,.item-complex.item-text-wrap p,.item-text-wrap,.item-text-wrap .item,.item-text-wrap .item-content,.item-text-wrap h1,.item-text-wrap h2,.item-text-wrap h3,.item-text-wrap h4,.item-text-wrap h5,.item-text-wrap h6,.item-text-wrap p{overflow:visible;white-space:normal}.item-complex.item-light>.item-content{border-color:#ddd;background-color:#fff;color:#444}.item-complex.item-light>.item-content.active,.item-complex.item-light>.item-content:active{border-color:#ccc;background-color:#fafafa}.item-complex.item-stable>.item-content{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.item-complex.item-stable>.item-content.active,.item-complex.item-stable>.item-content:active{border-color:#a2a2a2;background-color:#e5e5e5}.item-complex.item-positive>.item-content{border-color:#0c63ee;background-color:#387ef5;color:#fff}.item-complex.item-positive>.item-content.active,.item-complex.item-positive>.item-content:active{border-color:#0c63ee;background-color:#0c63ee}.item-complex.item-calm>.item-content{border-color:#0a9ec7;background-color:#11c1f3;color:#fff}.item-complex.item-calm>.item-content.active,.item-complex.item-calm>.item-content:active{border-color:#0a9ec7;background-color:#0a9ec7}.item-complex.item-assertive>.item-content{border-color:#e42012;background-color:#ef473a;color:#fff}.item-complex.item-assertive>.item-content.active,.item-complex.item-assertive>.item-content:active{border-color:#e42012;background-color:#e42012}.item-complex.item-balanced>.item-content{border-color:#28a54c;background-color:#33cd5f;color:#fff}.item-complex.item-balanced>.item-content.active,.item-complex.item-balanced>.item-content:active{border-color:#28a54c;background-color:#28a54c}.item-complex.item-energized>.item-content{border-color:#e6b400;background-color:#ffc900;color:#fff}.item-complex.item-energized>.item-content.active,.item-complex.item-energized>.item-content:active{border-color:#e6b400;background-color:#e6b400}.item-complex.item-royal>.item-content{border-color:#6b46e5;background-color:#886aea;color:#fff}.item-complex.item-royal>.item-content.active,.item-complex.item-royal>.item-content:active{border-color:#6b46e5;background-color:#6b46e5}.item-complex.item-dark>.item-content{border-color:#111;background-color:#444;color:#fff}.item-complex.item-dark>.item-content.active,.item-complex.item-dark>.item-content:active{border-color:#000;background-color:#262626}.item-icon-left .icon,.item-icon-right .icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}.item-icon-left .icon:before,.item-icon-right .icon:before{display:block;width:32px;text-align:center}.item .fill-icon{min-width:30px;min-height:30px;font-size:28px}.item-icon-left{padding-left:54px}.item-icon-left .icon{left:11px}.item-complex.item-icon-left{padding-left:0}.item-complex.item-icon-left .item-content{padding-left:54px}.item-icon-right{padding-right:54px}.item-icon-right .icon{right:11px}.item-complex.item-icon-right{padding-right:0}.item-complex.item-icon-right .item-content{padding-right:54px}.item-icon-left.item-icon-right .icon:first-child{right:auto}.item-icon-left .item-delete .icon,.item-icon-left.item-icon-right .icon:last-child{left:auto}.item-icon-left .icon-accessory,.item-icon-right .icon-accessory{color:#ccc;font-size:16px}.item-icon-left .icon-accessory{left:3px}.item-icon-right .icon-accessory{right:3px}.item-button-left{padding-left:72px}.item-button-left .item-content>.button,.item-button-left>.button{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:8px;left:11px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-button-left .item-content>.button .icon:before,.item-button-left>.button .icon:before{position:relative;left:auto;width:auto;line-height:31px}.item-button-left .item-content>.button>.button,.item-button-left>.button>.button{margin:0 2px;min-height:34px;font-size:18px;line-height:32px}.item-button-right,a.item.item-button-right,button.item.item-button-right{padding-right:80px}.item-button-right .item-content>.button,.item-button-right .item-content>.buttons,.item-button-right>.button,.item-button-right>.buttons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:8px;right:16px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-button-right .item-content>.button .icon:before,.item-button-right .item-content>.buttons .icon:before,.item-button-right>.button .icon:before,.item-button-right>.buttons .icon:before{position:relative;left:auto;width:auto;line-height:31px}.item-button-right .item-content>.button>.button,.item-button-right .item-content>.buttons>.button,.item-button-right>.button>.button,.item-button-right>.buttons>.button{margin:0 2px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{padding-left:72px;min-height:72px}.item-avatar .item-content .item-image,.item-avatar .item-content>img:first-child,.item-avatar .item-image,.item-avatar-left .item-content .item-image,.item-avatar-left .item-content>img:first-child,.item-avatar-left .item-image,.item-avatar-left>img:first-child,.item-avatar>img:first-child{position:absolute;top:16px;left:16px;max-width:40px;max-height:40px;width:100%;height:100%;border-radius:50%}.item-avatar-right,.item-avatar-right .item-content{padding-right:72px;min-height:72px}.item-avatar-right .item-content .item-image,.item-avatar-right .item-content>img:first-child,.item-avatar-right .item-image,.item-avatar-right>img:first-child{position:absolute;top:16px;right:16px;max-width:40px;max-height:40px;width:100%;height:100%;border-radius:50%}.item-thumbnail-left,.item-thumbnail-left .item-content{padding-top:8px;padding-left:106px;min-height:100px}.item-thumbnail-left .item-content .item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left .item-image,.item-thumbnail-left>img:first-child{position:absolute;top:10px;left:10px;max-width:80px;max-height:80px;width:100%;height:100%}.item-avatar-left.item-complex,.item-avatar.item-complex,.item-thumbnail-left.item-complex{padding-top:0;padding-left:0}.item-thumbnail-right,.item-thumbnail-right .item-content{padding-top:8px;padding-right:106px;min-height:100px}.item-thumbnail-right .item-content .item-image,.item-thumbnail-right .item-content>img:first-child,.item-thumbnail-right .item-image,.item-thumbnail-right>img:first-child{position:absolute;top:10px;right:10px;max-width:80px;max-height:80px;width:100%;height:100%}.item-avatar-right.item-complex,.item-thumbnail-right.item-complex{padding-top:0;padding-right:0}.item-image{padding:0;text-align:center}.item-image .list-img,.item-image img:first-child{width:100%;vertical-align:middle}.item-body{overflow:auto;padding:16px;text-overflow:inherit;white-space:normal}.item-body h1,.item-body h2,.item-body h3,.item-body h4,.item-body h5,.item-body h6,.item-body p{margin-top:16px;margin-bottom:16px}.item-divider{padding-top:8px;padding-bottom:8px;min-height:30px;background-color:#f5f5f5;color:#222;font-weight:500}.item-divider-ios,.platform-ios .item-divider-platform{padding-top:26px;text-transform:uppercase;font-weight:300;font-size:13px;background-color:#efeff4;color:#555}.item-divider-android,.platform-android .item-divider-platform{font-weight:300;font-size:13px}.item-note{float:right;color:#aaa;font-size:14px}.item-left-editable .item-content,.item-right-editable .item-content{-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;transition-property:transform}.item-left-editing.item-left-editable .item-content,.list-left-editing .item-left-editable .item-content{-webkit-transform:translate3d(50px,0,0);transform:translate3d(50px,0,0)}.item-remove-animate.ng-leave{-webkit-transition-duration:300ms;transition-duration:300ms}.item-remove-animate.ng-leave .item-content,.item-remove-animate.ng-leave:last-of-type{-webkit-transition-duration:300ms;transition-duration:300ms;-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;-webkit-transition-property:all;transition-property:all}.item-remove-animate.ng-leave.ng-leave-active .item-content{opacity:0;-webkit-transform:translate3d(-100%,0,0)!important;transform:translate3d(-100%,0,0)!important}.item-remove-animate.ng-leave.ng-leave-active:last-of-type{opacity:0}.item-remove-animate.ng-leave.ng-leave-active~ion-item:not(.ng-leave){-webkit-transform:translate3d(0,-webkit-calc(-100% + 1px),0);transform:translate3d(0,calc(-100% + 1px),0);-webkit-transition-duration:300ms;transition-duration:300ms;-webkit-transition-timing-function:cubic-bezier(.25,.81,.24,1);transition-timing-function:cubic-bezier(.25,.81,.24,1);-webkit-transition-property:all;transition-property:all}.item-left-edit{-webkit-transition:all ease-in-out 125ms;transition:all ease-in-out 125ms;position:absolute;top:0;left:0;z-index:0;width:50px;height:100%;line-height:100%;display:none;opacity:0;-webkit-transform:translate3d(-21px,0,0);transform:translate3d(-21px,0,0)}.item-left-edit .button{height:100%}.item-left-edit .button.icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%}.item-left-edit.visible{display:block}.item-left-edit.visible.active{opacity:1;-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}.list-left-editing .item-left-edit{-webkit-transition-delay:125ms;transition-delay:125ms}.item-delete .button.icon{color:#ef473a;font-size:24px}.item-delete .button.icon:hover{opacity:.7}.item-right-edit{-webkit-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;position:absolute;top:0;right:0;z-index:3;width:75px;height:100%;background:inherit;padding-left:20px;display:block;opacity:0;-webkit-transform:translate3d(75px,0,0);transform:translate3d(75px,0,0)}.item-right-edit .button{min-width:50px;height:100%}.item-right-edit .button.icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}.item-right-edit.visible{display:block}.item-right-edit.visible.active{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.item-reorder .button.icon{color:#444;font-size:32px}.item-reordering{position:absolute;left:0;top:0;z-index:9;width:100%;box-shadow:0 0 10px 0 #aaa}.item-reordering .item-reorder{z-index:9}.item-placeholder{opacity:.7}.item-options{position:absolute;top:0;right:0;z-index:1;height:100%}.item-options .button{height:100%;border:none;border-radius:0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}.item-options .button:before{margin:0 auto}.list{position:relative;padding-top:1px;padding-bottom:1px;padding-left:0;margin-bottom:20px}.list:last-child{margin-bottom:0}.list:last-child.card{margin-bottom:40px}.list-header{margin-top:20px;padding:5px 15px;background-color:transparent;color:#222;font-weight:700}.card.list .list-item{padding-right:1px;padding-left:1px}.card,.list-inset{overflow:hidden;margin:20px 10px;border-radius:2px;background-color:#fff}.card{padding-top:1px;padding-bottom:1px;box-shadow:0 1px 3px rgba(0,0,0,.3)}.card .item{border-left:0;border-right:0}.card .item:first-child{border-top:0}.card .item:last-child{border-bottom:0}.padding .card,.padding .list-inset{margin-left:0;margin-right:0}.card .item:first-child,.card .item:first-child .item-content,.list-inset .item:first-child,.list-inset .item:first-child .item-content,.padding>.list .item:first-child,.padding>.list .item:first-child .item-content{border-top-left-radius:2px;border-top-right-radius:2px}.card .item:last-child,.card .item:last-child .item-content,.list-inset .item:last-child,.list-inset .item:last-child .item-content,.padding>.list .item:last-child,.padding>.list .item:last-child .item-content{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.card .item:last-child,.list-inset .item:last-child{margin-bottom:-1px}.card .item,.list-inset .item,.padding-horizontal>.list .item,.padding>.list .item{margin-right:0;margin-left:0}.card .item.item-input input,.list-inset .item.item-input input,.padding-horizontal>.list .item.item-input input,.padding>.list .item.item-input input{padding-right:44px}.padding-left>.list .item{margin-left:0}.padding-right>.list .item{margin-right:0}.badge{background-color:transparent;color:#AAA;z-index:1;display:inline-block;padding:3px 8px;min-width:10px;border-radius:10px;vertical-align:baseline;text-align:center;white-space:nowrap;font-weight:700;font-size:14px;line-height:16px}.badge:empty{display:none}.badge.badge-light,.tabs .tab-item .badge.badge-light{background-color:#fff;color:#444}.badge.badge-stable,.tabs .tab-item .badge.badge-stable{background-color:#f8f8f8;color:#444}.badge.badge-positive,.tabs .tab-item .badge.badge-positive{background-color:#387ef5;color:#fff}.badge.badge-calm,.tabs .tab-item .badge.badge-calm{background-color:#11c1f3;color:#fff}.badge.badge-assertive,.tabs .tab-item .badge.badge-assertive{background-color:#ef473a;color:#fff}.badge.badge-balanced,.tabs .tab-item .badge.badge-balanced{background-color:#33cd5f;color:#fff}.badge.badge-energized,.tabs .tab-item .badge.badge-energized{background-color:#ffc900;color:#fff}.badge.badge-royal,.tabs .tab-item .badge.badge-royal{background-color:#886aea;color:#fff}.badge.badge-dark,.tabs .tab-item .badge.badge-dark{background-color:#444;color:#fff}.button .badge{position:relative;top:-1px}.slider{position:relative;visibility:hidden;overflow:hidden}.slider-slides{position:relative;height:100%}.slider-slide{position:relative;display:block;float:left;width:100%;height:100%;vertical-align:top}.slider-slide-image>img{width:100%}.slider-pager{position:absolute;bottom:20px;z-index:1;width:100%;height:15px;text-align:center}.slider-pager .slider-pager-page{display:inline-block;margin:0 3px;width:15px;color:#000;text-decoration:none;opacity:.3}.slider-pager .slider-pager-page.active{-webkit-transition:opacity .4s ease-in;transition:opacity .4s ease-in;opacity:1}.scroll-refresher{position:absolute;top:-60px;right:0;left:0;overflow:hidden;margin:auto;height:60px}.scroll-refresher .ionic-refresher-content{position:absolute;bottom:15px;left:0;width:100%;color:#666;text-align:center;font-size:30px}.scroll-refresher .ionic-refresher-content .text-pulling,.scroll-refresher .ionic-refresher-content .text-refreshing{font-size:16px;line-height:16px}.scroll-refresher .ionic-refresher-content.ionic-refresher-with-text{bottom:10px}.scroll-refresher .icon-pulling,.scroll-refresher .icon-refreshing{width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.scroll-refresher .icon-pulling{-webkit-animation-name:refresh-spin-back;animation-name:refresh-spin-back;-webkit-animation-duration:200ms;animation-duration:200ms;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:none;animation-fill-mode:none;-webkit-transform:translate3d(0,0,0) rotate(0deg);transform:translate3d(0,0,0) rotate(0deg)}.scroll-refresher .icon-refreshing,.scroll-refresher .text-refreshing{display:none}.scroll-refresher .icon-refreshing{-webkit-animation-duration:1.5s;animation-duration:1.5s}.scroll-refresher.active .icon-pulling:not(.pulling-rotation-disabled){-webkit-animation-name:refresh-spin;animation-name:refresh-spin;-webkit-transform:translate3d(0,0,0) rotate(-180deg);transform:translate3d(0,0,0) rotate(-180deg)}.scroll-refresher.active.refreshing{-webkit-transition:transform .2s;transition:transform .2s;-webkit-transform:scale(1,1);transform:scale(1,1)}.scroll-refresher.active.refreshing .icon-pulling,.scroll-refresher.active.refreshing .text-pulling{display:none}.scroll-refresher.active.refreshing .icon-refreshing,.scroll-refresher.active.refreshing .text-refreshing{display:block}.scroll-refresher.active.refreshing.refreshing-tail{-webkit-transform:scale(0,0);transform:scale(0,0)}.overflow-scroll>.scroll{-webkit-overflow-scrolling:touch;width:100%}.overflow-scroll>.scroll.overscroll{position:fixed}@-webkit-keyframes refresh-spin{0%{-webkit-transform:translate3d(0,0,0) rotate(0)}100%{-webkit-transform:translate3d(0,0,0) rotate(180deg)}}@keyframes refresh-spin{0%{transform:translate3d(0,0,0) rotate(0)}100%{transform:translate3d(0,0,0) rotate(180deg)}}@-webkit-keyframes refresh-spin-back{0%{-webkit-transform:translate3d(0,0,0) rotate(180deg)}100%{-webkit-transform:translate3d(0,0,0) rotate(0)}}@keyframes refresh-spin-back{0%{transform:translate3d(0,0,0) rotate(180deg)}100%{transform:translate3d(0,0,0) rotate(0)}}.spinner{stroke:#444;fill:#444}.spinner svg{width:28px;height:28px}.spinner.spinner-light{stroke:#fff;fill:#fff}.spinner.spinner-stable{stroke:#f8f8f8;fill:#f8f8f8}.spinner.spinner-positive{stroke:#387ef5;fill:#387ef5}.spinner.spinner-calm{stroke:#11c1f3;fill:#11c1f3}.spinner.spinner-balanced{stroke:#33cd5f;fill:#33cd5f}.spinner.spinner-assertive{stroke:#ef473a;fill:#ef473a}.spinner.spinner-energized{stroke:#ffc900;fill:#ffc900}.spinner.spinner-royal{stroke:#886aea;fill:#886aea}.spinner.spinner-dark{stroke:#444;fill:#444}.spinner-android{stroke:#4b8bf4}.spinner-ios,.spinner-ios-small{stroke:#69717d}.spinner-spiral .stop1{stop-color:#fff;stop-opacity:0}.spinner-spiral.spinner-light .stop1{stop-color:#444}.spinner-spiral.spinner-light .stop2{stop-color:#fff}.spinner-spiral.spinner-stable .stop2{stop-color:#f8f8f8}.spinner-spiral.spinner-positive .stop2{stop-color:#387ef5}.spinner-spiral.spinner-calm .stop2{stop-color:#11c1f3}.spinner-spiral.spinner-balanced .stop2{stop-color:#33cd5f}.spinner-spiral.spinner-assertive .stop2{stop-color:#ef473a}.spinner-spiral.spinner-energized .stop2{stop-color:#ffc900}.spinner-spiral.spinner-royal .stop2{stop-color:#886aea}.spinner-spiral.spinner-dark .stop2{stop-color:#444}form{margin:0 0 1.42857}legend{display:block;margin-bottom:1.42857;padding:0;width:100%;border:1px solid #ddd;color:#444;font-size:21px;line-height:2.85714}legend small{color:#f8f8f8;font-size:1.07143}button,input,label,select,textarea{font-weight:400;font-size:14px;line-height:1.42857}button,input,select,textarea{font-family:"Helvetica Neue",Roboto,"Segoe UI",sans-serif}.item-input{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:relative;overflow:hidden;padding:6px 0 5px 16px}.item-input input{-webkit-border-radius:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 220px;-moz-box-flex:1;-moz-flex:1 220px;-ms-flex:1 220px;flex:1 220px;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;padding-right:24px;background-color:transparent}.item-input .button .icon{-webkit-box-flex:0;-webkit-flex:0 0 24px;-moz-box-flex:0;-moz-flex:0 0 24px;-ms-flex:0 0 24px;flex:0 0 24px;position:static;display:inline-block;height:auto;text-align:center;font-size:16px}.item-input .button-bar{-webkit-border-radius:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 0 220px;-moz-box-flex:1;-moz-flex:1 0 220px;-ms-flex:1 0 220px;flex:1 0 220px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.item-input .icon{min-width:14px}.platform-windowsphone .item-input input{flex-shrink:1}.item-input-inset{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:relative;overflow:hidden;padding:10.67px}.item-input-wrapper{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1 0;-moz-box-flex:1;-moz-flex:1 0;-ms-flex:1 0;flex:1 0;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-border-radius:4px;border-radius:4px;padding-right:8px;padding-left:8px;background:#eee}.item-input-inset .item-input-wrapper input{padding-left:4px;height:29px;background:0 0;line-height:18px}.item-input-wrapper~.button{margin-left:10.67px}.input-label{display:table;padding:7px 10px 7px 0;max-width:200px;width:35%;color:#444;font-size:16px}.placeholder-icon{color:#aaa}.placeholder-icon:first-child{padding-right:6px}.placeholder-icon:last-child{padding-left:6px}.item-stacked-label{display:block;background-color:transparent;box-shadow:none}.item-stacked-label .icon,.item-stacked-label .input-label{display:inline-block;padding:4px 0 0;vertical-align:middle}.item-stacked-label input,.item-stacked-label textarea{-webkit-border-radius:2px;border-radius:2px;padding:4px 8px 3px 0;border:none;background-color:#fff}.item-stacked-label input{overflow:hidden;height:46px}.item-floating-label{display:block;background-color:transparent;box-shadow:none}.item-floating-label .input-label{position:relative;padding:5px 0 0;opacity:0;top:10px;-webkit-transition:opacity .15s ease-in,top .2s linear;transition:opacity .15s ease-in,top .2s linear}.item-floating-label .input-label.has-input{opacity:1;top:0;-webkit-transition:opacity .15s ease-in,top .2s linear;transition:opacity .15s ease-in,top .2s linear}input[type=search],input[type=text],input[type=password],input[type=datetime],input[type=datetime-local],input[type=date],input[type=month],input[type=time],input[type=week],input[type=number],input[type=email],input[type=url],input[type=tel],input[type=color],textarea{display:block;padding-top:2px;padding-left:0;height:34px;color:#111;vertical-align:middle;font-size:14px;line-height:16px}.platform-android input[type=datetime-local],.platform-android input[type=date],.platform-android input[type=month],.platform-android input[type=time],.platform-android input[type=week],.platform-ios input[type=datetime-local],.platform-ios input[type=date],.platform-ios input[type=month],.platform-ios input[type=time],.platform-ios input[type=week]{padding-top:8px}.item-input input,.item-input textarea{width:100%}textarea{padding-left:0}textarea::-moz-placeholder{color:#aaa}textarea:-ms-input-placeholder{color:#aaa}textarea::-webkit-input-placeholder{color:#aaa;text-indent:-3px}textarea{height:auto}input[type=search],input[type=text],input[type=password],input[type=datetime],input[type=datetime-local],input[type=date],input[type=month],input[type=time],input[type=week],input[type=number],input[type=email],input[type=url],input[type=tel],input[type=color],textarea{border:0}input[type=radio],input[type=checkbox]{margin:0;line-height:normal}.item-input input[type=button],.item-input input[type=reset],.item-input input[type=submit],.item-input input[type=radio],.item-input input[type=checkbox],.item-input input[type=file],.item-input input[type=image]{width:auto}input[type=file]{line-height:34px}.cloned-text-input+input,.cloned-text-input+textarea,.previous-input-focus{position:absolute!important;left:-9999px;width:200px}input::-moz-placeholder,textarea::-moz-placeholder{color:#aaa}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#aaa}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#aaa;text-indent:0}input[disabled],input[readonly]:not(.cloned-text-input),select[disabled],select[readonly],textarea[disabled],textarea[readonly]:not(.cloned-text-input){background-color:#f8f8f8;cursor:not-allowed}input[type=radio][disabled],input[type=radio][readonly],input[type=checkbox][disabled],input[type=checkbox][readonly]{background-color:transparent}.checkbox{position:relative;display:inline-block;padding:7px;cursor:pointer}.checkbox .checkbox-icon:before,.checkbox input:before{border-color:#ddd}.checkbox input:checked+.checkbox-icon:before,.checkbox input:checked:before{background:#387ef5;border-color:#387ef5}.checkbox-light .checkbox-icon:before,.checkbox-light input:before{border-color:#ddd}.checkbox-light input:checked+.checkbox-icon:before,.checkbox-light input:checked:before{background:#ddd;border-color:#ddd}.checkbox-stable .checkbox-icon:before,.checkbox-stable input:before{border-color:#b2b2b2}.checkbox-stable input:checked+.checkbox-icon:before,.checkbox-stable input:checked:before{background:#b2b2b2;border-color:#b2b2b2}.checkbox-positive .checkbox-icon:before,.checkbox-positive input:before{border-color:#387ef5}.checkbox-positive input:checked+.checkbox-icon:before,.checkbox-positive input:checked:before{background:#387ef5;border-color:#387ef5}.checkbox-calm .checkbox-icon:before,.checkbox-calm input:before{border-color:#11c1f3}.checkbox-calm input:checked+.checkbox-icon:before,.checkbox-calm input:checked:before{background:#11c1f3;border-color:#11c1f3}.checkbox-assertive .checkbox-icon:before,.checkbox-assertive input:before{border-color:#ef473a}.checkbox-assertive input:checked+.checkbox-icon:before,.checkbox-assertive input:checked:before{background:#ef473a;border-color:#ef473a}.checkbox-balanced .checkbox-icon:before,.checkbox-balanced input:before{border-color:#33cd5f}.checkbox-balanced input:checked+.checkbox-icon:before,.checkbox-balanced input:checked:before{background:#33cd5f;border-color:#33cd5f}.checkbox-energized .checkbox-icon:before,.checkbox-energized input:before{border-color:#ffc900}.checkbox-energized input:checked+.checkbox-icon:before,.checkbox-energized input:checked:before{background:#ffc900;border-color:#ffc900}.checkbox-royal .checkbox-icon:before,.checkbox-royal input:before{border-color:#886aea}.checkbox-royal input:checked+.checkbox-icon:before,.checkbox-royal input:checked:before{background:#886aea;border-color:#886aea}.checkbox-dark .checkbox-icon:before,.checkbox-dark input:before{border-color:#444}.checkbox-dark input:checked+.checkbox-icon:before,.checkbox-dark input:checked:before{background:#444;border-color:#444}.checkbox input:disabled+.checkbox-icon:before,.checkbox input:disabled:before{border-color:#ddd}.checkbox input:disabled:checked+.checkbox-icon:before,.checkbox input:disabled:checked:before{background:#ddd}.checkbox.checkbox-input-hidden input{display:none!important}.checkbox input,.checkbox-icon{position:relative;width:28px;height:28px;display:block;border:0;background:0 0;cursor:pointer;-webkit-appearance:none}.checkbox input:before,.checkbox-icon:before{display:table;width:100%;height:100%;border-width:1px;border-style:solid;border-radius:28px;background:#fff;content:' ';-webkit-transition:background-color 20ms ease-in-out;transition:background-color 20ms ease-in-out}.checkbox input:checked:before,input:checked+.checkbox-icon:before{border-width:2px}.checkbox input:after,.checkbox-icon:after{-webkit-transition:opacity .05s ease-in-out;transition:opacity .05s ease-in-out;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);position:absolute;top:33%;left:25%;display:table;width:14px;height:6px;border:1px solid #fff;border-top:0;border-right:0;content:' ';opacity:0}.checkbox-square .checkbox-icon:before,.checkbox-square input:before,.platform-android .checkbox-platform .checkbox-icon:before,.platform-android .checkbox-platform input:before{border-radius:2px;width:72%;height:72%;margin-top:14%;margin-left:14%;border-width:2px}.checkbox-square .checkbox-icon:after,.checkbox-square input:after,.platform-android .checkbox-platform .checkbox-icon:after,.platform-android .checkbox-platform input:after{border-width:2px;top:19%;left:25%;width:13px;height:7px}.grade-c .checkbox input:after,.grade-c .checkbox-icon:after{-webkit-transform:rotate(0);transform:rotate(0);top:3px;left:4px;border:none;color:#fff;content:'\2713';font-weight:700;font-size:20px}.checkbox input:checked:after,input:checked+.checkbox-icon:after{opacity:1}.item-checkbox{padding-left:60px}.item-checkbox.active{box-shadow:none}.item-checkbox .checkbox{position:absolute;top:50%;right:8px;left:8px;z-index:3;margin-top:-21px}.item-checkbox.item-checkbox-right{padding-right:60px;padding-left:16px}.item-checkbox-right .checkbox input,.item-checkbox-right .checkbox-icon{float:right}.item-toggle{pointer-events:none}.toggle{position:relative;display:inline-block;pointer-events:auto;margin:-5px;padding:5px}.toggle input:checked+.track{border-color:#4cd964;background-color:#4cd964}.toggle.dragging .handle{background-color:#f2f2f2!important}.toggle.toggle-light input:checked+.track{border-color:#ddd;background-color:#ddd}.toggle.toggle-stable input:checked+.track{border-color:#b2b2b2;background-color:#b2b2b2}.toggle.toggle-positive input:checked+.track{border-color:#387ef5;background-color:#387ef5}.toggle.toggle-calm input:checked+.track{border-color:#11c1f3;background-color:#11c1f3}.toggle.toggle-assertive input:checked+.track{border-color:#ef473a;background-color:#ef473a}.toggle.toggle-balanced input:checked+.track{border-color:#33cd5f;background-color:#33cd5f}.toggle.toggle-energized input:checked+.track{border-color:#ffc900;background-color:#ffc900}.toggle.toggle-royal input:checked+.track{border-color:#886aea;background-color:#886aea}.toggle.toggle-dark input:checked+.track{border-color:#444;background-color:#444}.toggle input{display:none}.toggle .track{-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:background-color,border;transition-property:background-color,border;display:inline-block;box-sizing:border-box;width:51px;height:31px;border:2px solid #e6e6e6;border-radius:20px;background-color:#fff;content:' ';cursor:pointer;pointer-events:none}.platform-android4_2 .toggle .track{-webkit-background-clip:padding-box}.toggle .handle{-webkit-transition:.3s cubic-bezier(0,1.1,1,1.1);transition:.3s cubic-bezier(0,1.1,1,1.1);-webkit-transition-property:background-color,transform;transition-property:background-color,transform;position:absolute;display:block;width:27px;height:27px;border-radius:27px;background-color:#fff;top:7px;left:7px;box-shadow:0 2px 7px rgba(0,0,0,.35),0 1px 1px rgba(0,0,0,.15)}.toggle .handle:before{position:absolute;top:-4px;left:-21.5px;padding:18.5px 34px;content:" "}.toggle input:checked+.track .handle{-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0);background-color:#fff}.item-toggle.active{box-shadow:none}.item-toggle,.item-toggle.item-complex .item-content{padding-right:99px}.item-toggle.item-complex{padding-right:0}.item-toggle .toggle{position:absolute;top:10px;right:16px;z-index:3}.toggle input:disabled+.track{opacity:.6}.toggle-small .track{border:0;width:34px;height:15px;background:#9e9e9e}.toggle-small input:checked+.track{background:rgba(0,150,137,.5)}.toggle-small .handle{top:2px;left:4px;width:21px;height:21px;box-shadow:0 2px 5px rgba(0,0,0,.25)}.toggle-small input:checked+.track .handle{-webkit-transform:translate3d(16px,0,0);transform:translate3d(16px,0,0);background:#009689}.toggle-small.item-toggle .toggle{top:19px}.toggle-small .toggle-light input:checked+.track{background-color:rgba(221,221,221,.5)}.toggle-small .toggle-light input:checked+.track .handle{background-color:#ddd}.toggle-small .toggle-stable input:checked+.track{background-color:rgba(178,178,178,.5)}.toggle-small .toggle-stable input:checked+.track .handle{background-color:#b2b2b2}.toggle-small .toggle-positive input:checked+.track{background-color:rgba(56,126,245,.5)}.toggle-small .toggle-positive input:checked+.track .handle{background-color:#387ef5}.toggle-small .toggle-calm input:checked+.track{background-color:rgba(17,193,243,.5)}.toggle-small .toggle-calm input:checked+.track .handle{background-color:#11c1f3}.toggle-small .toggle-assertive input:checked+.track{background-color:rgba(239,71,58,.5)}.toggle-small .toggle-assertive input:checked+.track .handle{background-color:#ef473a}.toggle-small .toggle-balanced input:checked+.track{background-color:rgba(51,205,95,.5)}.toggle-small .toggle-balanced input:checked+.track .handle{background-color:#33cd5f}.toggle-small .toggle-energized input:checked+.track{background-color:rgba(255,201,0,.5)}.toggle-small .toggle-energized input:checked+.track .handle{background-color:#ffc900}.toggle-small .toggle-royal input:checked+.track{background-color:rgba(136,106,234,.5)}.toggle-small .toggle-royal input:checked+.track .handle{background-color:#886aea}.toggle-small .toggle-dark input:checked+.track{background-color:rgba(68,68,68,.5)}.toggle-small .toggle-dark input:checked+.track .handle{background-color:#444}.item-radio{padding:0}.item-radio:hover{cursor:pointer}.item-radio .item-content{padding-right:64px}.item-radio .radio-icon{position:absolute;top:0;right:0;z-index:3;visibility:hidden;padding:14px;height:100%;font-size:24px}.item-radio input{position:absolute;left:-9999px}.item-radio input:checked~.item-content{background:#f7f7f7}.item-radio input:checked~.radio-icon{visibility:visible}.platform-android.grade-b .item-radio,.platform-android.grade-c .item-radio{-webkit-animation:androidCheckedbugfix infinite 1s}@-webkit-keyframes androidCheckedbugfix{from,to{padding:0}}.range input{overflow:hidden;margin-top:5px;margin-bottom:5px;padding-right:2px;padding-left:1px;width:auto;height:43px;outline:0;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0,#ccc),color-stop(100%,#ccc)) center no-repeat;background:linear-gradient(to right,#ccc 0,#ccc 100%) center no-repeat;background-size:99% 2px;-webkit-appearance:none}.range input::-webkit-slider-thumb{position:relative;width:28px;height:28px;border-radius:50%;background-color:#fff;box-shadow:0 0 2px rgba(0,0,0,.3),0 3px 5px rgba(0,0,0,.2);cursor:pointer;-webkit-appearance:none;border:0}.range input::-webkit-slider-thumb:before{position:absolute;top:13px;left:-2001px;width:2000px;height:2px;background:#444;content:' '}.range input::-webkit-slider-thumb:after{position:absolute;top:-15px;left:-15px;padding:30px;content:' '}.range input::-ms-track{background:0 0;border-color:transparent;border-width:11px 0 16px;color:transparent;margin-top:20px}.range input::-ms-thumb{width:28px;height:28px;border-radius:50%;background-color:#fff;border-color:#fff;box-shadow:0 0 2px rgba(0,0,0,.3),0 3px 5px rgba(0,0,0,.2);margin-left:1px;margin-right:1px;outline:0}.range input::-ms-fill-lower{height:2px;background:#444}.range input::-ms-fill-upper{height:2px;background:#ccc}.range{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;padding:2px 11px}.range.range-light input::-webkit-slider-thumb:before{background:#ddd}.range.range-light input::-ms-fill-lower{background:#ddd}.range.range-stable input::-webkit-slider-thumb:before{background:#b2b2b2}.range.range-stable input::-ms-fill-lower{background:#b2b2b2}.range.range-positive input::-webkit-slider-thumb:before{background:#387ef5}.range.range-positive input::-ms-fill-lower{background:#387ef5}.range.range-calm input::-webkit-slider-thumb:before{background:#11c1f3}.range.range-calm input::-ms-fill-lower{background:#11c1f3}.range.range-balanced input::-webkit-slider-thumb:before{background:#33cd5f}.range.range-balanced input::-ms-fill-lower{background:#33cd5f}.range.range-assertive input::-webkit-slider-thumb:before{background:#ef473a}.range.range-assertive input::-ms-fill-lower{background:#ef473a}.range.range-energized input::-webkit-slider-thumb:before{background:#ffc900}.range.range-energized input::-ms-fill-lower{background:#ffc900}.range.range-royal input::-webkit-slider-thumb:before{background:#886aea}.range.range-royal input::-ms-fill-lower{background:#886aea}.range.range-dark input::-webkit-slider-thumb:before{background:#444}.range.range-dark input::-ms-fill-lower{background:#444}.range .icon{-webkit-box-flex:0;-webkit-flex:0;-moz-box-flex:0;-moz-flex:0;-ms-flex:0;flex:0;display:block;min-width:24px;text-align:center;font-size:24px}.range input{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;margin-right:10px;margin-left:10px}.range-label{-webkit-box-flex:0;-webkit-flex:0 0 auto;-moz-box-flex:0;-moz-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:block;white-space:nowrap}.range-label:first-child{padding-left:5px}.range input+.range-label{padding-right:5px;padding-left:0}.platform-windowsphone .range input{height:auto}.item-select{position:relative}.item-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;bottom:0;right:0;padding:0 48px 0 16px;max-width:65%;border:none;background:#fff;color:#333;text-indent:.01px;text-overflow:'';white-space:nowrap;font-size:14px;cursor:pointer;direction:rtl}.item-select select::-ms-expand{display:none}.item-select option{direction:ltr}.item-select:after{position:absolute;top:50%;right:16px;margin-top:-3px;width:0;height:0;border-top:5px solid;border-right:5px solid transparent;border-left:5px solid transparent;color:#999;content:"";pointer-events:none}.item-select.item-light select{background:#fff;color:#444}.item-select.item-stable select{background:#f8f8f8;color:#444}.item-select.item-stable .input-label,.item-select.item-stable:after{color:#656565}.item-select.item-positive select{background:#387ef5;color:#fff}.item-select.item-positive .input-label,.item-select.item-positive:after{color:#fff}.item-select.item-calm select{background:#11c1f3;color:#fff}.item-select.item-calm .input-label,.item-select.item-calm:after{color:#fff}.item-select.item-assertive select{background:#ef473a;color:#fff}.item-select.item-assertive .input-label,.item-select.item-assertive:after{color:#fff}.item-select.item-balanced select{background:#33cd5f;color:#fff}.item-select.item-balanced .input-label,.item-select.item-balanced:after{color:#fff}.item-select.item-energized select{background:#ffc900;color:#fff}.item-select.item-energized .input-label,.item-select.item-energized:after{color:#fff}.item-select.item-royal select{background:#886aea;color:#fff}.item-select.item-royal .input-label,.item-select.item-royal:after{color:#fff}.item-select.item-dark select{background:#444;color:#fff}.item-select.item-dark .input-label,.item-select.item-dark:after{color:#fff}select[multiple],select[size]{height:auto}progress{display:block;margin:15px auto;width:100%}.button{border-color:#b2b2b2;background-color:#f8f8f8;color:#444;position:relative;display:inline-block;margin:0;padding:0 12px;min-width:52px;min-height:47px;border-width:1px;border-style:solid;border-radius:2px;vertical-align:top;text-align:center;text-overflow:ellipsis;font-size:16px;line-height:42px;cursor:pointer}.button:hover{color:#444;text-decoration:none}.button.activated,.button.active{border-color:#a2a2a2;background-color:#e5e5e5;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.button:after{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;content:' '}.button .icon{vertical-align:top;pointer-events:none}.button .icon:before,.button.icon-left:before,.button.icon-right:before,.button.icon:before{display:inline-block;padding:0 0 1px;vertical-align:inherit;font-size:24px;line-height:41px;pointer-events:none}.button.icon-left:before{float:left;padding-right:.2em;padding-left:0}.button.icon-right:before{float:right;padding-right:0;padding-left:.2em}.button.button-block,.button.button-full{margin-top:10px;margin-bottom:10px}.button.button-light{border-color:#ddd;background-color:#fff;color:#444}.button.button-light:hover{color:#444;text-decoration:none}.button.button-light.activated,.button.button-light.active{border-color:#ccc;background-color:#fafafa;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.button.button-light.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#ddd}.button.button-light.button-icon{border-color:transparent;background:0 0}.button.button-light.button-outline{border-color:#ddd;background:0 0;color:#ddd}.button.button-light.button-outline.activated,.button.button-light.button-outline.active{background-color:#ddd;box-shadow:none;color:#fff}.button.button-stable{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.button.button-stable:hover{color:#444;text-decoration:none}.button.button-stable.activated,.button.button-stable.active{border-color:#a2a2a2;background-color:#e5e5e5;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.button.button-stable.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#b2b2b2}.button.button-stable.button-icon{border-color:transparent;background:0 0}.button.button-stable.button-outline{border-color:#b2b2b2;background:0 0;color:#b2b2b2}.button.button-stable.button-outline.activated,.button.button-stable.button-outline.active{background-color:#b2b2b2;box-shadow:none;color:#fff}.button.button-positive{border-color:#0c63ee;background-color:#387ef5;color:#fff}.button.button-positive:hover{color:#fff;text-decoration:none}.button.button-positive.activated,.button.button-positive.active{border-color:#0c63ee;background-color:#0c63ee;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.button.button-positive.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#387ef5}.button.button-positive.button-icon{border-color:transparent;background:0 0}.button.button-positive.button-outline{border-color:#387ef5;background:0 0;color:#387ef5}.button.button-positive.button-outline.activated,.button.button-positive.button-outline.active{background-color:#387ef5;box-shadow:none;color:#fff}.button.button-calm{border-color:#0a9ec7;background-color:#11c1f3;color:#fff}.button.button-calm:hover{color:#fff;text-decoration:none}.button.button-calm.activated,.button.button-calm.active{border-color:#0a9ec7;background-color:#0a9ec7;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.button.button-calm.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#11c1f3}.button.button-calm.button-icon{border-color:transparent;background:0 0}.button.button-calm.button-outline{border-color:#11c1f3;background:0 0;color:#11c1f3}.button.button-calm.button-outline.activated,.button.button-calm.button-outline.active{background-color:#11c1f3;box-shadow:none;color:#fff}.button.button-assertive{border-color:#e42012;background-color:#ef473a;color:#fff}.button.button-assertive:hover{color:#fff;text-decoration:none}.button.button-assertive.activated,.button.button-assertive.active{border-color:#e42012;background-color:#e42012;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.button.button-assertive.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#ef473a}.button.button-assertive.button-icon{border-color:transparent;background:0 0}.button.button-assertive.button-outline{border-color:#ef473a;background:0 0;color:#ef473a}.button.button-assertive.button-outline.activated,.button.button-assertive.button-outline.active{background-color:#ef473a;box-shadow:none;color:#fff}.button.button-balanced{border-color:#28a54c;background-color:#33cd5f;color:#fff}.button.button-balanced:hover{color:#fff;text-decoration:none}.button.button-balanced.activated,.button.button-balanced.active{border-color:#28a54c;background-color:#28a54c;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.button.button-balanced.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#33cd5f}.button.button-balanced.button-icon{border-color:transparent;background:0 0}.button.button-balanced.button-outline{border-color:#33cd5f;background:0 0;color:#33cd5f}.button.button-balanced.button-outline.activated,.button.button-balanced.button-outline.active{background-color:#33cd5f;box-shadow:none;color:#fff}.button.button-energized{border-color:#e6b400;background-color:#ffc900;color:#fff}.button.button-energized:hover{color:#fff;text-decoration:none}.button.button-energized.activated,.button.button-energized.active{border-color:#e6b400;background-color:#e6b400;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.button.button-energized.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#ffc900}.button.button-energized.button-icon{border-color:transparent;background:0 0}.button.button-energized.button-outline{border-color:#ffc900;background:0 0;color:#ffc900}.button.button-energized.button-outline.activated,.button.button-energized.button-outline.active{background-color:#ffc900;box-shadow:none;color:#fff}.button.button-royal{border-color:#6b46e5;background-color:#886aea;color:#fff}.button.button-royal:hover{color:#fff;text-decoration:none}.button.button-royal.activated,.button.button-royal.active{border-color:#6b46e5;background-color:#6b46e5;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.button.button-royal.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#886aea}.button.button-royal.button-icon{border-color:transparent;background:0 0}.button.button-royal.button-outline{border-color:#886aea;background:0 0;color:#886aea}.button.button-royal.button-outline.activated,.button.button-royal.button-outline.active{background-color:#886aea;box-shadow:none;color:#fff}.button.button-dark{border-color:#111;background-color:#444;color:#fff}.button.button-dark:hover{color:#fff;text-decoration:none}.button.button-dark.activated,.button.button-dark.active{border-color:#000;background-color:#262626;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.button.button-dark.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#444}.button.button-dark.button-icon{border-color:transparent;background:0 0}.button.button-dark.button-outline{border-color:#444;background:0 0;color:#444}.button.button-dark.button-outline.activated,.button.button-dark.button-outline.active{background-color:#444;box-shadow:none;color:#fff}.button-small{padding:2px 4px 1px;min-width:28px;min-height:30px;font-size:12px;line-height:26px}.button-small .icon:before,.button-small.icon-left:before,.button-small.icon-right:before,.button-small.icon:before{font-size:16px;line-height:19px;margin-top:3px}.button-large{padding:0 16px;min-width:68px;min-height:59px;font-size:20px;line-height:53px}.button-large .icon:before,.button-large.icon-left:before,.button-large.icon-right:before,.button-large.icon:before{padding-bottom:2px;font-size:32px;line-height:51px}.button-icon{-webkit-transition:opacity .1s;transition:opacity .1s;padding:0 6px;min-width:initial;border-color:transparent;background:0 0}.button-icon.button.activated,.button-icon.button.active{border-color:transparent;background:0 0;box-shadow:none;opacity:.3}.button-icon .icon:before,.button-icon.icon:before{font-size:32px}.button-clear{-webkit-transition:opacity .1s;transition:opacity .1s;padding:0 6px;max-height:42px;border-color:transparent;background:0 0;box-shadow:none}.button-clear.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#b2b2b2}.button-clear.button-icon{border-color:transparent;background:0 0}.button-clear.activated,.button-clear.active{opacity:.3}.button-outline{-webkit-transition:opacity .1s;transition:opacity .1s;background:0 0;box-shadow:none}.button-outline.button-outline{border-color:#b2b2b2;background:0 0;color:#b2b2b2}.button-outline.button-outline.activated,.button-outline.button-outline.active{background-color:#b2b2b2;box-shadow:none;color:#fff}.padding>.button.button-block:first-child{margin-top:0}.button-block{display:block;clear:both}.button-block:after{clear:both}.button-full,.button-full>.button{display:block;margin-right:0;margin-left:0;border-right-width:0;border-left-width:0;border-radius:0}.button-full>button.button,button.button-block,button.button-full,input.button.button-block{width:100%}a.button{text-decoration:none}a.button .icon:before,a.button.icon-left:before,a.button.icon-right:before,a.button.icon:before{margin-top:2px}.button.disabled,.button[disabled]{opacity:.4;cursor:default!important;pointer-events:none}.button-bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;width:100%}.button-bar.button-bar-inline{display:block;width:auto}.button-bar.button-bar-inline:after,.button-bar.button-bar-inline:before{display:table;content:"";line-height:0}.button-bar.button-bar-inline:after{clear:both}.button-bar.button-bar-inline>.button{width:auto;display:inline-block;float:left}.button-bar>.button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;padding:0 16px;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.button-bar>.button .icon:before,.button-bar>.button:before{line-height:44px}.button-bar>.button:first-child{border-radius:2px 0 0 2px}.button-bar>.button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}.button-bar>.button-small .icon:before,.button-bar>.button-small:before{line-height:28px}.row{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;padding:5px;width:100%}.row-wrap{-webkit-flex-wrap:wrap;-moz-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.row-no-padding,.row-no-padding>.col{padding:0}.row+.row{margin-top:-5px;padding-top:0}.col{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;padding:5px;width:100%}.row-top{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;-moz-align-items:flex-start;align-items:flex-start}.row-bottom{-webkit-box-align:end;-ms-flex-align:end;-webkit-align-items:flex-end;-moz-align-items:flex-end;align-items:flex-end}.row-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}.row-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;align-items:stretch}.row-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;-webkit-align-items:baseline;-moz-align-items:baseline;align-items:baseline}.col-top{-webkit-align-self:flex-start;-moz-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.col-bottom{-webkit-align-self:flex-end;-moz-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.col-center{-webkit-align-self:center;-moz-align-self:center;-ms-flex-item-align:center;align-self:center}.col-offset-10{margin-left:10%}.col-offset-20{margin-left:20%}.col-offset-25{margin-left:25%}.col-offset-33,.col-offset-34{margin-left:33.3333%}.col-offset-50{margin-left:50%}.col-offset-66,.col-offset-67{margin-left:66.6666%}.col-offset-75{margin-left:75%}.col-offset-80{margin-left:80%}.col-offset-90{margin-left:90%}.col-10{-webkit-box-flex:0;-webkit-flex:0 0 10%;-moz-box-flex:0;-moz-flex:0 0 10%;-ms-flex:0 0 10%;flex:0 0 10%;max-width:10%}.col-20{-webkit-box-flex:0;-webkit-flex:0 0 20%;-moz-box-flex:0;-moz-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.col-25{-webkit-box-flex:0;-webkit-flex:0 0 25%;-moz-box-flex:0;-moz-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-33,.col-34{-webkit-box-flex:0;-webkit-flex:0 0 33.3333%;-moz-box-flex:0;-moz-flex:0 0 33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%;max-width:33.3333%}.col-50{-webkit-box-flex:0;-webkit-flex:0 0 50%;-moz-box-flex:0;-moz-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-66,.col-67{-webkit-box-flex:0;-webkit-flex:0 0 66.6666%;-moz-box-flex:0;-moz-flex:0 0 66.6666%;-ms-flex:0 0 66.6666%;flex:0 0 66.6666%;max-width:66.6666%}.col-75{-webkit-box-flex:0;-webkit-flex:0 0 75%;-moz-box-flex:0;-moz-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-80{-webkit-box-flex:0;-webkit-flex:0 0 80%;-moz-box-flex:0;-moz-flex:0 0 80%;-ms-flex:0 0 80%;flex:0 0 80%;max-width:80%}.col-90{-webkit-box-flex:0;-webkit-flex:0 0 90%;-moz-box-flex:0;-moz-flex:0 0 90%;-ms-flex:0 0 90%;flex:0 0 90%;max-width:90%}@media (max-width:567px){.responsive-sm{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-sm .col,.responsive-sm .col-10,.responsive-sm .col-20,.responsive-sm .col-25,.responsive-sm .col-33,.responsive-sm .col-34,.responsive-sm .col-50,.responsive-sm .col-66,.responsive-sm .col-67,.responsive-sm .col-75,.responsive-sm .col-80,.responsive-sm .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}@media (max-width:767px){.responsive-md{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-md .col,.responsive-md .col-10,.responsive-md .col-20,.responsive-md .col-25,.responsive-md .col-33,.responsive-md .col-34,.responsive-md .col-50,.responsive-md .col-66,.responsive-md .col-67,.responsive-md .col-75,.responsive-md .col-80,.responsive-md .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}@media (max-width:1023px){.responsive-lg{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-lg .col,.responsive-lg .col-10,.responsive-lg .col-20,.responsive-lg .col-25,.responsive-lg .col-33,.responsive-lg .col-34,.responsive-lg .col-50,.responsive-lg .col-66,.responsive-lg .col-67,.responsive-lg .col-75,.responsive-lg .col-80,.responsive-lg .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}.hide{display:none}.opacity-hide{opacity:0}.grade-b .opacity-hide,.grade-c .opacity-hide{opacity:1;display:none}.show{display:block}.opacity-show{opacity:1}.invisible{visibility:hidden}.keyboard-open .hide-on-keyboard-open{display:none}.keyboard-open .bar-footer.hide-on-keyboard-open+.pane .has-footer,.keyboard-open .tabs.hide-on-keyboard-open+.pane .has-tabs{bottom:0}.inline{display:inline-block}.disable-pointer-events{pointer-events:none}.enable-pointer-events{pointer-events:auto}.disable-user-behavior{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;-ms-touch-action:none;-ms-content-zooming:none}.click-block{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;z-index:99999;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);overflow:hidden}.click-block-hide{-webkit-transform:translate3d(-9999px,0,0);transform:translate3d(-9999px,0,0)}.no-resize{resize:none}.block{display:block;clear:both}.block:after{display:block;visibility:hidden;clear:both;height:0;content:"."}.full-image{width:100%}.clearfix:after,.clearfix:before{display:table;content:"";line-height:0}.clearfix:after{clear:both}.padding{padding:10px}.padding-top,.padding-vertical{padding-top:10px}.padding-horizontal,.padding-right{padding-right:10px}.padding-bottom,.padding-vertical{padding-bottom:10px}.padding-horizontal,.padding-left{padding-left:10px}.iframe-wrapper{position:fixed;-webkit-overflow-scrolling:touch;overflow:scroll}.iframe-wrapper iframe{height:100%;width:100%}.rounded{border-radius:4px}.light,a.light{color:#fff}.light-bg{background-color:#fff}.light-border{border-color:#ddd}.stable,a.stable{color:#f8f8f8}.stable-bg{background-color:#f8f8f8}.stable-border{border-color:#b2b2b2}.positive,a.positive{color:#387ef5}.positive-bg{background-color:#387ef5}.positive-border{border-color:#0c63ee}.calm,a.calm{color:#11c1f3}.calm-bg{background-color:#11c1f3}.calm-border{border-color:#0a9ec7}.assertive,a.assertive{color:#ef473a}.assertive-bg{background-color:#ef473a}.assertive-border{border-color:#e42012}.balanced,a.balanced{color:#33cd5f}.balanced-bg{background-color:#33cd5f}.balanced-border{border-color:#28a54c}.energized,a.energized{color:#ffc900}.energized-bg{background-color:#ffc900}.energized-border{border-color:#e6b400}.royal,a.royal{color:#886aea}.royal-bg{background-color:#886aea}.royal-border{border-color:#6b46e5}.dark,a.dark{color:#444}.dark-bg{background-color:#444}.dark-border{border-color:#111}[collection-repeat]{left:0!important;top:0!important;position:absolute!important;z-index:1}.collection-repeat-container{position:relative;z-index:1}.collection-repeat-after-container{z-index:0;display:block}.collection-repeat-after-container.horizontal{display:inline-block}.ng-cloak,.ng-hide:not(.ng-hide-animate),.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader){height:64px}.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper{margin-top:19px!important}.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader)>*{margin-top:20px}.platform-ios.platform-cordova:not(.fullscreen) .bar-subheader,.platform-ios.platform-cordova:not(.fullscreen) .has-header,.platform-ios.platform-cordova:not(.fullscreen) .tabs-top>.tabs,.platform-ios.platform-cordova:not(.fullscreen) .tabs.tabs-top{top:64px}.platform-ios.platform-cordova:not(.fullscreen) .has-subheader{top:108px}.platform-ios.platform-cordova:not(.fullscreen) .has-header.has-tabs-top{top:113px}.platform-ios.platform-cordova:not(.fullscreen) .has-header.has-subheader.has-tabs-top{top:157px}.platform-ios.platform-cordova .popover .bar-header:not(.bar-subheader){height:44px}.platform-ios.platform-cordova .popover .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper{margin-top:-1px}.platform-ios.platform-cordova .popover .bar-header:not(.bar-subheader)>*{margin-top:0}.platform-ios.platform-cordova .popover .bar-subheader,.platform-ios.platform-cordova .popover .has-header{top:44px}.platform-ios.platform-cordova .popover .has-subheader{top:88px}.platform-ios.platform-cordova.status-bar-hide{margin-bottom:20px}@media (orientation:landscape){.platform-ios.platform-browser.platform-ipad{position:fixed}}.platform-c:not(.enable-transitions) *{-webkit-transition:none!important;transition:none!important}.slide-in-up{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.slide-in-up.ng-enter,.slide-in-up>.ng-enter{-webkit-transition:all cubic-bezier(.1,.7,.1,1) 400ms;transition:all cubic-bezier(.1,.7,.1,1) 400ms}.slide-in-up.ng-enter-active,.slide-in-up>.ng-enter-active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-in-up.ng-leave,.slide-in-up>.ng-leave{-webkit-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms}@-webkit-keyframes scaleOut{from{-webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.8);opacity:0}}@keyframes scaleOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}@-webkit-keyframes superScaleIn{from{-webkit-transform:scale(1.2);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@keyframes superScaleIn{from{transform:scale(1.2);opacity:0}to{transform:scale(1);opacity:1}}[nav-view-transition=ios] [nav-view=entering],[nav-view-transition=ios] [nav-view=leaving]{-webkit-transition-duration:500ms;transition-duration:500ms;-webkit-transition-timing-function:cubic-bezier(.36,.66,.04,1);transition-timing-function:cubic-bezier(.36,.66,.04,1);-webkit-transition-property:opacity,-webkit-transform,box-shadow;transition-property:opacity,transform,box-shadow}[nav-view-transition=ios][nav-view-direction=forward],[nav-view-transition=ios][nav-view-direction=back]{background-color:#000}[nav-view-transition=ios] [nav-view=active],[nav-view-transition=ios][nav-view-direction=forward] [nav-view=entering],[nav-view-transition=ios][nav-view-direction=back] [nav-view=leaving]{z-index:3}[nav-view-transition=ios][nav-view-direction=forward] [nav-view=leaving],[nav-view-transition=ios][nav-view-direction=back] [nav-view=entering]{z-index:2}[nav-bar-transition=ios] .back-text,[nav-bar-transition=ios] .buttons,[nav-bar-transition=ios] .title{-webkit-transition-duration:500ms;transition-duration:500ms;-webkit-transition-timing-function:cubic-bezier(.36,.66,.04,1);transition-timing-function:cubic-bezier(.36,.66,.04,1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,transform}[nav-bar-transition=ios] [nav-bar=entering],[nav-bar-transition=ios] [nav-bar=active]{z-index:10}[nav-bar-transition=ios] [nav-bar=entering] .bar,[nav-bar-transition=ios] [nav-bar=active] .bar{background:0 0}[nav-bar-transition=ios] [nav-bar=cached]{display:block}[nav-bar-transition=ios] [nav-bar=cached] .header-item{display:none}[nav-view-transition=android] [nav-view=entering],[nav-view-transition=android] [nav-view=leaving]{-webkit-transition-duration:200ms;transition-duration:200ms;-webkit-transition-timing-function:cubic-bezier(.4,.6,.2,1);transition-timing-function:cubic-bezier(.4,.6,.2,1);-webkit-transition-property:-webkit-transform;transition-property:transform}[nav-view-transition=android] [nav-view=active],[nav-view-transition=android][nav-view-direction=forward] [nav-view=entering],[nav-view-transition=android][nav-view-direction=back] [nav-view=leaving]{z-index:3}[nav-view-transition=android][nav-view-direction=forward] [nav-view=leaving],[nav-view-transition=android][nav-view-direction=back] [nav-view=entering]{z-index:2}[nav-bar-transition=android] .buttons,[nav-bar-transition=android] .title{-webkit-transition-duration:200ms;transition-duration:200ms;-webkit-transition-timing-function:cubic-bezier(.4,.6,.2,1);transition-timing-function:cubic-bezier(.4,.6,.2,1);-webkit-transition-property:opacity;transition-property:opacity}[nav-bar-transition=android] [nav-bar=entering],[nav-bar-transition=android] [nav-bar=active]{z-index:10}[nav-bar-transition=android] [nav-bar=entering] .bar,[nav-bar-transition=android] [nav-bar=active] .bar{background:0 0}[nav-bar-transition=android] [nav-bar=cached]{display:block}[nav-bar-transition=android] [nav-bar=cached] .header-item{display:none}[nav-swipe=fast] .back-text,[nav-swipe=fast] .buttons,[nav-swipe=fast] .title,[nav-swipe=fast] [nav-view]{-webkit-transition-duration:50ms;transition-duration:50ms;-webkit-transition-timing-function:linear;transition-timing-function:linear}[nav-swipe=slow] .back-text,[nav-swipe=slow] .buttons,[nav-swipe=slow] .title,[nav-swipe=slow] [nav-view]{-webkit-transition-duration:160ms;transition-duration:160ms;-webkit-transition-timing-function:linear;transition-timing-function:linear}[nav-bar=cached],[nav-view=cached]{display:none}[nav-view=stage]{opacity:0;-webkit-transition-duration:0;transition-duration:0}[nav-bar=stage] .back-text,[nav-bar=stage] .buttons,[nav-bar=stage] .title{position:absolute;opacity:0;-webkit-transition-duration:0s;transition-duration:0s} \ No newline at end of file diff --git a/1.1.0/fonts/ionicons.eot b/1.1.0/fonts/ionicons.eot new file mode 100644 index 0000000000000000000000000000000000000000..92a3f20a39267ae7f45144f412a995a663730360 GIT binary patch literal 120724 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

@FHUiu&=5w(f-3S1h*&)&h2 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 + + + + +Created by FontForge 20120731 at Thu Dec 4 09:51:48 2014 + By Adam Bradley +Created by Adam Bradley with FontForge 2.0 (http://fontforge.sf.net) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/1.1.0/fonts/ionicons.ttf b/1.1.0/fonts/ionicons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c4e4632486d863337c1c73478ddb3c20726c55a0 GIT binary patch literal 188508 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

8E#xmG!w{$tO5=<$!EHPzZXo}IBc1_sqA&q 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 literal 0 HcmV?d00001 diff --git a/1.1.0/fonts/ionicons.woff b/1.1.0/fonts/ionicons.woff new file mode 100644 index 0000000000000000000000000000000000000000..5f3a14e0a5ca6d20cc4fac708979e807b0d51bc3 GIT binary patch literal 67904 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

  • F(S(gioucm()OHA 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 E0LEz`i~s-t literal 0 HcmV?d00001 diff --git a/1.1.0/ionic-v1.1.0.zip b/1.1.0/ionic-v1.1.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..303187ff1f7d0a2b792f3b72e58b81608eb8a1ec GIT binary patch literal 6108866 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
  • e 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 z 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�JikhOEO12Ppz6uxecRC1-^+caQM^vmUy)wv3 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%0D8xV%->f6COG0PV<} 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

    w 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%0AjN>ZiX1N%bN4WFFS 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

    qkP4gmeVT;TaCs;<$saC0-YYAt4T{%4Gy9 zDN?n*_idgb(2zVLivwit=VHGd4<$ok!8RnD|wApKMM%B?B*wpWqQ-#rm6uOVKGDR?1+;a?rx* zx0jBmr}EmN+6v)NjGV47%uau@eJE>+^6ZA5ZR(jZZ!)>G5haOREW{2I+>A0DFXvG% zzu4M1>~mp8#GuqLt+OPaHEWcm=FPmRKYd;*u^2oxn-$m4EnL5iMN99vHgEc6GS}`c z@0v8OX`4&c4+MGEPBq_8Q?&ydU84>d8S(zQl~-i6X8}r#U;$DnH0;>HG=*c1+Qasf zbGBH*OgNN8Fo&A=L2Kfjcg-L7(Y zxsy93hM&8#+z(>avm#sTm%Ud*t*F+D|)=E7W3ApCE^0pkZixjOVD(najyT3=mhxM7aBC?$u~c9$TlYGP2}nbdlH@PCSJ; z!43xZT$i0Vn4*XJT_t7l9hHUi4nK06?|A8eO{6+;hGluHI0NlL!(2edhU;bUWo6GO zmoQ{?-t|t7vIM5~Ck!BN$(l#hRy@%+J|}LZ_U&D6=iZVrp^8o*c3rzU?2r5aGos9H z1=_CrH;*%DaX9}Pdv-|XE3?ib7!yWFT>4Bn#>HD9BjC5rCacDg%@mdlez&@HcdLKg zJt`VAg$@fg0a!tz+9*3cY44nq45=z7bcwIZ*lCs!-hq~}UP9zfd9jhC=rQ|#u)3v0 zB4;nvU*zx2y+FhwDsd1V{IUgHo!LxXgaF;#p5w;6iSl4qy(I0m9>dh`L*CFTMz=l1 ze#JKU{_C85xhG!M4mYpvrI)lfv;M}`qmIh+ zCI+J6CS-nOG7VIaNDhC+>XREY=LiE<9F216vy4Xs!-EPPNOD)80A!D3?x?vgg{<@P z{FRGfC*j9|baruh{+}+|w%gn7&n)b1Y_QBBBN(gx=|xE0+Kb&V&@4@HL-0`IG3+bz zmoIY5N1{snKkTebOlZU3+lIsUQOV^T12u$|cS7JIXjxIwP9d>3hvFv#F8#KNQ4Z`h?gHYE0(ySZ5EtG)04S+%&09PTNG z#k_OcQHJQ|vMP8qxoG`1?~d?`VO}-fbn`AtCm|azn{S$uEI9*J@PWak;?-*#yl8`c z5Jqs=%e7fnMmul-5urnz$mAmZ`jcEwy8JI{DA-Tlp$hd^@=16Va zLIBK8x@4%VHBR`2l&NGacX=vum;sq|-W1B~w8!Pf9ZMXR9HWvbx}#`MU(r_Cm`#w zsjx%C?rt;lh-)_qFY_I$2r_SSdIt3KHmnLFPX4#~B*C#1F6G5p5E9G@J6H6~+2q(N z+Q3G3pwXRHq19K}*1l8iy)e7Os|Xj202tbXT0git1S!@L=0|f-(qCoDBvk60T2%GR zT*D|jBNH}5u6M~OToQR|Vita=Vzsm-4i1+NHt|E<#IJ?ZOlBj45?)1Xc8+(sJY8mq zjrBA4?X@usjK|k<<0h(!+BOgGAkFJjE{qbWgDs&y;}H`5 zb&>zv@+vcmZp0h=pnN(*!hAB4f1tmfo05Z6qIQPG9c{1}Gb-&1OxYQVwv zMo-O}+c*uV?Fqt?Iu+<5@akY)b%ew18Um6pC-O^zFCc9-D1g-2t8eRO13q-FTC+8o zCvm3HNshMI$}Tz9o6ww~u93H}d=#*J#f;W@Hv|)6I@qdqW<~tp3gT}a6Fe?h%Cw`= zx>zovC1bK*T0L*wbT6sgL9L*3=(zVp6z2Bs<2~aX7DZiv!ryC z`ooxptQ1Mpt z@ZOYiWGyt7N41clLS1oJ!dcE8Ss5I@mZ5<#*X;#l4xqssbH?4+UO8DYl__Ucqr)}Y ztU#kmR%NE~^oypejaPmK9w#%5ZI|qBlN`H z`R(xFG&L-QzHNYn7H-HQ#R#Zk)}*C1JA)OgwPG8tOkC5XAia{U749*BYdbhtI@X6y z>Yrxh^?fH2GuKs_Sk6&ryHHbu05NPVD67@Fm;Z;!!grQ=zLECr| zzU5D^?qGfwQvJx+*b&YUO_gR`-|0`AHeJwZ1@ub(M>38yfSWB*jMEwT0G6+7ziEZH zP|K7}-ZbSWRK&uLIbzs#O7W+p8_(-a&%}aJz>g5QA8JP`G(2`dy11zpzDtHHCd1r3 zB6tJQAV46{HJgiz;nr?kKH|E1C`Tt;dXF>^&tOe$rABBlHOoKIxo#F9)F=aIQzMsp5_IngJTR?}l7 znupaH>Vvp9*bnhYEYAbmikZXJQuP$kOcMiZ`R?+)<@=98P3$v;Xw9po$B!T0`S!=h z%e=$}v;ERyXD#+V?LNQx;9j(c8EL!9tp_)MjCWt1^zQlXhf9CS0WqRPrf)oVnz$o_ zh%o}mZr?Lmzdb)quB`%hWS74|WG+K5=nux6k##CW6zP!HGQ$Z*W@N@&3zZ8wO2?yp z@Bc1>b`Cd}`HD!z&M%6rdt1B92XX<&ahDIZip$8ipp}_st5U8Nq_IL2hxh>>4E-1t zAduvlNn6CetPg=FdjCuexr)a(-GXF}@FpVS8TYH+1E6#sUHD{BzQh~&C`T(N1klHf zT><-n5&s_7v6Wnw^XGk{IKE=s=lYn!86y39i2K|T2`qRoix&)CF#*$Yjm&1<7X|Lc zeSn#Mw^>Fx_K10UpGF&FBg9;yFq84IFqedAY#aza&Ys^0$&wo?p|VO}zSuX8wFO0Y z1-G1Bu?n`9?6tOUH}9XS=`l-Fn)N1175@r4lqXRBCLxHmkgpzdc&{WVyyA-3+d*%0 zdvBEx#^yrl2rrrp3Dqrd6OkVB8_r%GhQNw2Z$@619QCvLn4AtW8@D7k@r)}^?3y)M zBto!1g(P#)P#9KQ)W$NZ$=?7rv^^a&Lr3Ok}p8R&Q4-gG)E~L>3Z4XvL<%;DN zLm~6y3yuz~G#|9kN%Kr2RqN^!tP^ob*E((EtnJQ#Nh@21Q0b|HNmMqO^S}!5B@CWV z3gY1`LU0HUr+jPM>WxFA+UZ`XKfM#L*u;2{Iy=+Ai>4EYqVa%Iww~3~cm+-7eZMA7 z-+ObDD-$LTMfy~hfo7Ze7mUaS0G3K~$sY`d6qni|Z0wQA!I?Jh;4yH?0XTbPoRR85 zZtLUbC*7BM8=xuUPjAK%ra%&&@IV}owNoICrAoIMxdXgF9EEQ|fBIZARkzfM6*8ku zTdaf|q{h6}WF;M&NP9UY!-imHMQI*wzE~l&)in`=zgBZCe9(%Qh8o(QkAM^>p{RE* zefl3^KDdH&cB|#@&`L?Iymg5EkC{vBdV)!wQ6)w<4HdIX1DKt&JIit#%F-#CRJWW{ z$J!*LtsNBOB!sl9G0Pz_fze+&?(T_iLfd){sSpGv^Zxa<*PD8Rr*PT0WPQwS1^m9S-^_P9C5 z;7auzm@88^jt=MuUyZ<2SA}Q0IsLry7Bke_yG`zjR@HK98$=u65P8-P)C%ow&`G3% zp}S`U_G51{$ZdQhy+#8|CSlQX-}>xW7lJ3pOihubo+q}=g?N7}8*(PW8*4`H?Szyo z7boqxZb$5Ejo!F26OWF`$e@aae-WxQf~!g*u8W`H(P=_6U)z&KXVdLV(@CN;HYZS( zm@o-44X215A-XSlNPEYo6TnF3tTdq+B!na#anOyrS<*GhA}Y~@qFiBlJ^YbRH3t>T z5)5M0NNH~YZXvl;)@aV9DdI26VPCfb^*=QJwv=kf^O2sU+`#`@#8s* zMH0E#kgT!GEQ$J5kuLklds7X<2Z1oFVo9Q*JZ`~GR%iBko`A;TCFc563l;2*x9|Jg zt<76uLW0A=?RgJ2BAKLl1f~Z2ID;9cT_=3F6+fLsDQMG$8x0GsvQGVFuZX4;M{kez z87R|Y%(J1S7~}2u-u_l{qYNAR`x+v)&E!@z+Mpnd99kOoU6it|I~_-rztN#3OH!TKHRA_<@F2^whdzvh&ANE*V=>@fjUn5Y)aI(x z^BQtjV}?H3R+fl1S_Ei} zcOMV^2=FgCD-Z22D~JybH*LlaIQ|&S?(0--u_1A`O_-iKCo2ZOnN~H5lkmYc@KwRF zd+|L#u9K(j6rDV?!U(lks^HUYbe(2`1xt!@Tv+JG5(V5$jh#f+c`CH7)5aS}3~Aa1 zhgG`^ht-L{V{C1}_P#k0k1LBu_d*Hye4KFV74!Uj(l9p@)-4MqWiVp4w7dR@{13JO zLIMOrD53j;n0ql=G?q_f2gCxjfoz-Wk!qZ3p)9 zCZrBkI$95z_eO@#Zt2gJKNum8ViAWygsM&vSCW7ekEk-SvWWTQ)OE~4rz~X_(eV`S zY@LNYkuiPe<4Ku5%o6+eE$!ouTqm}=?rza?JNOeE?-+Ap>e52)8cL^Ih*G(QR3@8N z=*O_gXph-f>eS!9eXEd&AU41C5A&`lE!-QX4gUAyX-XTXkb~r5kUwRQw_VTI%fAI{PUUV=?U7sgR21=-rN?(& z^foLmT)6+>@$!WWSDT@OvN%EXhGYoG6Wx?E2w#M87cLM;!)7={T^BSJ;p3#cSF4-W zmmY3dk^ivilpO1OuUtAJ2{$%OvI{sct2VPjXg3k!zw~s{@O*)If4ccRr>hs_FW0#r%4d?)#V3;C))E6#BgAeVdmcu> z;{CBqENzB&3<@W-WfPjyKo=G)>?~wW@qx8!WxVYP`m7cfERcy@I&myPlu3Sqr%WrtS(g8d$Q)OnCm=Df>FT@er3 z5UHpkroo9)Kg4wlxri%n3$o=Ktm6F*lo4nX1HAbu;grkHL4va6dnk6$vE67V1n;d{ zsU;a@J?FPaq<`gpt*tQ`XRJ8#xA-@ZR z(PF1@@d|N7h6nPJ^Dyfcb?@6Zatm#KF7!mc!ga}H+ZaTYOg~j?FW&4!bFi8a#m4Fc zZ8?mv3F$r6p$XMd;BgL&a3I+;EU`?t?fy*l=}@H+BV?+j^F)+?4du{bqaNcS*(0{F_Lj36-#1@vmO(tWE5t z5`F&6Jq!~cmJ96}zuP|k&CQcSi+Z!PWs8N?rfi(@j*4BLHY+8%UYq zu`ohsnNC^96n(Qh7hmJ0-9lVM(Y+Im^YT?;$r)qj69pTcWql{%pmu&Uzg)g*_m96k znF7?*zo~Z?<}@X<`#%$V3a`~(z~6&Bw~)?Tbk$REr*!vWP-nx~bxc*eYdv-cEFI?= zl7HXnENKI$v^Cc4yNG8T#VqtkF7U^t#R(x&5~`=)-?G%%*wyM;s8u@u(A))>jPkAx zyR#508PN=`g;m4yufsJmGdp)tmJ2o_ZZf*Y%qv1-8bQZ3q1`bg$;T4`xw;s0;?mKu zcinhDCOZ~hvP$=h#Jflhlyijp;ts-v_9&5zce=d|fi)I#uxj?&D8xA^bD)I&@@tWf z-FC3|!l3S_@lsJ`%&`r(P{Sm4^&Z;yQ)J`bU+OPEthk%&OnV{T9Ru2iVJBk3U_&>~ zqJ?xFgay#Z^IJMoekv5HBXP95=`7I6r^Y+tMPty}U_}u*l|gg4)y1t1DIvBQBQyr2 z?a|c-3~;WloU791cdnX^>e;;)yi8+;AP^Nf)z+wf(cI4(vlO@OaMYaJFi5-0SJ*YTJe!A%W?vdBtUFI-6Bq!*<@(Fqetv_6NI;$`GM}V_B-~ zxtL^YIQp^bPwF0J)$WEB&-zcs2bUHqqhcTG4JA@^7b@QJ2c*a^)%v#NfDPpT;QIaH zWf>D{b|KN;Hi4xD%uZZ&M=D+fx5M|fUC|fQIg~e9q~osEd5b+(=gB-i0Y#q-E{KtC zfGwa`*x}py&s$kvV+AG9CtGxjP{5imTnO8F+#B~Sa*}T_&(f@&(l|A;14JJIC0h7B&XPx518!c0S@G=hfeih}g_w?4F5$1XcW^72W|g&omS;Q> zQ`aiu9wzNaNPCrIG44WY+L9%-o_LnW)}!6cZ$Y>TkG^BP6COV%NR4FeomV#{Vw&`9 znfMZuotb@nZfI8PE1j zIz((ZR&A^M=>FcWKq)KHPT?Q6Vg7M6=st%`;O5gQ{OHBr>+U0Ez34u}wt4Nv#E0^; znfL-tiUQ4c-aW8PkKM(4OdRmhB+#%UhF!$Ci;-TZ)tmSLZMFxEGdLV`duWrMh3#D% zKPEoJhs<-Cw>m%J>EPE%WhXw}-Ta$!%ePv^<4-f646Tw-VQG77(0~%7K^%TJwFesb zxFz9vrv;DjW8L0v2nEDr$;JJxXHb-bVZ8Wfv2Q27eR#CHJ0wAcyOtO=`qrb-x1QZ3 zK=v?X5$zXcf3+Upip-R)hs(bz@CTCh?-0f!R&Kpy@37jfN9NS&$(F{Sb3nBop8pQd z7o25V55GG+obW&yXCLM1-tN*WwBIWh%&Rs4Rq9&>8{S=SbtlrU`E?#{w!Z%`I2g5? zdzevNTjl<__3eD;>!X3kG5+yjt5xpNTDxt&--6U{LW0}n$T5pwX6sqfYFq4yZyqWe z!052`?)+n(M2y1Li^p3#L!6fBDNP?%ncOU)dSF+&jo-c8_*ehX>KjJ-sRI_^Y~|rircHlbX<*lbiUeG=aKh z;uvn>)DU1IN|gpzji8!^RJgjqWFswj+~lR*Gt!2cAe=-g;<}T1q^XyLpHe)GxxvBC z#^BJ#wP4Qc**lKCP+Y;B_=lJ0Kb!v)Nh3da1S-~qTl^weGf&$W7Gf@7FU=DrEE-Cr zG9{MECgKe|(`eIHfTT~^9C_bgDV^})VDw6_1w&FuiQodJtG!S4DJRTeHueTPa|+Y~ zoiwDI{zx*7h7;c>)D#McSTvtyYe~SDfF+Bf(b9) zk^xdd8m{&(9mnfV=+SgcVh!wt{|yM_P@<@wr3*ud|20tG-6`BNPfnfDW(g6<{} zD8UE(+QxnS#JCT-04g<&=tZZRlH2;FF7K>x0f^fB#fT<0q4!c1_cXbj1LoI@{VL*6 z?uO8y&Mnd80VcB=Yl_11pp5~L=BWwV=?lV2 zv>S+70l^6EfNc0k-sF(Mt-}-mXHWBGk`6!tvDM*KzE0q2Yy!SoszRk`sA;f{bKkv5 zS32|cyz2Iw5vV~TT%K^%)?5FvOE-IBmt+zxCO->+8&F6z#k6)>DX|bn^x9X?rWwDf zllH=5LY&aoh(lqGGsFL$R7jUV<aOo>s7Oa@(JJ7Q3M(~1l+iA_1(MMkH;ofVRY@^a zw)%Qvl_K6yh4SUZ;x6@2*$MKGdc2Z^sMwf9q*chbg_44wyfJud;u33ZTyWBA&t6M} z(i9#OsEk(#(MnTilB}h!7IFktm?ToDi#DPdm2SSB2w@XcsH}ZBv6!SbDm5m(sXKQ$ zj*3l?=rjdGj&rp)Nubjd13z2{bXLI>_Z0ujwlt`2QFmC*0(N{>I$_2|E@X_y1YuC! z>b(>#on3e*Wk?jwk0%U)CCL)+QrM(Wg8jHSsx{V1Fjbbli&b&*>g>(KoU6*jLsTTf zM1N{5K28#ap3x+htC`5OBNm%Df-yN+C`~5u2+fg?-K}KmE=PmuI7zJL@JcIPD=2IK zmJlV%WFZr@iH|u=_?C4-IOpQGP9=Z%LnV`oT9LAm;uBd zFBAICq+FDnB;1Skh8+_V6ZNWcrXigB!yAx1u{HJ zbR~qFoluWI2$>rHA zACAwaMm!mSqrD@93a9x;vj_K*s^w*WX_WDFeH2;tmPU!IM;rIlSI@ngZ{7Q%0?WSD zEEE276&i4*XQ{2m538bsepxSEcHrUr&wU@6{rA7y|K#e_N12#8VDe_}H~(31KMaMS zG;)jX>1-o{{_TABPKW4p(FFn7WFh4CZnEGa;|a?1beyA+t1Nb?t~R3p??a;8b=r8Z zT>e;Fd3&69N!#l z6Fi`JD*If^VMcSEe=3j|->JUjuF#Cao#OF^&lwc?&6hk^5RL62>vt=Bwv1Q()Vc=fVeOUvO&68~eKv zEgKfBfym$Jw+z5Rd^i~-fKOt3+x7sZY0n_8d+>E7_LiT^lW(8;ntSTLzq|49g_6A1 zN*mwb-*|lYPUopMPu9=FBB7Nb!7Z@_v2&H5*t* z@0II!wY?lm-Q3^FD@j;QC9UO+nl~|^-ju5groa|GU5Lb?N;S~$OXA#B zh-D{F{HdDkB#s*BR$Z{8Yw$c2kt*?($b&-o`#6*C^3U>^ZFIXdmi^a^?5?1}&t2_2sM{0$i;< zu34WSo+vKFc!zSAvxKL3{SOw4wR$soY5U#uJ&g65!@zMPW#Tgu;_}daOaG@_dVa}) zgn>O&tTRJTbTeNteG>sWUEPVaGQ)J?hPlXA6JFFK^Z>0&2ZXsS@@=scIqhjFwQT3RZmn2j-WUeedN%! z%;$+nolKeTff}R;OQPI28&mD~xjV}KC_H;g^!*tFEo-N?+#TwbD>+|~m$#ug3?h&` z!yVNiziw+r?;cCqY;8W>gsqu(ZoIl#)?;stWRZ2dK6`CMC526&RYUKa;-GZ6I-^~^9&T5R(vF{5 zG`&2%2dD|GSmuqe5bk8kF1ASKzD;W7GrGwl!(F)pndVE2dv+}M)alvM`-(eljsw%; zEC8ZNQ)zK#`NhIueWX=Q#GsNFLuYtbIMlsn-fZx)Ev-Y7A?`NXWFzS|e2CK*+ve5- z9&YFm``6{c+Fq^|4)!5`u0gQPG-IQ_t!yaPB0~PG9R9MRHEI)S_amK7PkLPkw>>+? z{yqaAUZ7U6JKWAFZ||Gp+*o(&?9BdJ3vvejEb`N9!}IrZ6la(uOxbhUBTPsV$R*vP z!^8pc3+JueEK)(xw#pgM>UAxws}0U5tk)N$Vcj-&DvA#Fhg-S$qO*JKPH%r_=e!QI zl$RFX*~`ur-4G9|U=OwmS7LddfetS)4Dk|-oQpn(w?>INtH=p%FE|xjdR+^%d$vvL z`cq5W`?k1W7I#K@73f!xkMYb-R7r*U70+7$u9#b?epNB;bNf`GwxUIq`~`#c%$lWC zt*WiaGwSGdQ}}=wnb~<`JFcags@?0|PM?uG{2N#_QpX{F_Prbk}CD&Dw&0&n6fg#@3QA)EqqpV(AVKt4? zbS*mD9yi|?^+|eY)tpd%NHKmuG*9MU!pzvt8~Z@ZOA<7tjiNW+OGb}fp?k9nL!58s zeS4d*j_98NHFKpZ5EJwxJiU!DPSEwFi=)|DGB#jQ&SMJ7D8qi1sn1W-L^NPNDnc`= zrh8^G)pXnug)`!bYRHL#!EXTq48(3rBwU1s-`BeZEQ|-whe>6jhDM{8RD?sT_Hcvj zgEEeN((Ky_rbK}B6UED-K#B%dg@~$CsE1l2g1t&aU-k&MmS@R1RL-Gs+UJ#DfhR>0Y;J1J%aZVEiJD}yv}RM;Sh3FFP4?%}OfOf*Ldg5Dt9 z8U^8Hr>2Qhb7g9qz?6v&cxw7K2_3OrzZJ_bV8MeKg$30w;Va)=3|s1hXhgf`bf~q+ z2%)3K#l1YSd(8aGRMO6QYM=898K)M5EQ+6D*W<@VQM|K`5Ei%M1KHiU+it z!`Gy_ku8Yp(?{aHO7ZR;$TPJs*U)zGpUw9A)&4-B?0B7N!_OEG2U!s2W<(!LQ-nf% zrewo%)0;aInDw}dJ;oZ*r0BV5vyEfZ)|1(~EW;?PHHzIWawKq7EH*do;#xnVb&s_8 zJ^Q6!JL?0tiJFXVv!LaGtP@A;zVO}XPOH;T^r%B!65gfitVUv%0_XVqT+)pj>{9tF1qK0iN1Al~c0 z-q$VOpL-bHvh$I5=|joHOK=}j=yJ5M$!VXo+Hb&4hN&q35hFT_ecI@J(4YB3{sg-P`v!zJGE1yNw?oH`mjTpFX?!Z0*^L=hw%R)m7b7 zFJgJ{=>L21-Nx;IYYP6yn}h!x+hz8v>sjb0Zo0qw=erM|ym+wj1C)gG4PHb5_FMMy zF53@6|H&b5Uok=y_!-Z!zb`WiCrznI#7=ZC&~lwb(Uj>?Ms&(-C%4)@+2dX)Igpl4 z5stQ6Hl$mzc5#a_sU<0p%1SOiIQUOAFI|m-hZq(p7H8f-3tOcv%8{iEP<`#O@TYG~ z)>^J1^+(V){y|P=87-7)C}6mnVL_rX8xrg^#|P_aj|^Z2M=@%ZJz_WSI_zW1vbK)-ML@+!BEkFwg) zSJWA*`yy0ab@~}sT(FKWUw&?^ClEIQV+J@FY#yOz{qcAC+nR3PAIq!W{LaC)kEV7$ zta)OnZQ6X*zT0LtTV^O`a)0pzmiQ0`%9hWYIBp%w0vo%w9A>w$@6 zN=3`tkr{|~o~#k$4kX#%KWj1TJNo zo7rQ)g4{t}3n97~jXz&Cvn$0CPyPj`xV9}zv*1FoP4q|IXrU+HiAQ!8yWahn*FutF z;ZoL8zJ>B#_sP`ad9~vZh6obqVMk2XE~nRpx{M_h50hpSQ%Sg)UhAzusZC7*t)u4w zcwFS(9y<3K`IepD?R!VlUF{s&#MOIgtW{y=_{|}z$#nOIQKc(19Po)+;7e*T^byx* zW+YQ-mL%!|&#zteOGZeC0hw{~nltVWNuR`WP)u>iDe$?!Ci0WD&9!(I9&Sjs=7sHr zr$Ok#(B!>$PZiblsx!NnYl{vo9K8Ot-Fn4j;Sv#aEYCDXrF@e(~I9%og1p z?pKsgU)T7Y?7p%Bh{)n&z-)Qt))Hi8aL)tixXzb>_@%k?wY8jSFqCMX=vHMztPjLa zX;k_F*@R>H4aZO>qqHrVhoS)Hx0$jsS9aH6)1oSA!k{hfwgBDb%j(N|f+BvL$z_=X z^B|LKjAHq9u#NJv#XZf7UEM~VQ^F!9#S9p==x^hM~0{Gz>2C8w8oGQvHY-payUtr7YgD|EA88V$)D|xoj#xd>S1D$H?X4 zZ9$={&|1ueI7IE_e6H2+%G+!Rq_mu{&=<3QZqPy zbMc}%qtSbmD?kawB;&ci@bhg2&+~YY4VPhNN3f@(`J3`u4HENGTVjSevqFll>zE#qFu!!wyFP|tkLUgYe%AK^l?-l8WiGar- zTJoEwUH8+TEC4kd!pLuS&b+ZpqsKE0p@=zwE*Io--X-AS==EZ9aJ0LQS9Lv}WH5{$ z9&=e(q@gY->CIcge{aZ%35Q@~+b$qq7~XCKSU;2{6(d?*7BPd>v$*%YESqoJzHyc^ zVbvv?iR~PV>y0(Fbi3Tho!OKy)+7sT9=3pkdvgUs+z)TWu=K`(c1CDQNrF;{G9FAU z{O2*hw5`6e*QDb)lG|INLY+Z^r_~s*T+68{3Xenvin22LG>yc4?|&T4N4G|M{B!+! zPSPl5qyf39_;jv#Nv#SgMjr=o^=N0OA}U=mH}GOabi!=gdlI_J+0=3SS{M21Vmn7& zQa=VIt7swm_ZL@qf+<<{&olY~RTlqX;Bix{*MjHFW_Ruzo{PueS|qYT zhAL)a+X{yIrj$}qwM|XDl+dF(zEh;>I;)PCD#UQfe`lg3NjsEvj#FE-og93gaeKC% zir*#SI494hT@T<#0d&4{HPPN#hN0YoX_$`Iwgk3q)zk>T#72770z@Z++a=~FsqRFrFN73&)i*ye+_K=gL;O$vR)E z-7!E3GVavQcm?5#?`z7EspJmtyX@ylI z(^%I$nDD0K?gKdbob(yfJzU0o|H8h1(YX@@qg}zMYTL@hJPLp+wer`HjKRm|p*ca> z+8c1y)fcpu!KGZ&yR+kRfHGAZ-*MBJVlu|#%eox6SbdYW)_7%0dHGOQkk@2jq#UK2 z9F0$(?LRwyzK(m%p2tk%4YdrE-f}`1l@Z`;pEK}fecuIWZ+u$|A2Hq$lVloUeWsbp z;W8V|a6cFtBRte4~!9q+0bsmL{$euUaPDxNQ);xAvQOX&|`VQ+MaxO|MBSdqdRv;{QKv-KmPmZyGKtZ#Jh`gzR_J> ze)h_bsww^Z%Nb{=-%O9>9+{+t6fj%6HVB#qhtrXaezL=2FY15>{yLq`u-#UldPB53 zp%-N*qhe7|Kh>Ww2(Dk3WXj$gfjy}r()8o{P02LI9m6I`1m6D0(jqB*R)Bubgqa>_ zhjB)J-ZCgufXZY-)@18SBI}XlD-CN}Ok#sbCSXEZN901!n`ob!d(}5k%%2c`gW3M> z@vENmz!%BcsKJSl{nCCe!dtHsoIY?V5RM#pmJiAvLpoZEZv4vv1Vr-p3X zrPRP<%FZvSpe1uqYP~E*SI61N>Lh~SI6}&$Qfv%UxS{w$@NkcTeYYf!?68p2Bs;k4 zD@QY}DG}*wnBv9rg^_lcgX(eIDMgl*!w$JY(!mTxCRkzc~mp^8f^c|Cuz!E zf2`pc6SqCF_k(i>-#Y#ZJY?*pX_i$8eA&z;cG*eB{(VzH%|A(DA<@5hZl zJs>itVMr5=)-;46&EW2v!{hhayc2=XUf&@bp4+k^79daRhE*L~ zJ0ec+Cc*}fxPx)Jc)!18@l9-0EzE@}39VC&2Pb}U9c#!=p4a-sc^@9IH7&bIN8_`f z`D8Yc;bgfj2?EibBQru%B@GEvG^)SKzTVz@tD$kAhDYLpK!MX43$Wd_en>0?r!fV$ zN9sGfbUy*xNPf$wSg^%J;8oz3cEV7pq8lWwH=pP+ovuzeQ&u?iHCCF%gD^+;f%Ms#6usg&Lw}tCIXw^rla?le=p6jAK&%p7o~(AcL^bt)I0h z3WH@r@(KYz*J?%8Q5HF$e#tCfX(XV|u3IwEejE{ynp#+@WIP<(R~OS2dO(j^fC$pH#Si_g`Y*DvJJ!mM01p?{^~N;4V~^VK{oHYi;bNS&13Rj0oZ+Yo+Iq z@ZtNtu^!N8D0{tlrFFFSm(Tw9|B6myzs{F@hg3UbU{WnPrq+a)W$5a~7PDQ&t>Dm@ zn&{_x>Bkf>`3>_fg@%ffbBKmaq(VcwszPn0$s}AidjWFqdRdQ4S&sn3-{%?73gIU;%M6a=j#-j?Fue5S51f@yPG1_&TP=HY>Rc26qCHLYXwy zpBin1-hCZTWMwoY;)wa{Z%8gGl;~m$GKTS2zZM5ayf&=vrVjb#(Pf9@Ee# zvz#{Z1JkWg;hgG~3}3wAz8S87x0TMnekOu1VnmPFaOI1qN4s&rVZW7hpWNtd92uZK zrERxQOK#ZktTsMG(UHh8%SRyE<36Ys${BD1g2_|`zrc^DH;Ak|M#eI(H#c;Uc236O z3qzPaJ~ikCnzO@%tj&=jsGuAjj>)`k#6qsTDL+I;dYjqV>}~mxZ|BN4tXeDiWco{# z%qNlGPER8ho+o-vk`XO@dvHJ~&c3`|57FIIRcq}ksK=T2_Q4x?6bf+Ra3;&m^wxF; z!h8q3iTI?AGYriNS)sEBhMsez93o~dbfdf6cA&?$7J|a>*nG#*5=&#$94-D&KWd@y z$Trlyt%*x7J1kSQ4_DVvU*uRs&&miIWd)uW43)3k~Gq6nPH|vnvcXx(o34p zTqV2z@Q0tCtVoaRK7Vre|2*0F@$Lp35a?P0N+V0UZNyB8pyUZowkCyEWZ?>@e&rii zfAc+|r0vTHyZjydElDF|9j(x8`jT|{;}9^+9YS)=vveLH^VS?sSURS(aauEI8~z?> zOb!oS+@8vHRHd!Jcj`!m3Z5+COT3ZgZpsWI7LD(Mm(vz}I_`p=F}ZTpAOZKxi;MLR zut_?N%CC~es31>rd#p=>ELwc-%A}39E%N`wpj&|2u`gk#E%@*t6P@{XtIJFbhH%y7 zY*)vM4?fbbpFZ%;1P!8JXw6fDZRbw*TCU5jx71u+^R>ntK`?W_M%4gVC+3IFvE<%~ zjRd#rY29=@LIiHIj#xFlBORUXwC?s{5`G2LvQ(7yXW~X+qN;S&-9TRQp{80Cr;^Xq z^b9oh;7=y^1W#p;$?1`|ECpVy%nNl~PvU9G=>}d)Cfxt_rzdyMD0BPK134fnVtk-= zP%d6R*mZPrn+gSbQ4ycUil{pp-R`lomJuCAg^jsO=1?DqxV?Vg=V}gmy7aIuh0ieHpETbBYDg& zDFGxt;T5qLi8rMwN`{r;L3GV<>yn;=2%&R>1(|G-ll# z=Q)F&uQF@78ia>%tzcm1cylQhUf4S<(Bd9?{J1*ipbTGlJ~Y?9BEx;@vwS)>+O?X7 zs?_OJwW|%_%DCIGs6HQJWjH!XPQh_K<}e){LSL%9IeIrJTfc`tX&dwT^XIU9gZ)lCJGU%^X{A zj_Oo8U`;fSFI4Sh{mqltgQ1)vsmm`Tolo6NsDPH*%widh18ZrpQnRxSi!%(MxY75T zt`_I0&#`XU;&=>>n$`isyqd#ao{#d}HYdDuQ5OfkM@z2T!jTFyA^MphApU-lgro&N zx0oNtL@xN-x&(*eHQub?E--92Vp4ClGlb?1KYqs%vIww-c6Gi`ep&G$yhm$RMkb&e zRq1Ds^UrH`uGxYZ&0%Rid~yZ?0$Cy!Cr58BL#oX6ow;X@cK2oh$k5G^FzsxzlU5+9 zfVdmWt7$p!?A!jHkH@S3(?6BfIv!IX!+Rn0FSOdbbqWr6(`l?4DC{AAEm%H>jXCDE zXo_%ZqL-Zk`DIEvBl3BT57c60oN*j;>O|rgmUa*aJSEbcjOfX?4+;2MHxf-3ZEW5* z8~5U0Hr>5#QuP@~62y)qnaD{yDxeR5ZSxohzvEsIz2g$H0vA*10=uAA)pqv7jY_<= zjW+p)UJj_G0XZYG{T<<_VXdmvZIgoDutfDsNP@lub~|ZWz@a(eJQtRH7283(bk!R=pFFzri15AeJ?Q>6Uo7#=1ECAyNem!B)>k}Mv6~N@&ovvSVeX_RS zm6N1P(a`&Y>G7)xOV#uNBd!}Gri*(Q3bB>Ogj?Dn{|60z_DBA?HG2J;f7??iLV5D0 zKYO2rfL;dy1!t>RFu5=A0#9GZzt;^6Z^l8g@3ms3gP3C*X1@2gy{T>|+E}>Fv~5Ak z%LtkwAWwrCBe!v1XdU)fN^hVE?fEpjM6s%h1K!uj`23&DozTsW-0!?#WOLcd?4ji6?m6Ifo+_|;c_Wod)2zR zX>B`quj-{0p3L81zbXTlRDdbBpCalBmL@sIb|V=yjLci4xAzBXC8S*JK3pKl*E>F~ zR6B_|b3)Cz;8M~35jI*?(THnj%>dhWvt_~46v;hbwG;ck+2nbM=(c`dX%gA&?Kzl@ zh{z=c9W@XH4i-b`*R&|HakB<0AhGT)fI|dr_39)QvvO{8*QL)voFvn+PLEFPKb{_O zv`LDWW$4EPLheFRMDOB5;6ecrSXF?0;Fa3Hf=gGh4PIY4i&voO;GMuIbpl^8J%x=o zEG--G1<}(lL>|6mSovq5blgA`)B;RIXT{WcU>O0UTAXDLgGn=ejzw_jQdQ#G)zVko z_~^b8Kl1wEfEys!mGbXMYK|wPGVRl&<&cdT94D5}etsOk6L+U0y6}%dq6m@EW{A#B zUfa`Pm3Ed^E4D_(wKNi?Z11Su&^`P6Y1_Scj*#?=>7MQMKI!fBnpzWmg=*aBi~fe+@{T*VBS;!7G6hfook=K7zBvAqbw@; z$hIR9W?iRX)Erw8J4}Gm)-=NVl;&O9orf)1wn^6O$zffgmt5~Y?evfnoYPK+SDEB% z&MrZ0VdgXs8!Y=_XEj%3rk$Q_N;fB3z0@ny4n)RnDSz6^MSoKH%31Yj?E?BoXQ&`Q zFHJzRINH&r3G1HZZq4E^4tCbwaw~uCx(}SMD+>N11BFqkn2Ls}(S!A*>z0iM%PV&?Wn6 z-IE%&eCl+*d-slW@N+__6g_462wpGN9ZN5)@!uzh4q1vU@hu_}h3_w=$uGNaTmi0!E(a!O@G-!q8>2cmv z;qhAyvV*>ISa=1;`CXCEF?zfkmjW2=#p<5XnL{?cw$K zfkZ6fnEp^|f>G@0=hRgYzI#^+fDT6ZRWuEAVroYIl`Q72 z)pA~3?YJk9d;}@*I3gU9j$p17b$#$^L}e%i(3o@VELnw(gp8&&kD-r_Et}~GOn(Oy&LBRWG9d5dW!=rRAF5kKW>tuw4GIqn0q8U4{b)> z*GI$%;>yEHWy#^%`_?XNv1*)mP|?Xg?)%3a*g#{8?gy4pG!jsFoV#2x<(O5i8k1v< zLxL*h$abVVYSWdmjMoHRsLWC{lbaohnw&W+qA6(iI^tzE<%r1|0_aJKwweJhc9?1% zaubKY#g}L{nw-d2d{RK)1le3$!A^5{nmWcF9GO?k?r@oGsUr|~+&Xa?*L)Nmy;f0oo)SXGD1WM_R&XT} z1XhYuw;xTS`YkofXh@iR#9kriT_O6BO(7PaZf06;gS9t%ch^^Swl_cu7Z4S-9Z`6* zc53@)uAoxv{B9eHQGI&0TX> z#}M+<{I=woe&0mSf);VU&S$neWKuWZWWaSdm(Z3H2PkT&R&-<5Ua)QFU4cUwxqr_U z9s+t%eYo8^Jx#d#k_N++&ppFRj}@lcm9GyeIpbbKc?coVjb+-B`E3nw^{mEI<~7XI zbd2R$NE}^=BZM3b&Vk7g^d=I!h^WElj=Jp05W*u|_yU!Rb2@N6`K!V~`=J)qhIE_M zazpIYz;cvlEyvqR39P?pZt?B=C)3?7?esbyDqKm`XSZkLL<^}P)k(2TbUC+{xXzc2 zAE)}xcV>o0W2OoGRv}|Q6knCbW>Q*{X}8(jmAyo{*wm13H?5?j4cuf7u8Lcc2!6Eh zwrNtfP?~~`BM6Fjy1d&wOu7tlRvPd7nxvz2yh_$>AEeeyvl<%8;%NalT_QH0G0dD} zGo^2{C(C)p?)5%cI)|(wSv)e4!cNZ(^olwL_`xu$Rf_(h4sbXL$>(*HTc+DGlcCLEGeM8$G>-t;I8TqlTe9!)@PdzXklvZcZCRvpJ+a z+k?Z3H5rdLE0H!Y%q_z!m*Rou+*UCPxUbX?TkLmp9>r#m`!_gr>i0&Pl}+kAOOJzV zCKgT>)FsW~QVbhKBw%Z!QW=LSbam8Sy#k5e*0?^41z0t`bY$V_`3LO!gx`>rV~u~w zB`v4!?2MB3#SI+xmZQM1pVo1(9pfp4m-r5z)23MQQl`ReSPys_Wx4u8Y+)esFV$8) zWyeTSA<{4R%GvP_mn(=z+9ZLr%JxO#w=y)Ocu|a5d~#5h?d$(ONk_af;tmY1LF>wv ztq0?=y+-83V77yKqqA6(9aY7iFulWJ1_6}w_?(K<FJ6S%gzB559S>z zq{WzQy;r92!5X;{Hj6`DfhbeO+U__Ey*#>+OqGSlr$AM`SR;?1h@lk<@J9V_@T>kn zp?Qa%JF8*p0;udS>gG3Gue;N&_jW_rdY&LZ!1J|^zl_5D5bi5eYcqY8$i{i7)I|&Oms`<|8U888sftC1KA56Tt2D-f)L%Ay^_HXvk6AkHMd_$l%uOnEI*E0kt zBpMOXbR`F~+PivHo&Ot=emPg#OgDeEU%d!XpX|@ckxY!+uH5~$DKpZL-?zl1nkQy4nS@UQv_pHP+e%yDo;1Z?H+YT?e4m^f$@GKKOt>I+g+rTtWVd zCh)+k9lPDjjtToFuSMaN7lvK0r>+uaySBp-B1A;P7V~HUA1kKo1a?-my5CGWgRKDI zf~t5s24?v%emVYWzK!eLh)P05t$nExNoD4rNx_B5W+}@QNin3K>J;o)Mf9_k?5f!{ zERELIGKQzaP$_3jQ(BIIp?@r@Y@Efyx&lZ})I7Ug|y^c@tfn|wTdhqhr9 z1K_|zqYGgdwV|EJs6s3-5j}Wm{0h8nrqd@!I9ht>Xyr~p21#_92+P=b3`uhS)R4OC z*Qw`qkZP_FrJ5E%SX}~kpGb<=29!MK5OCP;MFdD?uTrl>!MHZ*Imm>VjsDd+4 zDZned;gM0~N8>{-_J;I<07RLHxy9Km~XeR9ptHwtef5#B0ij|s z+OREUNy0!*4%=>>hl1yd7*_%VGEsANgn-m1z)AFZ<&R2DW*5qCW^->8SkA)6wL@x? z`7z=fy)5o8jRo}~vL}4`ar9J>ZXMs5e`#k>pO60XihFYvmO{G)&x==?`-X@}uc7`> z294Jyj7lM*7)B5sXH@(Q^>m-`D-UUz?-TO^x^)v?E9|qYkE8qD$u%UD(VrY2Ov)MZ zQTg_<=n}JErplS6#*rSJV%b9oOn2?U=H}*W@qe(1{_ZhQEjjrsTQ3O?>m)IrkH$~Q z_ObF@V#{XU8jE1FiZR&c&vSwwu}MY*1u&ISuZX-e<45$FySJ?04P@m#406(8}ATQxLB89km2BsIoFvFXHl@ht>Q zax)zZ$(yT%OAXjEnPoK3hDVrAMnBAsUQG`{R@;}i%v^3O>!?QW=W><0RCiBne@Y~; zW}BH3CuT7b>%odShVXgEQX2hxgn4k0?C_dvt=IIxa~W#xoBM`k zB!~^=RO=otS`o-egy47^v;KV`X)^kY#b^ZhCMxXx2v+?t5&>m^Lr2PqyF5QQoR>nua2KRzW(*H6f_)zx41 z?b_34i)W9YU;FwQcb#%Y?whzHw{YAC{fleM8;fAhQNV#LL@Qmd$f0{Mbv=Erz`~*g z!M_l?1QU{i&W&9H%vs1YC3F(emlkDoPe~=_D*db3-XUV)cP5qWa`RoL3GuZ6=F@3?rOi+(iTFT1fRpO??pP@=tpM6XuxUtC%Lyml=~P)6=kv9ZNQFGR>=m zuJXhFqwUf!$TuZb`rSuN%;+UNd8H$j*)s3zjLREMhi{xLP%rr5rL>q>N*s{EvbSHJxNs6w+& z&EpjZW_xZa%Ca8m&OUth(VS0~Nl`SK+9q8URnLU2{gyuJ8i`$O>aCgrNvb6qLWQeB z_36Y~TZwr+i(-8^)%G?*fH)(lq2(v-O-Z!eof;k#LiS3{77Kh(rz&t0!-|hkxrQbz z(C$HWJ#^q9u=VB8*6)cX9ZM}F7T+8VDiIsu?!_?Egr!obQ`GKs>)RWnwbAEZR}S8z zqY|y5XJrTPmFq}V&y z)7}noR`L_8deL*7*Ox&t#i@)`)q{Dy22HVU(M6JpaRv!7K5nygts*DBoz()G-oc7X z7Dx7Ft3_1`BQKCeTOU`4dtpE^v@2m1$~eClHZ|5jvYIIMuhX~F$L2Dq=Z(xIT$vJL zRakBwAlYzGuu&FngCU22S=kzQGYiyWam(F?AJAq5S&{9+5sQ$rOm>b8fe*W|>+zr> z0YWp%vPm=2He(>oOrju|VW?vUV@vPg32#}_N;AX;4mUGc!iL%Q`oYVclLd(zEG3gr zUNF6+X~sI)SpDFNp+*rx0He5ElVldC0KpWB#?Sy4bqiPoury-Tx5!tK?5$DmEs5*tN zfUw$Hy~{Yj+zxx16Q=%FAM!>~+35+MJD8wea{1|f*J&dv8(n+&=*iuiI7!q`Ih|K8IB=TsBp|+K zlDI^~$0P}5$H_7$(-|%af8y7JXp{zJ>jWy??8=oMSoPu1i!R7)AjqS)J;`1SL5g z-UyR=;FZ9fepGP${DwNikcmx+aEtm>3M+13mBnxcj>}_v)3vomKYE5>b9lPwNs~DU zK8KZVJthcHc#-AdD5HrKjskF-qH~ zg%y{a_(^mJN1J`*-V3?&>!~hYEQKfZ>4an_dJ0NFoP#{6@~fd&#DE9@J>Pr-VisHI zi`!ZXR29s9cXSX?vw}Y2C&RLO)B;~IqyKTVDU}dCHW?ZV zP)^KUQadThxXJEM9Co9<4zZ~c;VJ)Mu4gd?9C5OteUBnmqUSFn9*{W%Qu)EkY@|}` zY?ap3n^^ypQZ9sS5tGErbT7IP!jtBx7XHA2wzcI`#6i%6ns4E#QdJ1Dq1qZ9eaN*B z&yuTt!!=KctF7J=)hOq)EWp3_BKlhwivtFs^(JjoBQ)ms2{J4&CnjcS8x&++ahvpP z!Zx<-HJgb=E%YN)V>TAV1tm_3gbwv+8y8JZn{j^Mp@+A90)p;Xw|niP3+kkk)Y9Tyo%cxy1U(kp)(1 zM>k-o6EF&aqjuU9bcT~zEKK8w{g2I7gKi{mz+}R#S+DBBX5Uy@*XH??*p&(pTAKDA z&iS&tF!uc1Y+)U-0pur5RM(nPT0Ijz2mkAvq|s%^<=uo zhF@d@$9LiV#rEH*ni*wBD7HYE01z2S0FS;y6rQg_$mRnRuo`Ns@(*a_X706W`DmT} zZ#Vc*e^D%0BGxMscOfNRt0~Y(yB>2sKgyT(bO-f~rZ!g9rRg(Vd{Kt=L5=8@zJ zN@_~!Mq!uUHD_PIMKTC!6>irlQM3Wnp^Ybk6_>PB3w8>fK|rfz@v^YbT(>s+r_z&r z!tF%M0~RDk&{G=FkGBv!Y`B&OKb}KpPI`CDEmRuptY{5u)ahDz=S|^TQ54J&naOna zdN>09u@vl6?v_o@v2x!Ix*xDfy3dFf^P@bj?zVb3XJDa;NKLei-RUt&EsTpQFJv-+ zWkS&qp$^;Pz^D|@*`LcHB3m8uz`$J0k54RwpxtflLMx8%GTv3b4*%1h2unaL+5j8Q zcPS{QP?z1svi0gfm&3#qbP0;R$#-)CHR;lF(a|PVi3Lq}jGNBgHA=wZ&Wx1GRnv$2 zxG-t9>g)ErZecV+YdGaY2|)7B3R^ z;8QPZOop6u&x6uN@~#$1Hay%Vw^{11_by`fW+BtkT=&VfN5&_&If9Re;-$gD!_yCe zy^Gdi@m?<>T~gV+wE!U%OGwU$S-O)#H%$TStd(~qxF!YMH^p-5nDYc`!DXw=5nUCz zGoaN;L*-^R)7G@9-go;%T^ol4+30HcPk3SvyPC2dssF+KgsduK-pn{N>0M2P1t+6`MM~>c%s140 zAm64(AZ3FQ!ScXD-bw%q{-lV|7+t#-L%3#qKeM56qf>_Td32Up@6%eG*cVxh@2_2( zjD#qFDotr<{u-@@c8wJV^~RNcGB8KFbqiyX5uDOT%+L{?PZt_486@r3-G9O9P)~TYN!fry6 z1)5FA>QdFfd`tL2%aDp)Piw1L=XpbJ3tXI1M_5Y@I2Bv%HkYapq7yD}Wl{8F2T}%o zh)ok^L^g$~?jyfIg`|HVlFOvRVkyY*DN?mZrkuoZ*&Wk`3S_7T*E{pw6Wz)t+AC0K=#3()QG2v|Fhm)?_6U`-SuT@r zy1TldM@U*RTRm!qBlLrYPeL4djAWfA!1r)=xLJISXjxH=gVHOA* zWU}=&LnU6=BM@O>zLP6pawtwHi7#UYr@-L$js5+E-fcS%!WjS|J0)NMjj{lA77Ve9 zl0|BxzdsexDpOJl$7;KF?Z!x+QQLIS~MrLqwTZ#k7X!(-AASg*fPwx33VU z$Jib;p0n;w$v!M+4Kha%|9awvrEy-nHnjL`jCOd7$riL%Lq&b` zLy+d;Bm7$|0lX7gIN!z>Q5H1{rE?oJ8#|#S{w8)C;hL$DoU;oRlvUQVVE$%VC;73Y zVP*Q08jJjC*7LawnfTmtZZd_lIyHGb;J3AXIMGx(mRb>F6g=!Q=q?lmlBQ}s z$fe@d^`|lt_c5@?cBBiB(=RvVeSgIPji?sR6=NNv%^a4wPR$n+GtrT~gyLP@JK*>o zfBJe{fyPwTxKAr5PtUC8*nXd5Czk{pyB{T%|=gb9p(G*viV- zxQN-ZISOx1VpEZz+@lKb<+4x zgQ7F%A!vW@=Q;zoiI^^yTvx80oPydb7BYEvUk(nkI?rC7?8XnmsSsP{Mcz}WtMsgN zHsIl4AQnL0YqvMi#!xl?)-vPuol)89!4}01>|O`uAu9nPX#=@~?3@kW37NLo+c(Zp zh#^@yAu@Afnu&k6s5FAMMdjCjCvG_OSxI!RZ0cy0@#chP{K&-VuW1*MM*3qejw9_3 zYIX|*^F?}6Mra6|UU$>Lv{Z_5#>4}5QiM1~_zqGiP5#K~0ojxrn8sH%NBRt^6IZ-w zHE`1P0@UWCf_Rh5m`Z34b-D<8wXqxQw=1J!0M6b^&CpTHxD)e9^%nwE+x;FcR?IP= zEl1Ml({3!l@q!IUJKvUeE<1qq#*3ZRNKD%P?NKAP^$z>|qr ze;iJh@VkoOEZM~q0lB01c# zIzhBinh(xp7E|&+4Ii>Hg8(sZ07c?z+){aqoout!w08?2`!+S$DD~G8$zg;3QDyo!Psp@hM1>R98V}gXYm;eI8@MPusJYkzuV4LNC0s1#WKDGa&1~8H<87d z>u|0!1l5S**T1wV*XH?Pb!8``^==C>s--tdJy06#k5lt&tT6iV@s-_bd+L+eG@?ok z3i_kB`Iz8)IUYCl;R#M=jtLKiv!VN5n19Wvy^&6D3T%ls`;s2G@rt4Ri8XfA(m{no z_*egr4|Uo+SA_>{SdusoVr~4|u@-9+MiND}JbUd5^fY`cH|WD@;|{QMVHYeAW_mG5 z+rgJs8dBB-hpu!MyAjAkP4(9IcxBy_Bdyuw#Tg^&cHx~9mum$`>YzkNO0n;Taz%05 zTZ`uKIk&Gp)BJb^WrRD)o6XM83%*Kp@P+ExeUr8Zmf;pLFVXu5es#_m*xnT*YKIae z2e(-qz9;>-6<}Xh&nxP>i0_THF6qv|1Y|kFsHyYN=;%;B^zSI~Er$Wc#b(>5m!0T} z^&e+j%#w;u@JcVpuCh9jMwhPm6e-K-jvh~KrM56kH+|3t8~Pk@vY`*7AcLEu&;7VT zJC7nnLz!=OpC1(x>- z#h8GX%S#s1Fn|H|QLNIjVs;c1`!qp&BXh6t& z9o`+(cv31C78ei3xIjrP!f6{jMoeUeIfR;BlvFonvPf!lnYn6mWT`Tx;(jqR!X~a4 z0CjrsqjU$h6Qyc6TQVafo@yF|t(+-W8x^%+az~u9|GBT+`uj|~wrhP#nLL|Rr3AJp&7k@x;_)ot=`K20BXnbv5;qwm6FES1HNnTt{e$xFkk3Tl;HIjt*) zP$S%ry}t8QtswYR#YU>>iJ?;Ch!U<75HqojNU`=SZ%LWojgPl;%5s1tDCap?y25sWL+iZ*-QF7B^67}E6eu$LlZ3~Ev_4;anF3LG&@UtYR zv`{$sq(c=)jw--q2_{dt2zN>vD9bG#6!&X#Cy#z<8Ifj0;XxJ&%FRz42FsrRk=&@o z(?$}uaU=tQjK6jE3nFvByo=BVk=r)K|CM~?97FlMi7|MawJN3k2g$)E>Z7k>X^l_p zA*Jl!T%7t>^Et9Mx-lNc#mt^)O2Czm4=e;&T&eA}VE{#-XSaR^t;@lZe=Sj9GE$AI zRa5?7VQnb;@Z)5}znQ<;){-!Lo+jlxQ9&1<;+W?EwQ{T3T6O(^O>*_<;ROo6#z}8k zviRn%Cgmfkae%fj>XQ1x%9lDw**(kv8*hFnRlYn2E+KX&llJ$WZ(h4r&{hzV%;(Q` z!)ZMBJq0{ixJFS_Y}?p;ZOP`@g_!-aH9L&0Lzps=u@-2w9EoU1bK_SUW#dv$5!lHu zlt(jNgkJF)A6G52NA{ymbo%RPP6`c~x-XpT3%J-DZzpHDZ*oz!8%4t{ zk?(is(GIQTjC+#QWv1ujSs#6oEVgA~pP>GjG{a*oaL(fpSvF}~%Fn>kzxcX$qbPUH zI)pf|lRp{#L?j}*WT#;8fGds=`-{z!oAer%H)Wg9EYNA3k^Wm&nAnAPfnBaH`m0PV zFC&%)p)ITGx2~_83tvECYjxIFmbmCbOJ$Vt7%^0bzMC)DP^Yf0>}yHIFAFP6j8`6i zxAEhh7vJ5z|EKSsKnpqnmDRewjt7N|8(aS&+H>yWfo%&TG;mNN?(-db~QYv_Dh!@+FoZ~_&Dx8N3JC*-+) zeM(CAfZ|aB)gYh;O;3k0CBMzB&ioxaon#@jW1a?$8J<>jIB3C*_cA{tYe_#Rj! zxxec!AjuRNrx(Sy7t-i6xpx(_EslnRFI?TzAt%lT94SPe#YSYS&MuSuO<0LV$SVP* ziLfGp`e^owpLSMc$3zXqR^^}@s8AWXHYjf_vEZ;}aphs7JCtYEjf}L!{=`5CU83y4 zmDj0cbb`I5WfU^=-Q4?`pv<+{#gl{Y$x2c)EEy~%-x2_nq(zn~Ne56R3=mmF0X%&C zWaHtJ`x{U0Kl~F#Ka?!psrElU+1Z)@!mAo;z}(vhvUtUdr_b|&vZKtlT~*eOqxj8t zp7nQ3DYn1pItyn9e#>-wlSoRJo0hQI`_kX6aWjt%_{MpSZOo>md!wbg( z?-!28y~3sd^^4lWUcnTw{j&MISG>^O&0JN=i&H+CRA_0Ak|IEPL586moWtT>@5`b17Qr zVIoI87!3eCW0vJtg6X(?6>anpOr|!bmAwVqZx(L|&M@vUt~Ps@<=wM9Yx;H?T)g|E z8F(~*$`C9|+(lAU(FFU&$#JyWE>uecOMge4VG3rH%s#0;0L;=#EZ@t(jVfYk%%cGc zloVhh*F>OI)E!G?tNB4G`4{8TS3!LzvzKZ|_gS*-K54<1n_PH=8ngq;36EWy{P`k> z=9$AD9vs8tAHCcEA@aaP@ysw}Ha(E|Anyg%3USdIDe&eCJLl6p%}y%Ye=$V)P9x?= zZz}uHd|>MLQi0uQxwd@@b2)_I#atMY#Wh(XJe*F;;q?_mUZUO@{a|gQ=o;k>=E23>TS0bD+0t> zh}I=v2fd%V;QUyRV%jX@y$CBOwB7~i&2(t@6!a>#apyGr2K;$Rj^%ziAK4ZrV_-#n zhb9PN8JoG&rd?%UUCDIWulMZ;&LsY8M}DF(sXl2&Uv%Nt})jZ zmVT{0^I7%QVDQ)I*YpNY%h3a{J0A8e=b^OGP0(O_PMR3Y1NpRi8wEk zz1eftaS=8NmMi;e;(laFJY%)1m^xLUcO6L)F|i^};}wP{EhJq*f}^&WH#e=h?B8jf zRa=(kh2*YDYgZ#Mey2M72Hr1NHPK>O9EWw0W*W(A{;jfU%aD=r;!4XsyOpX+<&G-T zD0Tk4;$KpzV;-5#7NzPP)6Q191-Zc^G^VhiV&)qa1X%A|RxR?EBNs@^QdfP?zC17>d!g7Gg;{hwG*O5Lm7_xNO2-t24=2Tkk(*9kkD#9iz5 zSO1Dc-k$yPXlGo?t>VWSt$p5tXMFMTbZ2@rAN|wl-aR&Jy&c7*;=Lth(254o#s6-m!k-q)vNE;K{l(~PmTl6u}ETn%iu$366?I}jaCS9J> zz%y=cXwOXKM?L-MA>O93oODg8Xa7Wg&eWgf`IT@PDQ*>RY zgCp}*+~aT$ep1|*E9Ql37D5fOARu?bgEG5M_Fx7 zV<~1+DNdQD0hoSsLD7kgY<^ZE{vw@>d8RH@o34uFJ;n31#SH{i4HseC*h@9Ek;m?6 zXf>ze)hN7OoZZ@*ko2fENn1BXyKYK_r%egeL>5@bHQLrWH68mFSv63%S8mUbJeOc* z+2Hn~9ZoB7^EQ**OV*w<+w>2exz9?f;TdkM%0^;(ZRnkmB%v<(1-cS3TyiJ-tcRVB zc3S93a4xscD(T=U`%~#tfud3x2F<9;Y}PiE>(p8CQP1P}+vZK16`Tq{`x5K#iW z;x(rl{?kH*@5>@zKQt@UCd$#*;4GVp)z~BJ5R`U30trCL&~B+byI!>paVuI2ZXDSP z?cxKE1}fJcXaEgX!L=8z@MmSy(DSh|1J#wPsEBwfR>!_xgo()WT*RKpkLwOghPLiS z4-FWNO*7(_jQ!o?SEz3-hr_*9bih_OjokNaqqy} zi01wwlq&D}o&zh6e9%G?1qZ;peCZune$lv|7&lR?3TinWbS%)#3 z>`pA+h*V z3f6T{kf3FGUH>BBGEd z7asyY4yDQp+T>sjQDrlx+~s>#Si8*faT3za(|KwZMWJa99Et$i1s6c3DRx`(t-2Yq3`Zsohl=;sd^l@B%&8&(lF30aN!{ZC37vN7zcFZ#9Axo3;#LR}Vg3+4GhSPX zZb;AQCzjdfV1-R-)Jn3ibMxhnD=y|ztFi@jd|VqRYPJ&<;8_5#fZJC}1>ir0h*yLM zj67X_r0OXA3rfnqJcK1Uf*rci1$U zs5=dlVv{}{nkw;FONp+UwJp0ckMf5aLn0rZ3Z6nqw(J- z3=3r0jb{xt&{Uw3pb7G>`L+({3GI>$;%u}jy)?wLv4$N=K6vGrAjhTAU4NiQvpwDX z5s$t3t+*M_#%zydf?9uHpY_WZ=d8sGqWy-mSVi<-TP_; zn$D|Hh@U80A15s=y(qaQ?M=L1BHF(wa?8R3m>nYK9Ge!<)6z{BossHe4t_UgYW-fC7zE% z?b)8aoxJ<~3Wb)0H&)8KDLFw9~%{vwjb{snCh0C92+__{=W8dxJwU*?* zDJc0c_H!sD+03u6|N1>)`3RK2pMwHR2B%mUhCj=1t+c`e$O}q>S$kq*ri&;@qd5(c za|o6}QkeCoIhSqelfZN!2}RwN^5cWUh^j>m-$lF3fcpLE+n3z_a|7R?4i0d3|9Gn% z;AQ~72}iQKf)Z{^wuZ1LV3*{TT=+%6rP$*d3Ah{+*RI_pY}jYMrT{$zUXM;Bx{@JT zW*DcI5PGfXQ)|iby*>0u41*#Df>A2vz|nhM;oH-YbiXYaoc%J}A`SaC8AD~KxU!hE zQ8JX4oZd-mNyRWThkNxD7=5lCLjS)0nmq|NT^e%D0n51W5p^KIh@SQAwud(U6GqW= zZxVa*6^A$8V}yMP1s=q1HhAqCVJkC1tc8|PCY|f>l1?SE$i(iI#l#PsFEF9eRWRo) zQ)ZH!Az8d4RihEv`b3$VLB*cgQd8k%tn>5qus!2?GU=x}osl`ylo`{>ay_ZiyyVku z8JRf%Fv3mb{MmhFc|6y_YJ#ICm&BChiqe5;XJG!H?g$V5*pi%GyK9Fqzr4()XGGoF z-?fOny&Ou}{nU3fn{}0dFuSA5`GUBu3lTvS;nl+J=x~o+32n|^VrPn$<$q|j@ZvN_$u;8DH8vVYtuECWyZ#6?@ zEc3(T$?HW6X@+q+;>Ifjh?8SN>8tBU8<{a`4xjY!;C>8lNISICB*oC;`AWzB=zG?Z z_l@d(5-F<4J<Trc<OrkyKs3h$pkJNzX*KK4fYb2}t6Br6+sOY^FD1}S#M zG0|-ku>jL}f75R`Z)&nxkF#&SzlMCE%g;XR_L$bREQ)J z+%QfuwfWv2>{r)vxM~d}mrg;L+MxPE(0!;lCgM3JYdWBr9HIV=ls~l5!diMR+Gl4% zCq)+(+qG=Q*ye01%12Su-A`bIk4#Vft?V$wgpF*?Wz`Z-^v8Z}drQ}_wO1T&`SP;Y zs9bTw`1JUfReOO>GMgTMdHENl@#yL2H@>*>`y2o3#vh)y3`>;d9Mmy5`taeGk7eHV zw#!qy?2)(0+P%8fzC219XyAMTEDpcJAOiVA9d)$vk`iIsNVCJDk!|M1x#!7Z$5>Q~+dv*Sq4A3j6nWUYkSSTTS<;taV_X~iW*4_uwa zaSxpdj*us9Zu>u9U zd{0E^n@AehXLi;K9uk-@54PJdH2OMJ&R?`blU;x4ORm~2cVNj+-W7>2&Ets7JN#v| z4GCaO-kBc#{OAaEdAlPaqZ^LM(}n**P{!A$WGjUyEnDw(On}lZ7klk*vxBsEzl(}EM{-E!`=yB2u6Kn-zr{C2ly)_ zbB6$n0^#@2ti6OG{M_l#^@y9JKL|1WXQbY(MPxdf}Sk6emZ){Rn^~PcN=1< zI`%B+n-=bNMJAXz64;W{WuXYQ%`g(KpoiG$9{db`-SAunrfDYH*H!BCh%BR7u_&_- zWey_GrO}oPfJQHm4&LFHUQArAEpP+$J;CfOdAtXli3{hy<@kbj7<1AL^tu5#(I6($ zp{;>N_J!JBn{+1U9)s;#FX27JyE4l@g-;F~9ff@f8-lteQ5%JqzmJ>h&p3B9aRmb%(qOcOdYUq7 z*THF9Hd(vr&&{tT+jhx;NjPWtb3%9c=?AUovImA=YnLkr1?FZr&i9m^ynJ8>wo`yh zOzUIx=;8POt`H0LW~Q!mo54{6)IK!9QpWwRZb;1L{kXTc+eza!Ob=KWjBfG!_Y8ui z@s=B?qrK=6AkFlLufY}dRsLl-V8qnQV?;QqijoGo7(Eohlp9FUC+#a{Jq_eMgGK zooP&k5tCza47@2k23nuJIXr%E_0ktCMWjKtzKS|y5MoM~yt~2bkb3j%tP-zS>VdewL1Y$zdyQZ z)s=zn7vH{@W|0t_0RmT6rli)rQCYQ;^eCBgqQT&=5l;&uIayMi(Hyi2<0VuE-3&Sk3#L& zs&8!R&ayG)H}Px4k?bjst-=w5U;I2jG-?l-m6OImx}6$J(pm|!Qhklq+qZyp??NX- znujZ>Lq3YK>QvQt;qDx4orrhqq#PNsQ_(OTQl;|KB5j6?a%1s+e{1Y`FYH5wtI}G( z2h{{By^#0Tg z%ZEaL;3+4^J!f0Vt7Mv)_Qy2(KqQknLd$_Z+QuxNk8UNGsIk#C9y)k3WrLNJcxb^2 z(_RB8^GDJ?v>%j9DRYP|FF<3zgoPG^gX_##O1O*S3BfiAvHtRZrC zI6jTIU?M*u=RD@{!SoRNh3RntwG!=nMYd!YCoCV9Bzv=jX70U}ky+vs#I*GS=xHs2 zT6ydFPkAad9lU%kK-kZKRMm|Jn-*@s*I14}i^Osuv?>)$d+@$LVBnSMHwBwdrakx8CtohmK}XQ15kTP= zQ%gW!BB%4E5!i^(?u19{eMCsNu8&E6e)Tr960QGuvcEq&`k@|pPbfmnXb$pVIxexl zn)CkZ(Z;=w@9VF)z4S0iIU6CvqlpghMNPUI+j%?zEztY^L8{f=w@d`K>FMtaAE3;K z7(Zlj(;7^7GyyFQsr@TOC^TPOM(3qrW7W!fgZ8LLx$J9^j^<`cowLgAd=c|CvqXTa0Juiluj zM+if_nr~?{(4hHiTuT?h6c?eT1x1m>sFY&uwRB+9rrJ(37kct^D;96HzZ?B>RHT+9 ze8H8BmMFVzG}}0i8F70|xZ^u>Viu3Bu;`;nS7yAwTP&;xKN)4(R*$ra3~y-F=)AaZ zYiL86@vGhPH<*&Dh~*3h!Yf%S$h}9J2hdSVg4nv<2PE;&2SMJ4CyQ4N@r7!D)hUsR zHtQUN^cDwi9^uF}=A9skcG~Cqtq-bI`?%weiUvV)e&a-lT}b71^YO$SE%A&712Bai zB>S==jaC{Ba$QPPb5MqA9v@IIFyLxmR%RdOw#2z|5#_U^*&E^&>~TAE+}PXOKh}4% z#Sev&Qd27!oMglGN!x6$F|D!!S4_F6u}31HRO(BdT6WoZ69X)b=dkc&j7ex0f)_ZI zK3OBKgBAU6PmiVN_Ew8!uLu;ExlnOalm0x#4?+G8=`?V3%p$)^a*I|?#^oc`t?32Zqh;IN7g%eOMG9cTw;B93T&H6kT}6K|RQ%Fs9_TB{CAs+^!& zE+@O0q@3|0sRi#R5~`|*K>B2vO%**+*H|@nP4qpP9v>f#S8UdMc?BJmLq(`)Gc^2?%jDvRe}$B~snNBWhXv_5zRe4elSKw{?T~TW)-`9h z<}rT!c0%{wyzI0tJH3ujquey5``-TMO->EuMtxyDlgVTxJ$!$5FWwbZa&^Qnod2cz9xaM${U57~y zz54_W_EBcS<|n&RdCYE?R%LXslCETc-8}TRyKP@A=fmJ{2(7>FkJe^m0Wija}#F z+CpdN0Tnbggg4o27RLeBIE|`^4!)hyU?S~-&VtAdCgw;&sNG$;AjLx4${gm@uCJcg z>1B<1Qv7tTw5uwv)Y9TAE|d@1sXV~TD5+#s%f-4xgGu5`nd+mfRNyLsdedipU0zL% zN#4v3+_iBPvvK7BV%uL;GI@nd(0 z7mgu(;JcLLI|Jpj#~kv zzR))pCLL1mB`4Q(Jj8cT~8p7O8KqAqjcW}e7 zLwwk7)-^{S!9FNe3+K)VV{{|+!?81+T&<{%eGxqKx)P494MQTrKROUgbG%5*qYtbd z9%y51n_Zi?bLnj;)$eA)B44#x=7$43_zJy23!-fOFgN76IXObT)+uh&5#rQLVQ46q zEHO@CS0IhA6%4g6Jdh~4jOplrHruv1Iz7>YkMeta3rP= zS>R(;s-WgQ&gdpoS3GjK*#s|#OCX?vob#8ZI6(frs`$F6qbXtC%qHSyUlG4TD}tv&98*ZG@{$usF; z5f~WPstl7?^Orhd%qd=OmvTb3mnkbPip>_+Y=O2B_KDWnWw`!j6RXzx1i>+c3`Q?X zv5!f4zWKlYH)wTuUMdUs_ryFg8J9nKF9#UXv=4VCtrkz!OXVVwX__V2Mi zXfd{$O_M_>Gtse+5>0%2AWoim9j9kY8T%Z*>{0WY1P4C3qZpK)vLraf5w%5g!-I11 zZ0{8P0cPzmRW~H0Q`N<;=CZVEHBmY)m3Af$)X@&s(M0T<-B}9w(82>93WK=@Ja>}#0kXhx+N4jibyl7>ZUkex zNsI_Wt1jL|o?F(No+v8?oXea<$8+4j@6(uM77^T`8RgN1>_t>qWaj7?>b$O{CR4)Q+cSLhx|=jzGi!FC4$(n@gknc7D7AR5B$qfkOd z+_S}ej(nV(iJ{H3LyHR|J4t3W-J6Ua$slbTmNM6<7y!JsiCf|b{hZFDtvcd5O-2gE zHJN<@EZH5Pz_rYCR8YJiXsa>kZOFE32UJvJ!>;z4X-)v=wrsA=LQFh)41sOlkhk(X zJcI5S;>QDYH^OljJWw{F9k~2}xXK%Rd9u@a%`gRq(tZRGqi4@YQ==noQDGPhIlZv7gy6^!&seWu~ z|6qU3_G~yVrR0_2MdM1x+J<@4kb*NsP48N$ndgS2K_Ll;y32$OKioFTf zm2XAq4u!kRiqHg7^GxD!m_foH`PJ2&*&=GmL$p)oiz9P|A!dLA+;%K!i{%nQwTMNm zN(DG5(pq!JX^=iaSj?H+zA+W%RT5|Mp3UY~GdpA(JRp*vutU3^$x;Fta%#omnR28h z*O?GWykg55r76_8!uo}EJ~^QUoRpE=%mp6WO=~M}+R@g*0XdT-gOtKgRKtvjeKa_4 z2&i;jA*Scl4}qg9&G@a|D`X?7<fQWm5+G|L?~&DQi#K3xQvWkqdSToOP! zSkpCYENy@;5&}3#Xf&j9bQL-1t^P_%sjvhf?$lp$X4z=Ovt__T#)bIM)=4~D(IBiq zoW(vhGL%Z6^jC`}y!XPt541sWwm8aN=eu;!fN5(Mk8n0&-y5`s%zA+ zQg8fSSn5tgEEnRbckq4eij9({Y?-gRH#LkOUvuuE5Q}`tX(_02aj-RK&l6Frd{e?t zVR12K;gji$1M|&9zA_^b@)IM${6LoOWqqHawBmjNM4_%qIF?>pqw?79+ zA*G9oDiO*wl6zw_F~x==a}1wCQsMCH3>+!!#abM8$5U5$!^VEoz!+ojvu22Yv-J2! z$O&A3RWu0U^;hL-OVc2pW(mzKkX%&A2Sv%WfYFC!>uUTWe4W;Ep-W!7t(cQqX0dQ6 z#d`Kx)XvTzkGi0?N3>|^=3?sJMzR(Mwvb~Y&G-!oe~6PDxw&6u1fFfFO~#J0JmiUF zb29@Ri0tLr5T8~Ae>z}5G9MItolZz;Apw+@Sb4ay?~eY)O+2ym$lMQ0X1W7;yOq{7 z?6R~0>HF<`YB?265iV&U=bSd-rE|K9ETG9Dpba0A|B`VSOAHuAQ#h$On3%Gy^#L3i zV}`*_*(Q)F*8%r2=Xu5PGO-;9QFBe14j`h+vMHgX1OO|s;V!hw8StASE|H%&Z5uRh z-cq)buV5k5U5@2pM4?5#!#bfQrpM>ZT^_Yfn>Gxn6G@p4GypRVo5wXEA%I<8KcB|A z`|bDGqKroh2n;JE4uKVOW`A1=WFbp)>1)tAiq7mzD3LnxDw!AmZ8kfUM#EvVE-=Ow zwH7rs#V~EF>-ylv{YZ8TbDU`R2CM&ss=9X^Lslvi=nzaIJgCT!$*C+5rVt485c-iK zE0t21y{4-FbWrt>#FP|;aT_LfIM$*aa**OVDBYb=R2)q9FilIe5k+ND54E36snv}W znTFV3&@Xh!Pkjg=xyzv`XeV~4wGQHJ$b-vX!3#^Iu-%5QFEt;xg`NR`0BsbETGAA~fx$?m)V^Dfse@LS zWo>E+tXL+e^?T0XOAkgb=O|Z+=;#t|*&T4ze3wctA&==UgDPK&#!{Js_CkxmsBE`m zfTANwaL9JojM`2pjCH-;WbRD-a)-z%opV!f7Ex)=KwCF7s0AX{)J#<}jx4Qyje9w) zrGxTi^i8_tqATt>h?N;VG_A{+jFw9S$#vrS66cBMgWTtWOos)_0khKM#Wb(mR;j0U zm9d;90eD6Qy8#QEr&NGkRd z@CUY=O#WnoDXu{3`m3@Qj^zh_{uXbhS&W~EXWyL+E*2}IBl+XNsO@eUEpFP^&9Z)U z8$l|@IzCzfFh`Nd7sm(+vN?!M5Spn?gocaM+LUAfEJtEyME z-_sQj1HWfuG)*I0MPCiGz{0BSG8KXUF?%1G>szILVv`wyOtGbKo0UAg)#&T6&`K0? zS_#M5j=ypET9}f-Ik-bAmxranF*A;rmFQnl-pIK1Qd34Tog6|lrMw=q;JB)^ z^eTO0nn=r_aDk?v{cg(jo8;J^6^Tvq%5vmsbBiJWo4>WlAn4T9W0BRTs}`OP|L2q^~Ff2WPD3XbXNNL#SnkwO@tE zz|RcRm7VoDWBNQU$PU})&*6-p!VcSJFU%QjL+T&E4lQh@nwrA8u$-8$u>KEY{BOq? zHMjr67j+}|Tb)n(o7mz7Rc$*8(JY#aSocqcbS;$MP{n-vqN^a5=rY!7qm}(7_v(tR zjye%`Iw`Y%tG-spbE@L@k77>|S69R77;ptAdD4Hom1$%$v@}Db>KHG6wBT&fZw;PH z>X9F1RjohrOA*;ib_OXv01_Ya}x&R2`9%K9)5)tqi(z z#UY&GkiI3dsnM%r6b}!uuRVeXyUqyh*5fo1>KfSXp2ZAUC)?(>d|<8C1r40Ybev#1yD>X# zn8S!<%<2ENYH?1c0N@V9W6O4g&6b<6IHa3{Gi3(^W1!Y-2SgfV&R&^P?(r4I%8Wos z4rr;?g{d+cV%P{qvTYfil3Q;^QeZ$IK{4!@Q=VW+6AmiW7)bfo>DwuJ__%qdfz8}+ zzu9Zuu_60#H^x*X)T)R`-jvZQhH?wR@3bO1>={nN!f5=4%QfemS@r`ZiXg>#w2)$N z8|~Vk@SI))HsXIfewYhwh$R-p4O(!)FbNz!TfEmm=BQEfr%<(%*ROeRU9-uo2uDp_ z;f3Yw-`QL_hXrF!#-4EeP2AL%$Zdhu5ZrHMsKGj{wYqF{c(TJ%txuhCiEPBbjiWY@ z|Cck>l6o|_s+o+14Gl3>=1<)He^}~&bC#MS<^NwywOMQbm3+17_B7Vo6!{ytYtzc# zo58Zf^fz(WAN+<2yE)S1;b0}MkxDBx$eou?JBrZqj_kPc5TV8D{9_~VabXU6>X*2; ziLjDS!F4PhH+XQuAxcx&YP3R1E#mZh;SIG+gL_5#C%z(@!SrLL`&GDxv03XMCB}nR zjIS0&@Bgy*uIq6g$(`r-zKRlrZ4@A)AjzKfm`#d;K(Gay2bqM__EK!2NE}!aSin>P zqG*cGGZ(Q}xL2~je;hLNeXBrHYT7e?c44;&ROKNuGBVB?X<-26a9B_Pw||vs=Au;% z(9wUA@;dlW(q2iMR=D85j{3@$b>-!Mh~k>cvXj@lCiGVSU(=QItS#f|>{8~iSCzA= zD)k?#EgQ!q+R~{=mD+T}Fy2clc>CX~a3^j)v^;Q2_uX-h%DKL5y%$9s5K8k$q8ddz zQ*=6(re*5DFJ&th=Y_K4kRImzlir$PH_s9a-$7&X?|J>@azjIXC?r5qg#vijR94}5 zrc2>n(>X5xcIP$*Zsw~OXa=zUr8l#N^$2gpLaeQth9BEitiEDxdOL{TT9#Ua=E>cqMqF$405NY*_A$#@lp-wifr+ z@V&@Hm~U7ehn!U^LzG=vb`%P1HiaCY%D6sXnhwxjy6bN1f1&(?!09r1tiymSnJn-^ zDIZua+i@$kkG;sTDq?Ua@~~6a7~em@=vut~O*a%t?w%gtMULx0oFdgi&5inT}G_-Q+T$_)tG7MAl zJ1DkJ?W6PaGbOtPa&Oh{$5VPlx>c5DpHjOyFH$x{XidxZdFTHXUYz_abC1XGBKaQQS>DM0 zD9dwBrEjdpV>}w-%h}QYxFk7wu4ii~3CJgn>ZHGI3TO6S?viVICuiIt=lYjHu{q#b zQg{p*zhayPY(W#5Bl-G|-Tb$tf3@_-v7#iSrrI2gRd$L@{J~hSoaK<&Jzm~^Hi+DL z)~z7V)G}3d5BV7-9s(-qI4bs{tD339)knGS@kZz<@xX;|Zi;t{bCQ4Mp4NkGMPe;= zN4>5@J~tM**mlibxvBudl@`4_XmiWHjA2ZOdmST70o3hv;Q+mZqD7w4r5t%pqR(}i zq&%85KIf$czS+u+?=ow0UbzXuRh#{a{tj-{wVsL4)ddJv=TnPv@ji3>66m$1=9wLQH7tKO+@?83(+sG~5#U^aevJNofW4#9(#*&ts&<6EC-l%He^ zMx!R1YO6(q_#nSWSKfDyQ=8P!vXvhGm@TwxKh2imp`e8B(QNNfj9GQ{VJTYPXfhWK z^P%w&`&>)cr721@$+hv2lg$Cx;XO=M@v(BhS2PK}+Pr{3ZvFm)+Yg36pZ!RMcOC-v z+SaD~NEDpS#-IYiOn6pTGd=3T0tn20^_P-`wxZQlPV!>sgg@y)O#iB7e)0*t*l-bf z#2bTMiz$aKcW}(z$udwddU7-fw!8vkevA01qV2)$tue-0e%Y-5hy9kF4&jX^wQ7qbR@>}YN&z|JS;~^ zjHB(@39n~mC5mg*01F|G6@l`u8&KJO$;!3T&CS$b&_{;!x&rtT(R8n0X zqWGeHZD84yg`&Rfh~ycU7-kbIT1sZVck3K(Vz<2L z(iz0=Ypt#hZh7+*IJxfOy098gC*6tq1`N>HTaox=w+S#>noZ+e7-zDfMc{V)F;ynV zuarY||Lnm63lVE7ljqEd@!vp(*)>T-_IOjFzJW5?XC*DA`)2< zw-4_Qw!hi4KmMlC7(rC{Ozh|IkuGIXCU`u*_}WF7e?lYu=<^V<-}0K{O|s)%PZ>Rj zEK(S$3_-XsXp-`ix8$*N*7W7tdN!r95zi9djZtXrHN}|D;IYXa{e6&V+ko8V<56}# zRKbrqCxRaZREMCev+9#S@9yvKKC}u28-u@~Sh2IHDTu7#d`dB@XU1-Gx{~hVKq{Qu z_$Y84jGz~lc^~y>QM4KXZ?`K@iI>iWPQVET)fjn7__b+#R9p>%=NB(d{~Ic`D;r4I zENOIvb6F|phCsqMb~WApkOiP4k8z9mnZ4ATWrmjy;9KRd=$qYQ?uVA?hB*OvdR~~T z8dmI4aB>LHFYUc8Tl7Nn+j(FX?j9$*k%J&va1Ye2;28Twf^-YBE}(c+prmO-ublI ztzKJ8Oi@$o^7PQQOJn56@hocDEfvU`9rk#pYsPp~Kqn?qD9XSt-C2Stsn?SXdcKnL?cSFod!-JcM)+)9?& zLgrj%JDqx|Duy+0#{m{5;)46agc}VjUeB!tZ+dto~oQvpfR_*g@OLD5Z!h+Dv(cmIGKN&!`gEwM@>;r--+Z*0wfC& zZt*VN;p}X3m}bY|t2;Ylqi`nn3x8kmHR|}q5rs=Kv0bLpJ$W=;GQ}>&rwuIG$!bIQ z%!~ChB>UU@&UF&4CMWv{ZJ}#^tQSD~-xvcm96Oa8#x)oll*HnKLdM!7qfXd=PfnO3 zX9$b&Y{c8tlh&0sJALp~n5pLiqDy#vPMPL;J`ikftJ^rrI7A_fnlw?3&Pt$U>{%qd zd*icDo#N23oF?U?=Q=9x3Ood-yv^r#6>&1$ja`v0_7s@*reBMVe#@cJL2#-tz#mcJ z=K00N`TY9U)(LXq@+pSw3!dDtLK68ePj66t^~HcI1$h;*H?kB7Ld*tRjHCg3Vl z_Vu$*xA@OzvIms?!0B$bou=|xb45t>M2QZK>ST7nH`E0}!#CKtXQT>bu`kTT;8rZw z-=iPu{gsdZ@w31GyAqiZ=`ZY$?OH)LyYGDg6Onjfc?d)Hrx%@OQGAYGfer)qRV54hnCNK~&J%u4+a3png6%`z^>V@Ig0bsWW=l;Hld0bC0OBjcEY6R2CT^_DiU zZCba$sSy?Pj}hFnpT?G8Y5}lhh@8=Xr?|;@^y19_J)3dgpL(J{@XhGi$>i4L@aErt z`VXJ|!{-56;G?(w5KBcbP?k;I`aeGZhpm%qD{Cu@29$i-rp$Mo)F0bnw{PO>j(=Jm z_Bor4@jH$UX%#}(ZIgAm4kX8=71{)aak}FRhAS#bJIa^7+WFvhI#DZdMNzYlpub|R zCYc7RIu=e^kK*{Si5-)tcj3gUsp;;xG^@(jdsCD%#z$}-nMlr=8v6<*<_===+Z-|? zC5t8)KB8_riG&3g$Bq}XH%?cEY8^ANwhkIyxGeL&K$rI(?d<~Z6w>uz3#`k_tee9C zT8Fdgs3?IzYV+{h`#TTr-`RV3Z})a^^x}N=56)AKhZqc&vFC{Uqu zRGDzuCvCL0LEO?bJ~y1fwA-((A5IEk7a0jcomtbEY&3Qz>6DQKX)Ubopo1;b$kD#z zu6;u#Kmdp7Zh_;r+o)A|n{QO2-^l!Wm+R{^N&o&PpIc8y2OPnO0#SpzPz>fNW~GVu z(D(kxg%B6Q1XoyzNGRYIgT}i9ZQ?5Fc^`J_2aP7wG-IVb><0}Qti7*j+;m+e+a6tq zBU12bphlm%iT-9DC{7r}jY6OXUw70YnlzK;iB2Uhp)6pwqc>xFyT#GlvAqqp^Dfwu zFzWGyCYYJE<0?4$3Ca&40$UHk+6L_b=`yckm+PKQ3-8dXk~J^z-iJ}Tl3BtVSh&#= zZ=m94BrXA1D2nk?hfOiqlZ9tTMuQQGN>*SUUxosKj9nNZ%t+q0=dPwh<74;$KeZ&4puN)0Hib+4B3X4bMgQm@7NK=0~g+B?I$t}6c8$N|H<&Rxg|A*wlPpi7};DY@3M z!c$m+p~XZ}o^urk#NpZTb^f6?TlAD}R)AXLQ0VF#e(Uj~YlM~8tx|WQ2BXcmrpfre zE>&zfP|+--ozNeP?F?O8zH9JUU}t-wBqe_Y`*s|Z26-gr{&aSsG;dwhPNzS8*b9+% z14<7)(wnHTjjO=hNjPPj%@-J+C_x-t?>8`<<_T#VpqwCX_0{T`w+Ug-&R!u6n!}XT z-p8}*?>4aJ8s3HR1&r+IkuWkxqLi3uSsaX^iwtVS&$j!HoDbk1|`IN|Wj_ zBqH;g@7rV-LS(D+dz|HOi8pEII1KkD^JgC{epSPrUByJPrmrz68=6~;{v=ON|Kkny z8ptv5h4tfA6@Q=tyA^*oXx}tXyn;l$7{pUw9ue@y)$Gf7f`oF8U52*Cg@_Z*Wn?Qe zBfJ!97IC$BeOzDk0>#$$mUXF?^k0W&wcq;w`ueT!x4z$c{MYZdo@{K%<)k!2f1Gimy-4NM*%>f~(R;0?sJMraXuGN!o8pDba5iQ_ z_r3=H$lyOAj~%zXJcpR#$EV0$&w$)mibZSCMPea+-_eF$E8Ef06IPfGK%_$M9lDqj zKV6czL`IL6SzB|SDh7v%sp6ENtQSet_zQa3Q;*AZPkcaJA-qSbrVkcoRyK{ddJ}*v zllIg2?COz$txD;TyJcPtsN={#SMj!%Ky7pFKTD$9J5e2yYkN8kD$!~5?#|!i34dE) z@xZ>`JM7ZBSqg*KoTd1Buz&UwQpX{tZv<;=M90hfj=%my3M zOWL2GZ6%kaOQ48NfS5snErCkz8qt|K0@o~8KoMv#yC8ZBm!@2PGBxu*nP<+;u zF2}Y6i#-{jmxLEYZ7UGslxf5#6_x zRTo#Lir*ngmh4MDwr@I)h>byf8$yA^ROs&+wsIsAthPgpcH|Hl*ndg$wY*iCbBA`r ziQnv*Q&cuh1RH$;x!a^sOWA%mSD}px&2@$!uGz0l*4=U&gQUw@K%fy*T=4t@XuXk7OOOk3d3tnn#X9f) zGL{0geSW@TRuS!Z%b5ejk-E8J*{379Sn^xGKb-u`J9(Sv?m&r)c6M`RN0{9yAJoP) zpG+YZbx;n*>CF`=!kYgxOvYbUd46_En$pb`eG))O2430oJ8g8YuYcC|c1Nv2sz(5C zu83xv$*+kv4HE0SzVe0rabwFne(?t(&3|s3YnaLLO)=1UBq&Gw!+~|5-`F~DXAdM1 z*dmw8`bqOv_jZXak^)jwjs6r|Tf3DnZfxnpX0&Mb#r46mub$TK&y3OOxG)ndVlmAy zH@1MPyDncd30B8vZ(o20ycP#sEAg3}k^D!l=x5vOpX-YuIB-1^!Q0h8)5WH@WVADl}hkxyS6%ihD0#U%CHma2p?3v%9@}G zwGCQTifMe9kw^ut;&HK5Y<=;ib$`3gVa?kDCajarg33Ca?S z3Qz69t)30+?uHZ@roOBO{A3b^|CL>QA|25RSa-S_!8Dra4vS3{<1xXL{O)RMxOhco z-m`f_4d=}z1ya*yCwhV8vro@|8GJhUyYpYl_yK-1^o_0HtdJcRNpALFbw|hxD(EQc zz$*4VS_QG~o+L(P85=@G0de1_A9;>(U0vK$)~{L9#?Uq? zn6IV9&DPf#*a7{ufoX&>;+v9Au3m@Zi?QLO9V%5UzR0V#3f{(W(64J?>$2VNn=5K` zZ~I?=_-^~|x4Z2)r?bnimAWQ;x1S#qC49b%isBgn?N_Yg^r(JS6C*u`MIfVa`V*{* zLnejlLn*8sgu6Xbnv`D_?0z41+mW7npd~oq`ck?$5f|5}cC=3876{Wik|S}js{iWM2(L6#Q?SdEyw{zRa-l>8$?zWFMfOLF%=HGvSJ-t&Om#5b zuyWf%@SrUD4@ye>(to1{5G)t7aA)pm9nE%hqSi7BW!mCkbnHgqaII-#{Me{y85eH9 zXb!}N!{W+lcY9*+P3xJCS(;my%5e0-^4C{Fu9$z%Le!e;Ez6%^8J08>iwT$)kp~P6 z1@aaCD1$P&&9E-MzoPn$8G&msSP3cPqWz`x+olN^ee%zRzI7j2R@l1DSPN!fr#-An zR-m;H43~2jdlGhGr&}$H+ai+rn~6iOUrWHXj>4yW_ZFd*xa;A|Kkiy!bU*3jv!`!>(;n}sS)RNTwWR22VYWhu5P&g907#M()-Z8Z-<7e=u6}7_ zGB#BFR^(f!Y7p}n`alswmPL5*gD)Ed2or5Zlx6e#Il%pbKSLn<+>0&q-0*58+;6S z^b9*6aGd$#x;97bvw=?>z?223rA4yS{C8*709Xbvfr}0+$!oj%d zSnSNFRoW5y0;)(QtwmVq$icx=*^*s!HDJNS47U}fwa#yex;TWti-jQ_D%u#~Z((5% zgVVq)jD^|3a9R^;MSt(h#(vN73}>m$3fClo3Isaq>nzdH`diKfNa~)6F4cZG67SHI zpPi2i0hhy7SHs4?Kb;3T6+-TkR2lSd7mH5hWk8A0zm2TI)yNZs#ukdN@;`x^e8wav z0g@Miz`aH6{P6jj|F@+Qk!TVUjtGRR8-nZQH*}+HFgmZKq1E*}C-;I)R->_Wo_0Gc zg|tjPnqDjI6g8|g!ZZ=(rh#l%3X+F5JjkEiB()X-2qKQdR^{h{LmdQPOAE^$*L%zlAi|R&1ujg zK52z7n*Gij1m61t<2Ygl9}L5{JqF=8eqXL3#N!Sim8FHl5H7754ehOrsB3b+QHsa% zEsVv!YXiFouWqOQ=XD$V-^8IYwY3^Wb*n${Cdv?OG50qL0T<;c5+oTatB1%exy_`q zYcnVort*-_E>CebzH@`yeds_~RD*~va{kgOwIn!6icyW3<|*3Xmm8O-O`t-b@Y(6) zi;a!R;l_q)3y=y~qPt;k5#Uz}%#AG?wm{X+I<(o{%j@t-g+wHF5_hMclRxLeWd++WpE7dU|GUn0jE5ZS@Xmc9(cxfI*9|4gC92M^bmh zs|jrz1c@E3YnG1&t1So!r83b%mLDQD7NE}WMpM4+a;c1`08XH~vu95y;h{bAvQ7en zJ>&whCXu_~w{Dv)M2{@(O1HE(-F~)T+ilPmmNwc(l>}I5<@;FLtrL=sVMpgIwDkEC znZ@VY4yB7KWm?}%xORabQ@^g^hCWnc8Nm$d2PMgYb-_`FS+65HB6Bv4Poi}lUvMzC z{<&)Gig)d%OwtBCvQBm zUTnx1w{YnP#*5yN`+yxCNf|H3=c0iF8*Pt*9^pWPMtT28UzM~~YhqA)(KF{m_Gx<9 z1T9;ahrG$jl%pcPRZL4*Bd8U3+;D7Gk!r3A~fryB*Txsqv(v1{Q9%QTzl+{<># znb4lv(w^}>$ICXXoUFwJ!3;L-XqlP+(m7DNB%beZD4z!rCaW^8qn%Ft{Jgt;-;MkAq{GSf{;H-l%A8sRDB z^Qg7bO8liZg(q*WT)^$NNJYuXR#3V0sR!})4of1Cy3+al3%hWQ*Hx1#Jpz%E;v~Cy zT8T}z<+CYF?jZ<+d1K=~Z{l6w@RFx3K5R&?VFV@$O1YhZ*pla3H5B4n4gUGl%Vy6G zo|7d{5*T+xeB_#lN`jAUkr$Vw+N&-$cC^alsb)q(9}4mGWMmhVvgld+$D6@$Pa$Od z?)hwhUB*1w%LWoRQawRh)uVPQ=y@Tmh9jMXX{zJvHflS$bOtW zJM^6dlJJd3{s^f@?ZE6uk-nWTk{bt`?R-~PGWP&!Ny}zEAL##t8vShJqVc*)a1I6Q z;2@TCSOVTq#LttXmmF?0BDpAZIU|o&yANMH9HA`vV1Dv8!*-tgTP4UDfHT&wa4lVxGpZy>6E-`%>H`%Fal+9?zam zD8NlH^~Z7&g3IQ`javn04`{F4W7o?yn653dt<4o+ka=+?86)=k^m1}~vB^%lUNXN0 zxMi7)rZ+k~jyFeea_K2E@x|ey;*lbx2-d9S49tFEL1Xz~ABbe-uvQuNj|SguKiu2? z>hA8=9cqy5?>)FbxW9dG@BW_$6eRg>_r5-PG}!-od!NgX-`xE-?sfCm-lM^ty}P>~ zL9C)zUI5v&%Z4ngEG8NG=3qtFy;so9X*amf@9M+HAz$*F6h^GNX|(E{`EX^m>EM@R zH?yv{8cEBD77mxD+2I}(nUgb!QbBL3#$Q|>A2+bc>bo-)4Ejyf&W$*>lP6I5gN)&l z2oz9js=K9AawI4ZV`Y4DB2ScM24Tz85uJ)UzA23pLq4N;@L?UZu(|gd)H>UZdNX;i zoC8Fh@jB1%hh0~HxJ>WjZ$y;GI-5p30c7ogEm*G?>(r!*@QjBK7& zPGh4*N~U)#z&SdYX6l= ziX0=X5pPSoGTOA#Lz60O8Kf0MwN_F%7O+*~2Cf`kbB?L~W}-&B!v?8P)%1e%!!FsL7~O#8(j_ELB$*oVN_yhW z#foHyC`f5)sA}B_Q-Oe!OKd!JolMWGzu7moZt}@P84@@je{5`EcEpCybsze6>1+jw zjrQ0xr5H*c$_H9YtE9WrBuIrm(W|}A#uOC7xd3>|F)^4!C9%N0aHe$}dtP5TvBe$8B(|?~ z8~7W08seFmNLEjV9cBN$zAl6!D$rCbbs@GqM}bS(6&bB|hpoHiU$dFq=Z1EJyz0gQ zI;TMr*c6^|Lk$ZUPC0=x?y9oq{=Rs1&vNS*EfT!wW{C(F1I!U`H!3R_u9aW!<2Gwl z+9ZpiCqP;S#A2=Zw54l>(+L4MUi*yF6Ud1@lU8}%l9OFEMX?U0n}kGdQkV+>z^yk3 zg8wF)9A1PZCe>&gbB{;FUk_NA!l$+@O=7(|f93>~VqlH}s~Ok7dm4K*%?x0I0jdet zfWT2h96Tc-V{KbkJ^L#ag6$b|8pxDt+ZZcf9I{@8XkrhZ{LkfvV95L?D;OW`Y6UN> z;XTV<&COfDS{;9T4pc7A_N=HS_nK!dgt|Agf3{QZ9xVbJYPQCiJVkh&+)lO@q*ZqI z@!DVUxxtS6E!J*1cN?EBe)HG->Kp62_M|~^2=a;~**(&;7H9_=(yM^Bg$+52gn~CV zl&ep1YB$63mzdMg_KS4ELYWhzO#G+?LCdJr286-2BL=_wO+!}Vl1IEy+QKog4`N+; zoG{s(!w!uc3Yc}6x1TGiCD+^Y&9;76EZKk`6ibZQpvma4E|))jP49~#Io17e2Wks* z=`+G;xZsPqN-SNW1IduToaQyzdTZ2jEK@8Yi>d@PKdA}u)K)rQ>v3X)v`PAoYO*h_ z0}=v6B2YN zQv4W=vM@~5Y{8dn>aC08XvN-kw2sosRTt@2KZmY}AmBzni45WKDax)KwZU37ar`=a zGcuQdamJ$Qz&0y%9}f;*pq(YVwAa1W(tS-6KWt>5{{hRvxxR0m_`qp27|C%&Y8UkYrQ;}=8uNW!XUM@H{>yb{bmkU&>pm;ADLy~*&c(D{9(lZzW8N5x8^z6HQ zVo-r|JWq4ysR!&3%$SM0T-(PrDs+Qf+fGn_p;> zqfN1^q68atsHNXbxRephiFM7Iodr49R5R10d#|fuhaiNy;PAz_Dq5h2qso32^w@(9 zO3M*aiS{}bt1h|!-ajQvfrcgrpQ;K@GAC$<)#FhfpBnA#9k=IPyW!SpR{3g>lW(_b z$5hMJI(7gRojb=56RnGqSuICg5SnI?~x|o>JRRhNPcA{fC|4Nx%{J$Zj zfw4u&`UqzsXU*JiTtUJpn2V3vpzxEpoR^w0$Rrw?)_K7`rec~e&hl*6;TlK3MD)!Z z<^`%Qu1%I0qBk}ws=Z3kHIM)4M5<(jHT5YNJ%ZyFcr|`i0J57O#=?7N9CWZXTAg7f z*dSzPk509-V3AN5n*UhUkeC_NWklX2NQG&}UGWltH0LzF&*)-6ezDl?Q3H z8bXmTU;~bSbIw4Z#KlU;6`^Rp{HPH&nWCBTeM#(e1Ih=`IRulU!}-zi<*6p{I%xUA z%&SWD=Xkv_HfE3`#Rzsb8pq=tN{rDDf;U+z6gAtHna^T=d z{}H)VlcF$Tp@i`>tZo-()RdPp5MG%DAaL!#2cz_5X;_^m2KY1kH60w>csV&##P`Lk zO$~W-<@pgotikKoYWn8Q$``JGMJuBSL%a_H&JXN_U~f9+?$ho1+Ly%D8EtLw1}zOx zPzrn+KTbuTJTS1-hu4$D;jwL`Ir`{Y1J2;1*}0wMENr7myHN5n(zfe+2LcDVvH~YX6UvmBLd(K(P+dV=ml}O|8>K^% zwz2A7`h93(^d;dFJ)-W;6_m&dV@JD`XuYnl-TY0YXq~#WnBr3|Rn=7z`89B{ovs_T z=!YH^+Rt*f9P3Vx)R}_XbuUOq5-HI)K-kP6-#pyqL*l;ZIs|!8o=Vb} zGPluORQd_DK`dD%47n$AKDc=+$p4npKTC2I4rAi@bnF+33+=+Y(x<59_!`K1As$AC zlI)M?7INorJ!y)(D7YF9%|YNOgs?VX&J)gdtl z_8n5=_a0Fnyb&5#$_snlmw1Bz`-vZt-+Wl_Os}u~ap9zfiWW*(!L=WfJ3L-&C*b@H zApt5KW(w41;ardPQ=A*R5H>L!{qg4xth}66tbozr!7=GF=y@pk_$?+R$Drlr*yqSt z*RzTM2oOmVP^{Oorn)=H7S~hgtt1km7kAq^)K=n}j7QC&gEA(lXvxUF1(_pZ{1s6T zWAHc{gc1|fMa0|Xta}=={tgI;uokD>DYt14EC(p&Tu(x^9FD2tKfTafg(kP%z1SN1 z-oOEH=#{F;K@{MIX9HUM!vW6C8ou^^6g8x(VH%(6@4kzE_@eqSz-N~bfY*#N?JHTo zsW5wR(_EtAYGK0_OIB&N?fF5d-&6=X=ugJI8mrJMdJ;&^Robz^vV}6GN(Le7$^cpD z>_u!rosGvR$6!Ka2lRYx)G-=_OU)0q1E%R%kQft8ZGy!DfWo4=2vG%MqY*pysarKc zZdwOecTF-%EWm!_34^qo9KjVjL+wsM4H%3Hq2MzQkE=bkPanp{C8HH!Mw?GVByf&7 z=Gh6DLo5v@U4o|z*0loC8sH#;Q;qJ1rEXS}ZAQ-@UhYT6QXWZs<6Nu1afDp zyiB=Szkx8O89a8LKzFU)`W;*^G8I$l1nb77J~5Bk3_IA6?FuW;7l zM`8pfBEbk}jD7ZQX4>i%$V631gHJ!1PH>K_}>ClkfYxxET zDNGKUjex3(F!X*Q!cEd?J_jBm zDiEfPRJ(9#^bF23$3143JHkWm8nDG&%G8Z+#mc8hR3Hw;r#33CJd^B__NgrxT)>J> zKAWj4cK?`X8V-3ac*;wox^&^`e~CF;MB}eP&&o)M64PQFF62Bjgi9>`G~s>9Lz8k| zW;URfFg>39!eo*#)nkQwA--CNY2U>aW^QbykQrS#uX3#-jned{#|hE?s?=d!n4C^H zErldI`fNR>4l;p9JYR4tm<^Ord)rK0LX=*7pxc;ejjrz=h_qlp=x$4<_^YOP#|ls? z=M*>a^hObDtig$0YM4n6JZJB*roa9zGomv5mbq@(T6A!L68x^MaN z|8|fnChSE0c4&ZI;P*9Bv~zvDR}!1tk>miF-* zWigj1G0-}S%?*6f1r?+ncK)=*GQ@T;Dc5%gdUis9Sbwq=<Wsk zA!12h-9ek~)AqbB-@u>xUBM|`Eqg$U*o}`iH!I?!x>y|Cxl%U`5dKr|xt(e_wT0mTwMZ=|2Z4hUMkmZM-XVC`Lw=!zjjYMJjj z<~^F;yPHx^C#)H^s+(G%t3ZVC{eo(vS4z*2&a14jP-;XqI&-FZiqpWWr1Hu}ced!b z&-3cMI>)x-V<|sDd1eNHaI=7Lwy4kTPUg?Tx+MzY=h%i5#f@|f#j zh*p7)YIB)=AmfF-y1k2cdS`pzUq#*kH-DMoNPBN+G;B4A%E-l~`<;aVL|;#vSmJgl z!6UoKkO}0@RY2?J*>v-{jMgt+zb2BwBTGNPi{HHQ#6BZ>0IiRUrKRXaMkr8`N-;`S zTFV{`Iq-aIBH_BZ3om33YySelDaogd@R zZdV7=C^}dS*!GAGwgu}796V!w$qX|83=J;CuvQ99L6y=SuwjD~wOGmTQI_@7 ztO2hUh~raO^VuoEZf+~?x%%(N_0UjVPNHnz4qjlQSU8Cd?TX|IGPy+zV7?qHd4cuk zf=$0c5X8nk&8+|^E#alTDGn}>x=C}qiHEnGG_S!5-b`}{uaJyH?v6aF&B)RTV%&Bc zNov@%HymR?%~Lca_A9be4v#qauaIgy07nhgOw~~uK&3)aYQae`Mw@dP`RKLMv=4Lr zHk@rZ!Z?5}-u6iC>t2Lb2D3oUt2s{Mueva4f6HN85cHe{Ng`{Lre&WUXo|myBfN_l z*aRJZ0L}L_lFJ#T9z_3f|47?p0;cS;&b7{|j0A}m3{MfYV@^}x8$J4%+=KlY^#_g) zA9AdeqQS=5S9)w=@vFS0rUBAJ5>jCJc%!oajgRm;rVqg@-5G0CAsdvYA3-v^dL+|) zb6~N;pFbacYCfslwwIn2+Hjx9#0j}W7GY|?Vt;nqq>vo4-u!8d-rQVd|<6!NV? zQDn>i#fa}5;XTA`IS3s8nB1JHL^71k$z5_DJj_d|5oxG8{9p?wns(8%qYP|bswu3A z)oYEUh6!*Sy*T>bdIj&}JY$=v$4DWLWYyL+#_c@Q^TD5Wd+&{LCV4IVm7Zoj@`v$1 zq${~+mN0iT<$Cm)y;sW@$v@j=LzTs6;wGDMEwXf7PUOimccYf3H&C@O1c2B_P1b^P z&t4cS^_(pb5nfSK(&fORr_@8+rC%Wd7*zdW1$WF8;hQngWwL|_B~q2wW5 z{4B~yi00yxHOajD3;K(^^YrLbM&bhD24>WvP@lNAm6DWFpz>ytWhIg%Io4@zB)Z>D zp-l);C(&dVYn82DqGQce;(!|)sb^XIAW^=tQHV!`kbE{q{$2ngHv=`O3MQg~?~66V;I$s!i2Q{rOdAbCP4tR>n{uWn%&VcJPQs6svT zVRP3d$tg+lUDwR~;#~|9!#R1ICRHWo;gJ#$J@hA}%9<9Qv_rW9om8mUa$R3=O{%UM z1bEW_p=B$S4z@oU%J`3E;;?L~d&Wl2l$79Zs916Z$o=!0zJ?)-c93*tF|}$sKoF@B z#%tA72g%o^fMnHo4(5m%jn&8xyD^tvbcm(b<8WB{4`@A3@IUs z)6#>SWza@2ZIa8aG+l}~dW}UL?&kXh)n^8!xj>IeC+H>14kfivXp&ArwMF8*ivTM} zO7{Gqr+d6Tri#-j2{dmNcEgtINz$!j>b>sbH&o~;1>{=`&ms_6A86J}G~iP=Vp;F8 zxmQUtvXC*S%`*)OzS(%K+Eif=rn#MK2by%qIZOdz0d_YwAX)O)8&ZIONCcilSl&2+ z3$i#oM)5Lv#ulj89TCfmlEDz6JGHO3hC&+l4+00y9UaO2q4_CRmdHW)d1hB_DZy0vuBk75QwLOO&(Ej28?-Bn2^5CP8l#@XkQE|>JKO^I4j0A-;HK%x(mhBdY_o4{G4#>G4*Fh3y#o7}_&YGY(V86pls6`fV zl(x3%8E$h^ax=S83N6uNcYQ74hm~oH#WKqwwa9w-u-q@#;8keUX~~fSI3-0)T%=%L zW8^yIVuPK;W~rlVdWKN_X`H3i4P8N!YbfN_LEy72*siULsfLQ0l(0-))I2GY^D->z zm?TkdKxy-GY?ML6BCS&l`+jJhFm@^@hMwf+Q6(n~WTQU}HOEOoTyL6E9pPlwp=5E;*hT6&jk9;d} zcsC02T7;YVg;+Udp2AXc`YfsKC0SMmdYpaBzq+29;`L`Z!2ZYJ9xs=R03T-J(@t3@ zRqZol%dW9l3VebueTu>H(B-8MixS6zx}*cGb~i)JB*Hr^^95y*8~>Oh+Bu6wx8*nS zEWL`-&M|4_hYrdIOTyJGMtRBXMF{OxK#C|A*%i)~ffAgE2}^DI%Mp_t$H^P?HZa6uH&#G$Wvq$A+#m1PH2is z3`Nl}%n+dL1@knPx8x{QEW5pw6KTleTZ%X(yX;{@ThiGxS-pwVJ-<{?y-iED){Wui zDyDovWzTGUp;!os1qx8@r9*B@Dl1LZ04>gAz`iHy!d?&d<6y}n?ca1hlK!XDm|+)= z8sR9bYA3M<5nA08<7{qtU)?nmbtNE&7STyzuiAQ@n zh@Nn-MZyPDz#bdF7EyBd)D?EEIdqh|m(py3?+D0Q!aNJx9M?eHrj}s^bLX2T$~Mcf zxn0?b$LI2Jn#}Rnaex=Cw;DQHX50dYK#lnjAoy9S#VCCIS7%Py>$y`&tnZCTbq;zl zMr9~W$gc9ZTv5^MFP8s7hJkh)Cqfcg-O)x$N}I4E`r;xr|EcT?E@>l&rs##XO6T`@ zHnvMjPBYMsM;JpKkz=Bbi?iZ|Ou6xN!OH{&8G%&$cQe5flP;Q4M}EwrhVI8-3|-#aP(A2-{nYRncSa55ELk z3YjV1t4MeU5#c;zHCoVBlqiRZd;U`uWkJxP*4m9+&bxaHiL!>i+X>FQml0$l)?q0wY~h6%ZkgdXSNl4IHr zOTS>`;JmpP&Fv~WXvHX%$yfwnS(}|LH{--zgT#P3R~6Aj*XrdmS=LA#w5Gd_2VN0; z>!1GRlH38!7kB22duv}2kj&QZHYe7&lGrgRZDy4xRi-|e;8|F^!-DM8EP>Hl=2D7j zVwWnwi_V1kZxq zUs>`a&Qw$#-nEu5kPBZGZxGJex1tGl(O#1C zHG^imeE2RlUJuX4MyFV?-l*I5Vl2UCz^Gp^yTjEoM@JvET<*+sC0}RKlipP+=oiJf z4@X;Sw5mcX1!KDLm?U4cm{8d~JK1DlR}Z+Fb9BoU@0k)DHHyxoF0v_pP9y#8Nj^0g z`qB?f)zT&jBIsP93+oibrqwObTZWU1=TuLv$WCQ~?4ZJnDI70}+?a&-X@*_IWF@~#94A^0vl-6N~4ur<9=#k=N;X)P*)KKOZoW_zi(S7AXm^F zD$S!)l$5FYvdck|M55t9tz(xa7weg=L%GrT)phkF?=(M7<|RqlkRZi=bS9qG5v zktq*%Xyc0~SkkVDFL_J!Rv5~75!-vmZ+LL>OGyo6?;~~3wnKk{T$Z~n|$n2{T&qQpowxl$#VSV0xF6t2qaLQ;4OK>OvSy%DnG zj;VI1gDf+>>?{-v1jE*0HZMqyWXQEM*-<71M$2lgieBNhUC}MHFX+t*FO_TR%k)S) z|3zlnUlQV$?KwW>^os~k_0SUd7-L*-Y$O9O%R=S!u3jC$s8zvLJLqoZndlIT7CS-O zP2+V-l-GP-JIdqP7rWHKLJAnZKJ=)nL)mWV zko8PPGl+%f=TsTjB}{_%77Qi{z%tm)$$3GTzu{Z`=ci!Z_ErQhr0GglOc5W&hbn={O#&qUhin;59gjng(Q3Y6UT>8X1i}aD~IofxTq*NF817DEMpT z#{AC#O5)(5ohtI0OegEK{c6*bL8^HCMPX*eH+#84AcIsH*X(>m)*S;#?jI zb8-Xa^oc~SFstemK5c;Lw?6|=fl}B3T%f+0QG1uQDFH|UfzrXp?LgVA=22Ekv0hfP z50S_+_B2ZV-C)AR4x~hOr|bc@?F$?MhRiyC@`4{QlmkxwhD6Ej|WkBM#Ac)+b# z-il<5PO~!K97w+<_H?j%W-ZB`0HpZcu^USZx)Ub6`d;qD>!P%5I!GZ&N)$`I!wpTK5kQGtU!l#g|6cglMy8;#U!JDXM z(g>W%-$Y41zTpXRgAUjDJpCnsc%ucaS9Uv;RmjxCkU;y~{5_jA^8j-v( zwEm;%iB-{S9#>%u-#lA&**qV>JFNo!5XN9#VGO)`{L)eBk2V%yk}i@OAeD+nsBih` z(W{*yaWS;Tl=V_buUSz-WIWTS%wm{Kyf%ocYiS;ZePe255eLWuLTF>0*y7Pz$W>Os z5|5~i=>1pcQR=oZ1hyW{vB^8Kyy$}$_SQ`mDCUH-V7g|9s+2J3iNnI%=_&Uebp2$Y z*Y^%G*2~3pZbU3Npl+mw}yplLHNKBp~^ES zR9~Nse7xaWcRYyTF*k|IHYIf5#8XXVxCBUxPy?^s|400^JoE>$pmHQ(3DMr+& zW&+xNAku~Bo=jr*KZV{@sY+}EnU`R#m4Wh;1hj5PSt4s&SXa9qTTz8PA#e|lgtwV8 zIYgPcJk*lk)YEMh=Hi5RXCi-GI@rkbdWOwlLQ8j~e$PalSAjHq#3rtx51aHC50;dU z^V%D}KpZfLhT;mOuSrp_Le7BnAs<;&oE_#o}#eu}nCh`YPsHHiDyU**Ete?C)MDH0aVQ zXBwGZb>CivFhQcc@7@o9(ak;DV*9XG@z*vF*@rWgfY`95KralFM<8ocj5wVZbQrF$ zJ54TbYiE$o*LqweevHA|?{Byl!-23A~)248ooHJ5g8o&@MO>QmEzX&fIlS9oy1ZmulA>Ks(9CsR`Y za8+!=8jntIt_Z4?F9tWB&bExps*TE%A_RzelxBiWB{TA?UJsdqK@3!zj<$MW%rKee z9z$=5i7&8onN{+4p3O!-&Q}KhV0Zm6p`Ref(-lYZch1;izrnltF>@t12djDn*w^K6 z0NWO;5xLO9i8TS{$FYznO*4ph-;`0ZB~ZjXwkaKTp4*kXieltH@Bmo(&3FGJ)N!c^=`uTX}3u=fQ{`1kR`EV@@dVkbF`i^O1!rCLqzHH2m zt&qiEz+0qJNUQkLq7H-Ch;&ZpuP~Hd_vDh96%}9N1DRP?Ny3|o*Cdm$1K&K=7t-~+Tkemmyurx+<(u;Gi7XYr)YD)Y1<-Pp39Rdt}!2(i4F($xo7<~o)|65Xn17*9oT=( z@9I;Y8TqS!hr~4wLD~L?kP~dtuHafA-hJHNEj605!L;9o>Vr(b@Vf)%lNBxWhfjx98JwQEhbQmlr!=5UN)ozLCD$$y4g;p821IJHzSxO`?qY>o%a^TIo6sIPbm_6?6 z1l#Vo>|`OTQx4Ybrdl6VnULJE7tA~Dh&DO9?{P+ zqdhJ-NTzgNPAug{sZqvH2olb=O5b=o7wZj8A}x8oBB;rmN9h%|^#kRVoCfbI*jUD= zdKtEPOT|X4tmIFM+8GbQgJ08gV^6Z^MC?q5_;KPzMfu*47z!{%*xjJ+aX3(XYb}4# z&!W1ryb6ES`K&T;xqc+mJ$AzIXucxV_^!H`S7mDWUB$1?RQmho%a&|6_KmKJYG=tm zwlr+qED5cXS&`RS!?Lor909*H<3#Jbs4*(7_K&5p6hejVIz;ah%JuyJ$&G@)p|or> zelXsw$l4a;!o{WpDhmV(J!S2UzMjc<<-XMpOiV{j9rD3hAz}-n9*?z! zxv^Gl=<4C*gdkRKZ1MHbIcn1j^iT=weM)*4w82mm#j|*0ae*7`9+wj^CW#c8<$p?1 zu}5-5lh}6`$uvxyWn5CAkExY<)qc>~(Wdq04j|wy&BSJJWHZWw(@o@%YZB?mYG-+~ z8YKC*8NxqNYlv?_Ln#&s@TFWTN>q9^b<|`cX+QK!2^U$-@t$C1F>!Ls%Wq+46MpNnh6GKcCm$M!fVHnd#; z?SK|HJ;19Es2LP6R^n6^goN(og0&rT#}I|kKh!Y0^W68c&hB>5l2Hk6r(bx^ieDF};-gC+OT4|uCzU^n{!M%IC z_xFFey+@_P{k`vYe|Wh2XI|x@_10g%pKlZq_x*ML8b1F1<@cLUK3V^M{>gB(vA()h z#<|PeK1)X#mQKT4*T26$eEioxF~It*Kiyg{y|?e){o%pGAMQWc|9bEKpMTii-+%Z> zo5mf0d*gFOI3CTOU9oAFGK2puDmnWmM*~!++qo-IBlslZ8 z^Z#Sjc)QpXH$|J;oE)BRaxP0`T<_EG!&2wj; zQer~SoLxL;c?`BjKCVd+acGVMb?Pmf#6oww(-Ue_JReXC5WaB=NSxNVW=WE=jnehlyM(No-Qg> zWi@?aBFnoEcDC=f6B`+Q`Nt=}-W-0vaSPw+_qT3APaDJUUvB8%fWg-wQ&p21J%`g7 zcz4NMO*j%*)&7i!kb`jwumr`2qiO?bR5x7>wU_5c_R+9~Qk=nQ3gJ2Y$QsmP6oFUK z^W+WAVTL?}`0Tu#D(}9sH^qI=<5jQ!&P$FJlnvHifBI%^v@-Z4W{M8YW6r#Rhh!PN z{_G9O1+PDUvnEONW+lnpJCp%^4@@TcuMILfQw-aE8r&KX@JjD(J`*R$QDSmsfCO!R z@*T_&e@(;n;z@jy=*!LXcRK{v6YXOeP>x^<9BWS=fA-|@r%&qQ>fNPm@Hu^N!ooHh zB&U6vZT>FW+-lnBSZeBQ^Y>2%zy9jr>*D|>-0>2S_KEA|1tap9+p?0_Fw;31x0BzN zvr#tWS~U(dP127}M53j^MI;HCi{?7d2A`fLD%5!YtR5}@)?f^nMWmDY1GCVFW&V-T z!g|g-kRsT8+aK0&s}h5?!=L~?{kLU?74=9e%|-jGLn#oGAhWl3I3B99JP20 z7U3=A9wz;w(%MyBmU6fK|Dwh*e#fOjgL`Xl*E#7hL6tpXF?SdZx^hhTnMWl^w6VBqYh+ zsY9DkCpJ^p=EA@)F?k$q)MN8aRSRP#iGZMT!viVzl*Xkp_Y6IJr>taHXU2>zA8*f_ zT`~;=b;Z%u;=#=}Dh|}qg|&8^_eYeC@p~}UOpfgDBksMC)ttC@vUfRQXBXc|df!fx z73zo69y52H3sTh=M5D*E?Tg{3am;OFq6I=He)|Y9W+4k1v_t=}*^T9N_7o@BWQGl~ zQsA*Eop?m%6IV9ey>0KxD?dTOP3$AP^JGL`W)5&xh<9jBPE+-q>%)OSwS}SDz958H z80y=BEN4cC;r#%%=_16c11S>Y#uPw$iEj2Cx9G$?X}Alysdzrd0nj@ry_J~AHX~1d z)i2%5qb|YoGaQQkkye?iTpDB_7q%0v@E7r>N8DPp&*F=YA*cZ#T4^{C?$`FpK<+hf zO<`&2vc(Myq|o?9iE_Fuf8+amUl4}9TZaQP&-mhW(+XO9SsCSI9am2<*7yoqF-RT`kCY1$TD#j`_W3w^K7m+1$(p(ezXIGIot{6$!`29 z{~SF$=Z9;_zW5S*y%VVYbz9Fsy{RYsj)mr5;VFc?%TsyFtL@oI)eQqC zycK1>_$a4!W%8qr!(qf@A7A^gw1y4=V^z1C%7t=WL$`A#W z@Q!sw`7QDR-!Hepv`W36%;Nkz#=Fv)14zeWRkVr?UL+OvDmX!>v*fHsrz@#joR}!7{`{Jwgh@- zZDG~sbRB!|U8Fo(T@CZ_D|RoONJ~dr+@7}))at6|_TKO9cpP@7t=}(>T(CGFonOwM z*X>=v!5bvJyj8=FO`b?z;AJ%H&(>W<QI|6C-Vy=>0Y}dS zPu3}FOX3qERl#}U9@)ZQ6lCy#l79=Ol@6hYUUlZkc#_CPSO<$B|S}*6#$Az zqUEX9vBScX7&zj*Cg%9@a{zzBw-!9ejDey*V!L&|lQ}@Tkjnc`xDCaFGIQR?9gKNY zMwbaN+01>dIsf(1BTugRiQ6L7`Lt9}vFXs!9GGqHIRQ|XfUrOzszbSJlK^T2yZsdB zOn|s4(q3qia!AcoU{PkC&w$D~eu|@+np~P`G_de9mj@0B7fE;2^o(ZOt5$J>9!7*& zUmaY%uY{+xv5Q+_87q1hT}Mn%DhTT{Wpp#Ad)Mic<4h ztKuiV|IO1RFJzeC&$cEn6#n`z$hQFeF>$&N&bU4h*DB!sFJfD7+1LM{Z~bq`x8AZ} zADD5yWu_0xx!yKUk9EC|!nMSccJ%b}WDhsX?sQCzYInQ2r1&zNUQf@sYB`=F$arc= zZ6deKMQyKtT!26t;Gd6dWJ_$aO0QPls<84Udo1@7UO@I-o)rSwYK%m?Q+d?Ev#LYMnV*C5@sXxINnTA$)XS;;3i!nO%qLy3o% zUhGmTJ&HGaF_9Rm7^7P}?6sZT|+;_InGp_SVoXN+Q`ZGM`#880^9C=X%KyB{H19 zs&oO@4yU@ud@B!jP5biI+2^%!`e1tAkfdDoW{}rV zvu1>>9j*EOYG9Ez@tZev>K`$W-DGBt9NEZdF-lCeb{^whHuxRr^7wM5;X5My+4Cd4hlHIi z`DDql%H!@xjN-Zb*t{4fFVcZFAKa5?L&B~&)#gcy9(Huxq!#8_ZDWo|`GTl|4GVbD zvl7Jh>hr#zwRNtUgH98CFakt(**V4KR3KU6tg{t04VKd1_90hih18-sge$`zYUO3~ zcu>UE3Q_=+>%IY8LHIAbDkc_XV%3vT^yfXxx+C%92fAN21f|@==EFPwL!t+c_ zDDI?jO_5P$JWow5ODVsUh-q$@^$?8v+1=dIF7`d0UIp3}`9D;-!R`XexMf=t&DX0R zCZ}k5qZoI7u3$v|9xQe6#o*JnIrI{OWRw#OO~+VG{-!&W>@F*5yx2*vBr*r2AB>#5 z&fm@lp{R#Pl<^MV@9!b1a;>5vtFkkdZaj?s`^n0dJU(5dGXFOcn z9E}2hp{xeu|6#<{%<;dNzWjRBhoP@+aV*(pzC7n%?X}h((b1s8rUp-uRq`|224&GW zRc-bkJ;r$PQg6{~168-f+|raQTo`y*nI!fwO>Kpd@WCU_@u%Jtjs6Sb;*psOu>Tm1~$6XY2`T)&Fs#(@)^lt z1tFc@soQy2-aErI?U&$~zm;2B-wvxxB*{O(&<~9%ErGGFio~x1Z!?s5d+Bdr`dDv= z^le8kM{6c|2Wx+%+F(`vP|zw&j3ndKi?P4QR=doc947JPLMggYqcG@UKYIYm=)8>B zFMEw1jpBw@>6bfHG1?qd6$bZsh``Z;!;6&ySvEt_gAQdvj4(VnRwvuJge>y1(EHbz z=}l-PIu;?x&j_>NI>5)`&m2`?iaLRYjE`TKeV(L=R5#7Z$M%2Ma1gfJZ&{Lf~u;tcu9DOMY;t%)A13pcUPF5-k9!fNh_b4+seS|^#;O0$FKz}mDG z`whh=GQ8a~cwslJ^L4Y#7UF=CMo*liTR^1|;MZ18%FV&bN`qfpcIJx9;{d`@0+lPm z|2)MS?a+DH>rdP^UKnLE~QBV)i3k=!6%y8PoP`{E}qstaQKrd&nON4&dzHXF`-%CzIR2A_BKOpXe+5?>YFK6TIO!iY;eso|LA zQLx$Gp>85i&<;Lt_o90MWr%>c1|NzA7zKaQKV(K;0r%rcO!0(7_THs2Z8|%J141N@ z`1d>9p16`E(abVj8E`+-skc8opMUlwlhnL#!{mG|MiH8+Y_Ai>B0V(A6mHdi->4_f zPMKXud$Jz;FM3_r{KCS@#9cJL6^UhH6pV_$20EcnF~UHhEv({E%!7j1O?$ELGHBA2 z*!JgLPS$R2i}uo&>!E#YmmOQmhkc!uz?$6=P(??y8!mn`ufto_D0sTAz;Gc`w?^wH z@=RMQQhy;`O)cKo*hXqv)IwscbD);U?G(G|8XHOGmfoS}b_XdaZ#eS(;Y7we1kQoPWD|-F*Bwd$o0KkM)Rkfr=F^B)T6@mxzR`Q(hMW zU%hnKv?tMo3Tosw3>ZF`-!K-NOZ(kXkO#gi76oZye2t-7ZJs*WKHMbHUCoX3C;ROH zIeLgSH#NGalz*fUvX|tcbRf?{T8Xtfu7~P9t<)STWfG(hoJ6^gx_NLYYiX*~U1Omg z!0l`_Lt;Hs0%+MPevipKr~?(VHtnrp3&(eq7eAuz-tn|NGY70HD-(Y3Ok<3NB*cZC zh;g<9#-WcJSUQUqtyGp{cY!&ADnx0JD`GXOrnw0h-7G`d{VO6h^EOlyF&_!s?o}mC z1KE{?m4XEp{m@dnAu6OBDUzfWQ*lQjhinuo2fLa(T=7~=>-ef~UU$#5n21)8?4xT0 zHv9o$Z_G>fYfd^BGhOm2&n{V^CDr^`U+)>K%94ioY{p?TmaE_zaN$E;;E~)Yn_R~5 z%ypL3u(}csAFZln^Y;AJ^jUpYs>{$MA3mz1an(S9dRZohl>Tif%$1(GVLAdAYvum% zt+Gf^A&Q0u+YO|$1|D27&TuF8=9w(*z)$}i?%hlzcc!} ze?(z?`5icU&DfZhTo!)4rn6Uu7}%$8-mJBj)c}*n?_4+6-?gcgCBR@7<{M@nN|$)l zF~}<$pcYwOs^Ql6ufKo2b;ABAbneStuiw6Tqwfl^4I!7>MuS1r3;N-!z5BN*9>l7* z{_5V=$J?9#*ON5WA{`Abg!=lG-w0A-BJKO>MJ&HiZNGU#xsf$iSF3%F55*P>;VOTN z%2V-`c`NK@VbGX($z*O8knA)od-`{hEzM?zX7Y(zM!=({0e?SEvOWj>2G=)P>)nI_kH)dG%nyo zB_WkJvS*yg7@3~s0jscT=e5gXN-RAaLr8d{vN?Z|l;-2uO!v!IYoN9J9aN%^NPam# zDtGg`+msUqjPJ2SHtT!uPi@_xBbQd!e#JgzL#>)Ei$6DgL0TIh`X9>y50()W7WB5Y zh4uK>pPtZ(?!!!Px{r5S7mAwt)Yov+mkQHtv`LJTG}F~<#LMzWm#CD8yWI*blUgf{8##dfp;M9q&R9_p!Ge`0iY^l~;n2VSc$OvDwDl@IVKQVscV$Rcnm>3hlZGHdfldW~Kp!j;aiCpG3-p1CT z5{ZbZgMB<$ToqSjA~r$eu8*`TN>bW#c!fc$T3a9Cz@zBPa2_gi zJb7$#q@Hd&IKL#h`kCV)i^y4VOO7zlUS8apW^&=Y-6$e}9t92nzcu$15se z13>GKBjz0~{k|PwNrC33`;u=PGfGEa zUV(!vmU3X1AB8aFB}z9c^0?rL&IhP333G3i_$M-qI;5wH!6u<7(bL9khvNH#y4C~n zi4yydas$pB{MGNNu?GgG9f8tzBxQyk*sX*8MmpFy2|AzeKVZ_ij(%B?NuP2ex^tF~ndOk2foB)eTkPoEp>~vBD&6(ExO41ZuIlQZ zHc-Zg<QAr-Cc_0<5QWJBoe6Rxh+>BVNNy3 zW{!e-wloAs^DUKskRPdsT3r>}?Q7X~O^=dDqL5aGxz!Z_>sIj;hfFhKO9Qq1N0*Cs zi4N3G5J5BapNo$^vX`9fNE%wsE@uG>ug|bd{12fpu)9D0i|IsKJvgc6I;z3^1!iLd z7L!Pmn3GYVTTy5k?xi!d;SJ-OjxNH7GcPYz+wn#YC;5WIfBKiZ$jWarrQV?$3DzEN zDyc8nUfmHpG}`p)9@)yu8n)g=q-e=vaFvPb_)6V*kKPSXqp(Z$;$Ls9PX=psey*=9 z9hm2el8Xy~CzPjg?Y1F~mPIt&X;HY#L>rbJs3uL>Tyc^0rYmS7EWMSNU zcPadYE_`}g`Ge_3u#6&8V$3SF;)6zwbnzk8vrJsPIL^V#>iqb>E*lkS5R(#F{9wxS zy7PW$_echo6)Uxr3^n6nszC;{JWtu4zqnDb zBpC+U6>UgCpPeFNrs9U#1aDOHeuwt>aipJYy^7D zsQ?zzX|Q}eWvCRpJ#;dxc4=rYCx>X$8SSfypZvF_|z{|M@PHofgh^WRE#?D z&j+vX#CdqbUTYO*zb@>$)~Ul9%k?9FSZ6RQls%X;c%UnZE{RffIyYV=-q4CX*@Nwl z{$7WXke#;7j&lbI*^bjlyjlnS4nYbR{ZRBFy?k&bJth~MwpINW!% zfA4sKo7%%ZC`Mh;D%#ARIM|W7v5?ne00E{>4aYR@fa>KyCok5Ew8AlCv|4;xTrU?h za7gAC+^uYsJ$<@JWOfm7dPJTQx9npd8ND)Xpa=$BJa=_7nZe)P4GgkGTsWU1URtue zP7ZD)b+lO5u3i1p^A@&Cub2k7TIVaTownMv0xoFYr>`pT`)BvTMAI!d+Ysid%?pmq z4waTYxEgwWW5vcrY4*P>=(97HmmqI8S;|7Q+Hi(B`9&S_MvKs6)K(gB!L?)C!>31X zd^W08t2&CzeQe?N%6W;e@#Y6fw!PHQij9wk^~i{dgW92%=2h8+)Y7JZ?H(tjzo)`& z4|TD2ZSK68e+k7kD03zzWE7Y+raLnp0l}+LK(IN^ zj*n5-FxYs_N6TKN1>V`}?CN70D>#zqvA-)BbleSn!?ZtEGfW+!9K>$Th>6y;uo&t_OeTNo zu1Ap3wg+}u-6x+sX<{`k)2b6ZrV>S`QNu(RS~YagCG##=e$%5;@-n%s9ki+J0BRA6 zK95!*r{+0m+vjCM+*~+q)T%ws9X_rhbYhW#gaKZC6*&gX*Z{b?+WWe0l7pb-_L}t9 ztcGtJQZqJO*vHj>D;h?tXH$|lVxpr%ykY%G`+#MH)Q4N*7wpcEi0%&45TcrQ_x37z zzqo!|$O7YJO7~;LG@gz&tHu3hEC)(Eqb>*Rb#uVqI@KZ}_eiK71Xn!ohJ9FRJ*9A0vM*oU5{*^h zwdbuXZW;ox5qxV*wTI3Ao~f zUcY)jS~{(h$ng?E^XrDm_@iyT1nWwGT!@F316ngKaQVllvDO7La7+eL8W;B6vok6& zOO0xr8&SH!AGg;rwkVe=py+1hsoBzl74dMom!wNyufwx}k8f6QiEremUxHY?x;FNG zO@M=Del(sv)9c{+DL%b2$y~2;xWY(dpGKNu(?A|?pfvw#xE{R&K2V2){2tcYch{PQ zm1zKu!SwnRINbTP&xCfT-)~MRuU*fCR1dcmWdy$SvvXX_B*kj%lDgX5w^*3q_3vYCKVxJl!0$dT`T%@-!sdu9BA2lCBL(7ComhoGSXKZDDTG z_5;gkR=}o^?i|;y>d%WPG+_k;fv56UH3@3>?yg=D<#Oc4AYBhU#cGse|G}(H!`f(U z%0$-(M4bt#Urc^J${Z~Zp(5tCSc;_ zR!G2Vx*M?wb6%jX0l@4W?S|piQjZXxnwx*D)Pw(S5gayje&0Ui%k8){AvD<4E+4zy z3PEB&KeB%mtou>_Mn`#NY>2c22R~wk{P^Ra20!-8*SU@@03Rv4S^zPQarTyv*JiuZ z!)~Ky!G52-!14IUj)8*I_t7<*J?YS&fm=Cr29q!BX2Qr2(^U`*{d3Bu!Jz_)hF-sK z6N$(jkSeAbdl@|dRL}5`{+YW$r(W_n4l?fl)?qv8nZ75nQ2kR9)jMy_LUg@sdUYJl zFP~!U4F7wR-u}aIw5|mAq7V3?)cp>Kusv=*wf>tf9cx11^jlS#+tDTb-a^&53MBm{ zO{jxDGr{r%-jA)Xi!aOD8X5up3VrCsU#+jZy=IB!Kzs9h+%%sA8>k1^CRl<{vuw(d zG1q+EN&|{)1OuR#HRNmR)3-LJ3!U1jRV8oRyx0)Vm;LF*Ac?j9w{`L%*2sb>Y1clH z{;QTc1KRwn`v0FjLCi0*u=)DMc;xEA7lt>TQEV9fdVZuhd|cSU*W008$E5z7KdIdN z-w2Uyu(OBnHtMHVnIhKP6~e)$4baN1``ErhE+yYz+kS_v@u*E<#!Fd#tfryY4ip{Y z3889|TWKHV*ff|bVqIh_kyAcsH_?eCUfU@xme2!J-W$In^NIwGZLes1=(!usoLWN} zgn7&FBUJ(XZd@{R)v(<*2P1MpO0RX<-{mh)Bw1hu=$~YX4~>H|<<8w@&ykOme&K}+ z?{iR=tj{Q5`DwJFA9Me{MVwY3sISsl3T^DXgEp4HvgB|eJspg{TLhy;q`;~eYj+^H zmW@Kf7P;ndJ0J7YCmF`-uCN`r{rxHS@=vvCPbE}dyy=7cx(9F{(j)V|ArfKj#hl7m zip75RSzp>gXn#4I{WK<&LYzbD*2kZH_7DI4vt|Uc8hz7^uH7=Uc_MN((#7XT6RV^x z60&B^XGL>15UMgO$ot^9Tf=%lzoyIhaIDKe_+kqg0 z9`5e!?|ru$&%yg~?BcNlk)JIaX32)=2*2&9QZu5D`1d-h_de`VUBWTijq7s2H&|9? zbakvPA(I24oG>h0D+)}sN$Co@=mQp>O=iz7U(D@p(R{GC`;S;I6fq<5Z8kgO#iWO^9T5;z%F$KXv?W`60;l%zdTCe#Q0mnaGs$PxRsLJmDf7yH6^*D|r zP4vI7q6u+~1|&2jdAwuOq$CI=O?o7fLqPJ(p*ZXY&;VNmx}k1>ABM5d-ou_N+$%Zn z8($e&RSkmD*fZzZp)C@q%F2w4jEwJ$WX3HWMUyGo_WIi+2DcVt^-Ca6NXp}Dek!zU zF&zgv=A5xn(O?L>LcjyM4f=cUo>!cOdkPKtKVF%E336+YV7$RA}`38&pb z$RA@PaZY>yLeQxcAzHe+bkQq=NV#W!*$Q_p8z^?SZQT?(To^R%-TP;pV_;czDg=zF zR%xs1g9Izm0`uzSYd5nzS=lstBMse~&EA^(m+w8){quM5eNSn$&E0Sq3QT4>FEl`6 zGe+G7P4nv@$JkefN#_e5xvX=ByMi%EabFtx&F86|y9Pj`Z=qYZ30neAq0g&Z` zH6X#opg7~Ir4}G1H0z%KIv?`X31;@;G8h(Ou~qk6)#wPfw`-QLeS4h7!1jih95M^? z8p-S-SiCQD-Csz;$7T5t{&`Qv4us^laEeJmxj z+ay_MfA16a!deRmNrm>3wWGXbJ3bK~Wy4HLv z*mR>f3-N{G)l{vWCEI*(+eOP4m)w{tJOT;63p?84PO2r1eS3MV8)n}ryey2J(x&%+ zCB#O7?Cost>Ujn~g`nl#KM)aQ3;xMhp$7X*FD)a>S~O(o`xB}YGlHZrRxUiGk^Zj( zRO{3FC2tL!AIIGu%sy@sjwB8ky76G>+6AhGZxYJGO zrFHHNLp@A&R-)1J9+!QQdvyxAMt7~IxgV5**gf9cjogoG^tber+%MQ!uQ@}yYV)46Xjy$#<>8Vugx!&wVYS3z;tG2eOKvoT zPb654CLgORfzv?<7w#R;P<|R$mQzhOu?4@ zel@A>n!qI-E#CM=!7>WhtM*&NsO~I_XTk3Thml?O1+UmXubQORbXfW+GY|7vkr1n- z-sZHxC6hOi7-(tnY9fVjketZM-lUS~1jY)F?TuLCF!mq3!*9l`@OJ43VqT5saF^j= zAllWvM_1}wWMkjQObWtRWhy#@8}SLE>}oclenX8fZ8=$3Br3j;Nmt$^m5G=pPrHb&$M<|b#zlZz~AU&TQDTr8zusU7G1(mr206I7f#>x#gI_JZnQGY zquE^)ZKk0&?yo|g;EsqqES$>AgbXY4;ax3AGs6g2s~-Y8IEs;IzVhVogQdeJA}Sl0 zU$lHUd?=WDFSa!m_CqmUqY5rp`ljoWmcJa$DdhWpTDIQKDK4ymxhZkh>Cr>7CES;D1QP=XW8>^LOkq7h znNxWDk}+9rZ#8U@RyjMz9bj@22+kg{@^CUJrb(L|9~r8~ z%c}^+D|PL}wl65coM81q1&ZWRNG{XUz|IdLhTU0frm#TY*bGQUKHjUb-N`|GTq1)k zdYNv1JzApce7SNTs4Fzo;2>RegsQEk@3oR1uGF|ev~>nH(bUpmk_-qPCW8k(%cV6s z%v`b2DoG%YyiBK0G%d^KI=C}NoVw~iuH%h zwb#ihphHp@GI zO;j@=ana1)&CF&1+B$oO7Bp4%k8vtPXq=x_aQ_U(Q8B!t*Dlj+!f>kvYwb>I3Z1sP zx9WQd0@r_xZFN0C+xiU1K5!ORG1PeKY8leM-GN+mwlcGvnZkYZW$8B>RW;zs9K?0p z{65`}9p7IKU{`7NdKR_FsFVgz+OAiK5m~9Y9%!!dl^F!PQ-Xa6FX7uWdg%(HmRaJN z>Yp{v26S$dTCuPUIFqS28|erVwm$W;1-cy z?I$84UYi#U*{8kFXs@SUN*>{jsxt7BbdO~jE@!95^Rv$UmX%$TF0~T}=_^cXk>WaX z9)J86_XAsR`EDT`QQ{FCQDhTv%?f7)S{#t``=;GnD@KD@MDfabM6G&=a&e}$^St0e<$)6< zORT$gvj#XDcH0}$za*99>4=J6XN7mJ2lYKrv! zF(rNfd|Db+q-YwEoF?l;gU?mEW=x(&)d_F1cgJK`e=W3*7CcEQo=Jd=%g>zfK89B` zUQ}Ia)JXk#!CllV&^-K>_Ka2=f^(!IgvP#Q*J;?Q_n_Q`T!)6smnVStvm`yd=mhjM zeOKKC!`0*lU*;TZ@=s>7&R-P}wiXs)id!$ryT&w%T;-qz@XUf2exrk9JoVFK)iIN?U~@-%o1+Ogf_>j)ebDP1;2_lB6j1kH=pG#4H5MlQ8QyToe+ zyRoH#E)REi7?Z_tE5x4o_iZaSn%GXb71P27SBoDK2n$vn0wJ~brlg=Z<768Clp{RZ@=X1?W8z@^xT=kJ z2Pvan851s~au>E)yE?E}U0(%NlU+CIJVfr#NvA-E0REm9N-Vo4m`QXF%~31b!-a1N z(F_ESk4NvI;gu;eT^td5iAN)1ifmMy7i;Vz910-egYsJImS|i)PvdR2{~`R4?+UEZcZKt|dZY8Pb)liWX%=4+$})rK|*2tOljI6ln0CwOF?38EK>p$NYO& zgKYzE|4GZC)9zXineK-z2tKJ-1P?lv1WeRKOYAV5#ojJ{@S+&1op0m~9nef%T(YOE zBz=^ZmzLOTo&}42?wJ~PSl4=N$Yp*ehi$NQ*1`(BKfU)a-{Caii>h)$nwlmOO|ga2 zr+Ri3EXoeSb{|;fppz-01d}r>lOiDC3Tf^u{rNYQhl*cBHt!v4@;Q#v!=1DGCCUIK z!M(Zp@K9r-dVW(flcy@6ks~FsOnu`hO&@cQRG@KyfB*MZT+f#UbN3(PuBW^^Ha8zf zI0Re`99ybNsykkC=>4FFI!xM&3`|KtIRUx3i9Q{8&8LYfRp7R8T|n|ca>x~2=F33h z{_EM~peI*KPPm5M1^T~Kn8oF{qz}0qFOvsiXO<-fAN|85VuiegoV06 zM$gr_A#F3M^9>2YZ`T8Gt2Y^h6k@C|#>ib4IPwaASr*V9j}PwhI!N!H)pTQx`LMjn zy)OZr8qp0W-R3O157O-;6aS|UH{(j#`s!Hx#JB7L-AKV#_0Syjb~)w=twN5^-RN*H z5@AUXe1u=C9bP0#(!l*9%w-Hkm%8>acP2nOztOrL$a?I~e$?eguSj^rQeTU2qUn2B zXT5YBgMZQ@ngXRH3$~Pt_eHbd<|rC_ep=QCp=8?`s=?6l7^-GnJnpW?M9?Pd0)D|t zQm{z$?F|Qf1MY>!D{Z>1kpCemzbWAVf zMdC0BDTwWmLN3C?mug*C=vj#SWPD+lO4qfK?#ocNaN|8yO}JF$pT?`QVs$y~G@sfP z&S@7+Vd}9ZC5osA`ZD2>zvU0W$i8Zcn%qF)EU6I^_ODPMq)BqF0eWbc{{S#}mR#;6 z0AMc5qLEn7Gh;~LZ#6uTuwL$WsEORi-mJ`G=#{Gnbrh9hLk&?xg#h2COjbjax~|?A!)tPJHxY6RCDh2U!I+v z-rC&UJ3m?s^j1&$LpE`5%&YO)=I?&t3?l83S-8lgvYR~%Dzz$LC7XGU zU64wVjC5YeW`&+m%j|0CSO9O1!zrw*gFz%{#10WQ!X4ti`!iT=hR`IBYX3SBG|BMB zmBwn#9k7dSRG9&4?^Y>5LX^zc*$yH@7`dRyK?wQ3Oy&e?j2E}3>az%{4~AR}-@25l z@(A$@Jp!>nN-z$0PjzctrrazBnrV|;D*s^!O11xtA8tApMaO@~b|SdUy~*R-Q))^I zM|BN|@T;WuDkn){Q|PT6opa2%4}Ki^E^Ujqx~-4OT^g~U>SNOY(Y6jjx1a=PWcx5%N!C0GK41XA}qZlz?pCyP{o z*)TU#uC+XcLkBB0ERyB^v|L{)kyP+S;Q@$O@^Vg|RvxOg@^zCmhvXr{d{=7jE00le zfJLLDyej!4taoGj=%(@H{-11_VcoBnMy_zBX|j=>>a+l_sN5iF_l%gn?8V7#&Y(884d{ ztn35`_q=bm((6^<17;8E#|LY*quT-tX?EMkAn2qPH#Q!2b2<-*@9fvFqw;(Mvf28=!PM zC+bG3KG*2!1r+2)40HszAT5V*z#lT+GBo)Z20Cdk$g@Vj<}#_MOeMN&>D=W73jg#*=`NQNUJ4j`4TYPgyCDj6_$}(6#U!541a7ZM6L|&N?j@X5W>?eJdOBX<%w&aWCXiP6t5?{*V1im1 zIuO-_PIQHbT9KqQ=a*P9+@TATj6T2-JVfQ5O4t>syYmKaS1qzVF@vyzN_v(It)?gz z>*f3uHkW>GI20qS(M16%W>DcmC)=bwSN^h9!JMIGhJ^OgSbJ3q3jpF@D8HtC(8j6E z{i&4tlgXlbir@$*E}Q#3HeF-pSMQ)^5;2MO@3P|*Rj_YNoW5rR)!U~2t!%EO@j(+t zpx~Q_kN)}Lqdx{pY`;l~Y{_guz)B4!PyM>W>!-#O$fkT$9eJiOe?5C;9eVYp7@Mf| z`^W}aFkj1WRLr0zi&FKVdl>U*k|#IZlscI@_T~1WN6+5lv1|g8b@c>J+79*lpt9q4 zPj?W1HN-TXD$;zgiJWL8`NS0{C zD7z@dNL^_J(FC9ZpUq~6x|+0`m7V=PM;?#RbG zyGyrZs%+w!(;L0dxF5e@fx+HnW20t}Wj~gn=YMZVWi#^khi=GSs9M->vID|zB_}rd ze9Bug%mI+DZ5fuWffarj_5A2(7qds%SeSBlGkZq%&G`1P;duw0qLbXCtD-7PU;kYK% zt2XOk6WP3Ym1;`xvHnRMRP~Av@{)EU1w*x!&kS{86guRMj#<|WunaL*0t+!1`j$GF z`Z?0M3?kDfTdZdZ@pPh~lcr1~G3HlEF<%S*Ybz4uye#KCB-Nte3LA#aWxtg7bg{8! z9^(lvh=eG7r->FrBF~q7l<%W@%aUt8N=sbHfz`JtbIJHv;5m+NhRZ{CKrMS11ZA1uXP}as!qP-rB_h-B)1miqyIs$(TkCp>scZ;!%Fij=;CdJX-f)FiD{dY?pwt zyTDmWX6!>Vo2B)+)n#vu)}eaz~jTd)597M%5Ai& z`YTKoF=S->ATdA}Llb5uT_7f3kyQ^@hffc%s|pR(*^cZ#3qby!h+5MgWAG#;*s#>I zj}}>s)jeN=vqc?uh(c$L56BtE^FE?N2@;3N|22vh3f3{enq?iX$D4iU`+nz1HM(o0 z($+?JR-Dn=eq0xJ4NgCoJJ~$_XAuQjS%>!Q4NK8lnREu6H-K#seBg7mxDbw#1l&?t z`D})rfnJ@(1cUlz{Jc5ISd|``+I)O8K{$P`I&L*_hoiyj;`_!0M%>bcNdJGyL1JoG z@e9r@8V&?w_cU-_X0Q9e$dlBScYsrG*$Mu{K1f%OwN;Hj^NIqh8BU&{SUV(z8miPU z9_)VmO~jJeRNKQkFQU>S2N_PE^uie$>%6d?9?J< zh2gTsra9=14-a|EAk~(crcvy{FX3f%LvTmhym!(h{h8cWc-cEZvNYY{EMHFrD)rF! zU>LWd9WF1GYQ2NSd>gN6XW@>I>@|LBzjh0ORLS@Ldsuc*sZrho<+I<(YRurENwYKe4%gpk#zYk~wR=e6 z=?l!R%l9SM?vviD@w+kyl}C64C&*~Nb=Ln>1Q$|HavPIc^ZjRN`J7%A%vOJfCf&1CJ>fT8>FG|e7Stmg#<_VJtP z6EUmK-qFBh1$7A11sc7PqC2=ju++5{rVR@Cx7oRN2XPEh-&=V&1->Q++is`eqKz5O z;Ip@TuCVleyP}uK&~A7)J2$#upXgFD$k0{nN~8s$TFnYT+?c(YZm8{d_HG3Qk$Wr5 zr`u?~!r6nfePfX5wO+HMh zuj^pWQD|_n9`w2An|+impTUhl_1VRt}xo;dG{ zNHjxXw#90qcU}1;^Y@=|Z29Hn@T^}MPPj~fHAr_FAGxEW-D9&*mFocTvE$&ZoDD6G zBY$G5hX2};gK|rXde^|GnO#;ur!mRF(gD^syg3N4)+`_MWyh%bgX%aa1Ow@K(d?uP z^xR2aA%~oXy3|+!{8zvn%|h1X)sNCeE{LL@%2S-MgTfQJMOd5y^?=G<-}jm15F;a@ zP&juZsoXXo$qrM;Hr&l=eb|9M89QeDbu-B=fM$>MU1Jy$>J#eB9mrX7 z=AW%wm33^?2J<330X-n94?F~yyhsGt{N$>VI*ylEJ*pJATrhx1>ID0BR>+@;sFVs? z!2G|mf=~1er^}T5>^`1-%0hpFb&6+~;T525?-hE z7O&Y1>^Y_O!}SWJ<;e*%)J>s(XG*QTlGQ3CbqhTv0Fd39ena z*@-OI#m&ddEjwB-K>^(Y^{ef~kQ;~ARF{DPE|xI@N6l})G5GV{&5i9q#(RTj{yQuK zno8!$D;7quei&4ZzPPv@yxWzUCeg4tOhHBgVTwvjoYl?TiyY^SaE^+hblR(L#>dCS z;$sK=la^^&!OXn9`AObX{5^|Dc9$sZ6EDVDuZ!ar1(AIGdh4)TOmCa+6BysyJ3AVF z!#as~jhNz1KT=Dhfyv6_(LApL_7_WD$&u!?xV9CKAT1N_`_n-&WUA66?KKhx(b9j( zVx)j>>y1a;-#>82v8Lv9;GaWTyo&~QmV(sU=Jm4Ii@pTF8e@s8S|&hQZkP#)lXuFn z7Itv%w%d%ZW}X2hak)XBBa&F`LT~OTw@V_uOiNksz6L+LrZW|BmS@sFPLs((>?bCN zwI)aY(>9d25BP`Fs0j>_!A%~ipqGVWvzT)pSNFM~LgQ`HSrhF#mi#RfYmiQQooBqf zRX44r)#^~*{sZ=1_ppDDU6*NZ39Y_=i*(Rb_l&MszF4XyP~HzMxyeY+sEQIGKSs;Gy}FH&XeO?~Exhp=+}EG^_txb|BkF)+Pk#!O5Hm6Tc5UT1 zxRXJYXi)@0%BQ4-sP#e&7{;SR7T*1Kc5r??rfcBg;a$B6secmB3f|(H*YdLWrFBRs zQM}*2lXCqi>Fxb8>wXQ6?_8O66?Inlm8`q|KyEm7|o%I02tb_qA(=a(11xqJ?dMDG!XkNV;tap~g}b!dNk*{G4x0z?)N zhqaertlj?R&4Pi-SqOi$L-(FeOS`%=T%^Hemvjj150;6ukXSi5ryRjIRjfF&e^}-D zA$(u+Q#p2c*MUifGW{7%A2W*I`X_P$8Zu$x0sMMz0TAO-a`6JdTi#Y2`(NHFJS&C%I{K6^m zFeJp8FiYd?<+2P%d)9FO}71rt(j4FU4@0(MkNhJOy*h%Q@Yd!X% zfxY(3i+-bBHnp6_s;Oq{`X@zDbH#McY<4&lh$gW<&O{7)0iV?eswKJ#e(g4h*8Az2 zupFt?_DJh0#1FlE{1*EkC6I7ps@0WgPj8qYRBwn9Vy(OTGn;P7)p#1lZev7?!_qB4 zbbOynA~jJ`dmq4WbAzHclx9mfM^&W#?A>W{dKUQj9D?a9nfs<=M&c zY9MEU6p#IvIBSgd?#>Eefz5i zlhieI8?uHQb{>ECbo<_m z@18dB-zCK9flacn2yrEiB3~nkgbFBV=J@zAhypp-)1yKGA`~kU!%{CJJ9ZQcpZmi% zTi<;1;_=fLj~?$nz}dYQTf4hYceIEb^G|c*@UC&}ikqUFO1F@3zA6{;ciISz`9z-} zM^vmUy)wy4Q@l66=&4a{(v-AzqclV*P1oMhS!%;cgTO!{qHjXS6gp{a2W_!{GPZwK zZLm(&bp;Kjw?;L!6_c>s9L!i-^&wYN<^__`xQ`ZE#t0eRJ>z`PWIHILRTrzKzr?nh`U`95iwEr#y_Nqd*9!CwEN=0)}y=M+P-Cj*>;(8TX*C+nB|yK|{mf%Vym+@Q2*SQ_O^Wazj?O-(|qU6E8w(b3zN z$Xm3=zg(DiFj-(vLD*vXdry${55F63?h~rP9gD4*rLm?*8$IGnM(QulA&sGT;^{ta zFnfi)gKaj#eSj=~DUa6t*nqYqpKc8=P_2=k$k7_<}Q zfC&f-NL(aeC7@xJG3T~t<)J!jX0Twq_9Mt_WX!m4>6>hDa^+as} z{sZkmxh%L0@-@#!r(6@&CPvc<>?w4(q??y=2oR~9uTdCAiouewZt7>ensELaS6mKy zU*l&orjBi9@bE_R7!6@SPvJkD%$Wc`If5kZ&GvE4{i4_B+a(Z5vOR$SUd_FMN(0Ca z7i!l-%6!cm1=o~kFX@S`a!3yz6Oom;dIQBdT=-(v+H+?wB41n^w7g{+9KPs03iZBa z*OGOEo66(Vlj7e?piqgX%{z(Nj@Shs`yWz{rjV<~@BMZNZGKWb0Nw$fwc6ILI$a3< zky|UtkMD=mM|!*x)UMG{94M1(>X_dI*Xqj&ln~OZJw}jud_uaxb6tvcO+khPP(KXP zZi7&T_PM}}-$Qtld+9KEB6m}96G49X7iMm*d)I#8^iMy1gMsf{R)In}4?-`TpZaj= zjrz*i4BxT5Ub-za&w>hf98@Vt?)nL`fiuYCNdMg+k`TspeJploR%m7yU)!YZouL)d zhQzL-5}d$L%)_}jBQZYp5xStNo)NyqOGNY$R6%XkvQ*{Z7#<$-j$8l2L|i}eOne^9XQjlM zTB6h2y&r%4L+{6rKjttWf82yw?EnD4cI}sqNy%CIJo2+2KW~)ex`OW>fHqLZs{X$H zc{Pigq2^C*(!C8{q5yec&=zE(n1D+7Q0*(*AULR|{D52zhJea@uYN2!g>U7`g3Mtn zsL-X9XGUN}`rtJ&2&5se^}wqrk4~|$=o$>gu8fCW!gL@h{Ub8oM%3rc{;g0ly2*8t z4LIHSzR*pQ4bbR^>DpuMb*>QW7+6BR^^)vCTYr_wyS(Qh|n%;rQna6E~Ir{f4SNdJ^tlzg5rQn#4IiM4MiX%lxEa`WyNYE^CWKtgn z#9dx}(D^}LLrh;1u~=!2ehs~*0Z{|0x$qtwpF^_twx&nt$D=tAV>&$#7_ANLLUQEy z$*q{LLBv6e=$NOIdQ4k`jkG^9r^$SbUZ`E1@4*YAcFf@jUJ3|iqiV=bl${a?7-?ho zVtoR{+`YPMj(I2<@dnXvsoh|CC_qo>T;P~+ufV-V*aV<89OybfK45+FH!~I&nZA27 zdS_x0+d>iORJ5kG?d)MEHnm0N<-*)eSr8OhF^wh*5yb#n42{Si5qkhB;ba82tdF)LPA5V#gX&4{B6VRzIErVy5c9!q>np>!Qw z-U{d|C!;9}nIFGfDHtM|-O#1Vl!TbOGHD~heH<7aKkGu-Gi!m69@cmEJn``k#T(N% zy7+wX7KEX-4ZPrXW!!R$u@}C=-#r9V31Xyl z8}$y45qDxd9JEa~pqS*@?)gmkg2~9eM(;>L0q0~~9{n>-_H1%eU3u0ahjxyF|t=EFR{DC>RQkzG3EpP-jSZx&BoH+((JErq-ED_cL^t#*H<+k}ZCU&Tiw_xF&c~qv7=lz{ zJ)BYkAHTCZFr#i8%Z(trpze1GKwX6|m5z}rYxC3S3#@IbPl5fB=RxK$0};xcABlJFA^>C8oC2SN%arzV0H05bndl`5>vsOMv_r;Sqc1-Bgxut- zPkMKF1gTffKQQzpj<(W)>g<0UGpSP2sX!!pybiyGE~~~R^NiBT`~fv2aY18Id}56l zA>eqZ+LD9-pnE~QL95lYOUM&LWD%+KX=>>+ghWu%M1NYz3EqkU3588O9u z8QWJqjVjdn%<(|h8KtP4dSo{`U3x|k7mO@0b)`u_U!@Enek7V+a}@YtmtK%Y?jKu4 ztEQ96mVm|~LKg5ByJlqIVP#orA=8N9Ez8zgIKBC4X5;Vr-Qzn!$=v5=2*$p z*Pc}aNj@6N66OtyL`tM+l7(o`p$X6srIGQjcT;0a6)-r6;_M#a zETyi1vy+mRXLn3>TAjHaEB7KjRPS0O^;<=%kiL4+A~y+xQQ8}$wp~{(8doUXHRb#3 zL4(G!)W7}*AcDeMQ6&OYGFE|BU(wb(qhV>>UTtCJM#8yerQ9Tr-H@uf`#>^ubzu|C zAPFH_S$D+LE?Qc!vf-;~(1eMR&anecox=(5R1_G2s?AJW6{4DMQ~2Nz18I$Tg&ayK zt(S~b>~KHm%mozSP-L>~GjaSe_Ah%)>`ZWQ*iwsG2RJ$^_Ni-@35=zCC7F>9Ma^d^ zKK+gUYeq}pHQ0iXMLppLV@VJRts%h4i?0vQQAfQa8-V1ATe4_4)ZLQOlBQV#gKeU; z@6o@guLHFcwj-3-+ebpEE6l!*$m~2;iE08 z9%U%p1(u+%9QKSl$)wKOB5fo95Mz+eAn#laSnIVXa>Z_TZYX6^k5lbv-xjtZVo=|I zbd{ogjq=8hFi5;BU)`cUat{y-a74M~2&{H291f*9q|FbiluoK`65Y!|$d3NPKjg8< zk3XK&+pFUvgd^2m;0d)4?>;bWUixVK<85c}0_=fM5uzxVrJ-g^62IfQ)ZXr1kND@G!m2oY{q0^OG#tJp3QV0T^w&C=SyCBIICYx4oB}+>1n~lZ7yF;j}W1fvlRl9 zK;z{Y%GD)`sgOD7K5(6U?)g7 z!$c)(*#gpRFX$CA4G)6j3`pRp=2)w6M_$f!6~+XREsW$e`0ON;vGH+lkC$hnIgWVn zdRyrbFk-R|qEsi!wdX3{6yOEi{z5h3@x;?E_6<8DLTwZ}qn=ZMhZ!W_`~#aCi}PmcyyZcbfs zWC3Cw!R3S)bpR(FLc$J9febEa*GvTyz3=7B8a{F>uaL;uOedoanMy@fHv1evFRVlk zs4)N+*jIS_cqZ;E;|T~Q@<7^T3fbjJk8B?dkP$`z@Qr4>!ch$lzRAki5>g(hoLRTr zTe=DHk^%g05ZJ}YU?}>ty}D=QjyH`$1^CVf?cX={w8kD^v_;s1<2euC)f$Xm7iRqzrKJS32$8%-&(bx7BzUp~EMp;6h4n{|E`8Daly!yi zKd*!x%0R}Uc;Rhi9Mk;-P!*ge>;!P8tbzS`py%7k6t!^y(~0~5ow2;*ky6#} zwjb?2{f38v&=8v44?7>P^+A@S1^(*)@aE&SwJ&dO{-NySa?R%b*&M2##nGe)qlVM~ zF0bO$DG65jE7e@wWF+jauMPZ&nzrZkq_sCH(1z!Nhz0{h2FjgY0FGnJwj?kh%-OAJdFCjlMo`oTpWqYCB-fV><&K(GC4u}S7FUa(E#>@@rki-q zaG=KX8X!Qlq!EK_9KU?WkeY~EkJd4v9nNbWnBwW1=wFY7;C36jvR_Y-k?|5H{)ia_~KXe18yz1i)!q%z~=JtuUqr^=p6#Ur73MB+c?$Z!)dSY zRyxYZ`)x($WWD=PCl9zvoIR@kk2nh05FAPjzhn7;C}twky$pLtZMk3meLSR!h@dc&=DHSt48#I`` zk;~`HBII%NLO8O@Zt;^r@Rm?E$r9egNoIWYY!#s+p30g@t(coS68r$MuJIn33i_4< zaH78VbgRkkGp;0WyEb6Fu!}sAp6J8dt7u_+GUy&;1>LqL{J^cohLL*YWy7$!pc^wW zl#O*p`k z5sUe82zTlXs7B`0+4!{M<}5&t3^5)^#reQI14*DbLWLjL!)o+k=(q%iTs+gBb3>sk zLr3a)Oy;B+Tx3-?O9nQ{sm%5lH?S#JjKve%#=#N_)(L5%dLQ|tOv7LvGAX0>XQ`{_ zLv90(t3;i;?#1qKo{S<4OzMTTgA8C~{90Znq#pmQ^RL}9A6in3yR!3PS{eyg@Yc4o zcSA-^&PH!}8pnBiYROZQy+p8B-~Hm9K=arg&?L4VOi zFHmb-Qz;Ivp?X1wj3vQProzqLoJIq+N&cZ^Hte4rd!lSi--Vq^IqeZC7~}#J_V$2% zZwF5j0U#UQ^weQeRwyN^a^hLD~B&LMt_zm5}4MLbi}15W-KOhN)x~+p3f#q zl4TIf5~5neKkHggL-KR6Hz$&?NDj>HZ+g|}9OiUzp2CBWAI6Lk2pPGx?f_%@Nj})W z4xFU=OPVE<6iGnL#h!!7$YOXiu-copcm@LlI`o&+5%8lX;$G>o0AcIs@;0R_T0Py7L!|%6t@AbBxJoFMP zcq-9$5YAA(8}>FfHZVuY)PzmlEu3yRXgoeP@!*uAJVD>!Ylgn#qM`!k z)$`8uKuIw5y{?9-?Mq%u2pgwT&5U4hr=uI!%me@>K_jq#VOP4^K%Aq0wX-@cuL}bd z?P#4zzvxPSQ6-Buk~Na9+$<||2(ygCxmi|T59Col>@-vO9JU+s+EpJurJggNy~zZp zHf(=&|7?DIcybo*6m7op_2>XyZx!N@K`fkWx|*=OkxUK_=VZ-gYZvD&2C zSs4p`l{qb%cgLhb%Q*&if%7sU1QwM{4uIM07Axa`fGn(sP&9KU8$?HfY7`mbw8oa5w zuPE7s3PQ}a0h;XF34|k;xiP=Idm>WAo6Eo z-HUQ1DY;Z*CS>rU0ORnyD#JCahi(ko4;?jV(A5j9696*yKj`5`Oem#FvY)i0zt(uphO+P9k4-o?5DSGruU5;sWROBK@j^HDWMmkHX>t)895`w{xu{7|H`F5yPnBAcHF%(cG)imizv zx$#D9^+b%Qbs8Vimi74iv+|?6GjSsHId)Zfu~yProqoY?UHQ7>xvvUra$psZz#y0v zk@rlnbzvcy`r#EgICvP`-1c=A9QZjzOu`LQBMQ{b%&U+B<~@}jWP_DSnTDyo>*hlW zUpwJHp^~creG&EKz~(}+LtVSqaImKZ$S}JKm0(Z&SVf-o$q2enmIAOJ7kp>~GBpsO z+p2wgT8T9Bx#)w(SP5;Jw7hm9+p!vaPmXlx^R$XVpWt`Pj7!X7YoV?s?s(zEg;B7h zztQ5d<08lEpQ}aPPnTx02yI$PN71c7mV5u$dy##3AH*4-mqd@CGw-iK7qnS~v?}80 zCJF0)`Cj=O?394N6K{0n5FKtBe9&GMcUj<^v$|osTXj3-h_xWEEA**i)fourqo~(n z|FlxAR<`xXB)9@chCcDHiZ@F=WaeY9&0VH#xczCN zRF7xdaY;x{jWS(&Wlpp3aUK_{EP#L#VD6ED0{{h6Pd)gcc1VvXy6p${5DrH@>pLs{ z(LFuLw}Si!{<(dKJNyKbcUE8yj^E0SJN_2$Q8$!X6-67lgZy1N3%DKHVQG#JPQSS6 zW5GN;J09Qa-QFvS8S-f5i`$!f`0v!95J*nHP!z`ex<1z?yX?2!$?Z)*>l54L%>0)$ zOHHR4{J1DkdpuZig<7e0(%U8qpC~f^3gOAYdyP@`S6j$n>s3{P@gowftTX)Lo3`&d za=fhNuWf~a;EL?a`(Qm)d00sg?QM`ygKvCJMri#8Zr8fHx{SQW+XZ{KH^;i(z-1N4 zxoZ=HnjxVi3*$6=%sOtKygu<68<(>fYZFS&^P1Z-65s8X@p^kQqvLpXc}*#Lf|*&J7%O4%Pgz&N4+BSm=~Lj)rr7hTMbJ$VL}3P49w7Gi`# z46Z&jpf^rt`>z(D^dVK`oFLY zKt7rrh`LX3EF*=Te)JJ;RTZ|8(zt$ox6cWO$d+}3@7INbsV)R}64D*n<^Du1o80J8kbddMql zEZVOFxyvE?h&K?}(nb^%&p6{FG1P2psXxp;M6%kN&c*C4QX&k;VQbPuEGF`uSoY8` z$bJI^BuJvv9n$aTi2GTwv3K~DH7Zmawu+YGFa^coCLd%$Y2H$U$Zo%!_cqA@AgIqE zbj4pNC*c@0N2UfHrdpJ9BUO1o;DgS4p8ikK2#t5>j;C0gO^2I9rtL{ypN4Ufgu(Iw zVg>qU$x|~hgH}7}w1qFo`1M}@e0t17djYpqfFD@}HhN;=Plhj9Zv4f{EZ{-I-M`}Q z^%4uQffGz{@1VRTKOM@U-`-#_z$pbeuiGc7wKokOKat-A4>h z$84WY2@Bf zeDiR7Yxm*fM=$=g^Y{_uSFZj#l&COrs{+>L2ynAn3W~RBw+V|QI&ws#W9$)@2 zMb{ z$U{$pa)4=Hy_SrtGV;v_h=e?03~R?>m^TQf8H_h!g+94SB)oZ(zM4ia_P!GB_(C7w zHF0bVL%s(~WjDi1jj1gdzEP|&wuUGNn4o5$tDY^wTKAU3-4GbsN0{OuvCR^|okQ!^ z0Iop*ws5g}IGbVdR`*b!=W+-X(Gwuza)>u~@K_`L5*K z{l|?@KimEE_y6#lt>1o%zy9&}gU|oR=l{>J*B@4^G=!KyQLHKX_5lW`4=NNBNSINN zW0_GQ`tEuLoop?vC+Tgb0Zl>jF~ZV<7yEnaa<9;m`kccLihW;?Repr_ZjKt0(d(3`!)FZMyP_ z5+t0op!rH>OM4HRjZzHCoS~M{=omF%k%tebB#Q5VKaxzrAn`-ig@dat;dU^Q8U)Sb zH=~nuP)00ve`x!w+#E#4ftR4Cd}A`4vaCtKyQ9Vj)?>0nBn=6bO>lvHI0n=KCU4}x zD_w``=K2m6B2re+k-Pp~DtXXZa(F zHuqP5?TJt-xawrpF3$O#m`8yVi9Gz^gdA$e7`pLd+v|VhI zy-jtpyEDlHfepn7hIdA;ZUUlX*CP`ESycGMay)bV zJ$>04>v(WJKfcvFd58P5#lyu%st7|`{PEtdde!(;XT!EnggZoYc~JnscU?kK7kO1- zu&rQLNyy5Fm>BT|B%*MareQ$et|#pFZF}O-Bf%+kgiIt(r61X+(EJrb^B)W^bxHNh zEvxfPo?7&8&503C?CT^27@{y1JdKDB!99eJxSDQY3H&DAbpX6Q(Xw~4>gRhW6S=Zz z$$Dj{Pq1=TMZh^!6Js0mb~AAT&1jlDZD zY0v(f9B3?d52h@%#g{t&!-8Jp%j@yBT)_y#U{n#DF` zL1suyB#@oWPQQUUTotRJuuP4Y3ft7?JtDVm*(G>Wi!6RcU?mNJQ!B_3N$zu@+v#02SZ0NV&M)(5E@N;m-JT3Sv*P`BP86Yo+hj2k}yFM28k zkrv}!-p9u+-zSgx#My=}kgls)etaKxB7&5BeA=TK-Ftn0jEsoU-UKI!OUUQVS#w2p&R`s19K5oWs^W;Sp{(c9 z8uOJ#^hG?2$A}#u4goWW1{XdBR2DRYP6A(_i5Ym5Aa=QNgnyV}ss5vIcA*DoT9@(7 z)6tvw8M>9{SmP@O+gRpr(TfaJ8SWsr?-(t)s-Pn+#t&2o_6P^aV1FN^rWyPLfdgp!%=(9w^PpIrrny zUs#7#GC##HFLig_#=zZGLhFk$D#|5twT`~RGoF(+SBITgS}Xgs#>-fCkduH4TGFV`Qx3`&$F`Yr1^8@2Tj+^>)GUhcX1a@ z&$}Wr{Tr1ZLEzHF`HP54n{1g9-$GdcV|UKJ%>-+~uBQ4s@i2tPMU!xrKcxLAX^`Md zIMR*Up6)lJ2NG^a)LrDs3)eHSa1Huizf`eEVJR^wZ>ltGyTHe@-9QSqIrJXv?mmfM zoR}qg5u#^$ezG^7UqT=v>2RT6*v}H$vTRKUw;DN4t?Q}0!R`BY{^$$9a0nUYzcUF~ zb^-mK=+Qxzs*35WtoO1xX#Fe{34a#L5iawt^nK)@r z7u~&xG9a3U3l@BxIPqZ=i+r8g>`e{X=b_&#(UOs#)*10(uNUF7SYn`{%G+hxSIZd+@UxPb4_Qtqe zdV&=-(n#S)4x+|52+A&n;$V3N)q_{3OEiNWfM1RtabMQa4*M?LC)T3dQ>Wrpv|VG2 zJ_p(TTHcqua>*2IzuH+;9crVuzCLv44NjKh(AIE$9lSsEu?>>?%qr8IPmul~=Q+|C z^3{Ef;{)mW*P*Z}<~l&Kir3u*7#;7@Qd~NO+QEZZQpXgUOptA_KvD7u61j{B#-5Ld z*h|FcLk;TEmBmgQvmq(N?KK|qB_=Y(p@0}kz|x~!s52tN&EDYhI-CKRooMe0qs?Dt zfMZZ4T@?tr_^}`DI>FWJ1Zm@XK$$FP5vlbV;(;h9Rq0CjiW^Rz^7bYI zo2ZzZ{UZ<&Gh8Gk zz+#QUsu34Bj~~o2tW~8-+JDMsang1ASbDC5!^a-e1x4 zVQ=V3^%E*pa!sOW8hcj4JRPb62Y~`6X@&Uao!Uh%6t#EQ+g1hu8WJ3$6it3HZrT?x z{bpxisiRY4xcc>7*D`=t(YJ7q%po%U%nXLs5j>e^T-4a71n|-W7+%-OZYEXEYD+7$ z*1N#ayc`BeaB2}_1U-fV}i(HNNfpPzlo3q7U8heD73ffT0dLRg`y z8*4pM+0=W6?2g#|cev`PnzJLxXB~xXFzeBK(JI95+eN4XrjK}2Tx9jiy~-c5A|={a z?Ln&9UOPq>#~J?weia0U8Yw0!zz`j6FoYX7k|QHz2E`w_1byZF+w92dW4>2L)8r*? zIOuBRTr=k;q7yJtcs934{#V@=nB>4@joZ12W-;?nrt6*La5%9%oxux1RW$#e7zDYR zawfBspqgv|;>3_#;G!2wo90XPyHrNq?n@+rxy6d@$P8=3M#4jGn^aH1sY~k^n$ZAt zDM67qh=~@m*}>;D=C4#LUs+y+;!%>mP(O)WO2ocjma0`O7D0J0qz{7#(@qZ|7(=g#CcS@>TlvWE3K}l zBKqWs7<$_IJ9!WcU4HvX{`Q(TaZD<9LLLDr1y%nnoM0O2==RQLdL+QxaG&s#cfCD$n{Ny#i!LIY+myPeuBp z+LS}HF~0#^c`RAZvlXpAMb}&Mu073)c6cY9(y`Z86{_S7 zXNY2gq7t3iX=y1?SiKRlB?hsnKDPlIc12G*(a2<1s|T1)B|iJtZ@+l}PV!V) zdnt8uz;qY-;RYwOzaVNl8qDTLo8#%`+mmDB)2P@E)~&nW5Tc8NJY(GXN#q5>MfGNa zO900Q6YYn;ZAzP{o#TkQk1pa!6g9G>lCo3)cpB7!NbWNVVMbqUv=BOa1}ZJT3Sg52 zau!Mra;!!kAD5|4j!-iSH_ZYIv=v5-nCfvJWYX{gS}3$q_R0@p#GtUfXXg-WgPWi~ z`N_ME2ieIiH0&+NdW0ZwAmJf-&mIOsxo|C_6+;Ye{zTR+s_iD!1SG$KUY= zbe;y&?Lq#8_J$~2k%bFx_1+>YvUD!TrEs?-xFlj96rFN>hc~yPG6|l-RAMC>(RdDC z(-dLK9u8Ug80K*~;Xz>ZL9 zaKg~6^GF-UN5gTnKk_D8u;&U2Vy|;QxoopI=ov&Lx0#1I?c7Q4|NO82S2my8C+7K6 ze>h(G=t6=(5vWi~(;W#YaD&2*lig-pLni0CJ^HOy&lXL!T<|d6y>D=in$+qh)V`&W zBIj?o&@hW00~pG&A@%4c+KmiVau=yPu%mUfkc8@TCz2{9RZ<(updy@CHy5*$F%nr< zV`B;#+34lsMmmK`;L4mYQnUreotp##1;3|*iDVT8nTmg1;?Y@YJ`T#2k@>A3fWsUt z_=vtnuc0sURv}*)HovUF7Bu|=pe``R=_QF71eqA@@&jXj}+KQT>Rd z1)ftsUv49{W zN_$L`*&o^Ska!W~@So=sxhwiR9%A3+A$FY!RWxBSj+Q?&CR^!seLYDWVv))k)OG%I z$;>?o;!NR-#c^)b<^tUjFz>JWtWxnmIy^pKywuT6(;LVmoWT>tL|)5zHk_qC0CK!f z7u;6Tbq+Tg@UV3Ha{mZ9ww(v@!JvX6Sr#Ii<9HhpvhBzIslll(Fnm*na2SE} zotMzEaBSO^1AFByny=N>!}A~^F$cXZ>`YweUG;;RiqQmLfeH=t3w`(W8!6T012~!} zQ=;A}zX7uF3F(HyX!FT;A&^>Iuc4`QDVvHKVQ*SuBdky7{2nh4JsuaTQFUeW{pCLQ#Ns! zT`(*G(#;p;c8t=(GSM@eETYugN2NS$S5?4G8|7vP$p~4KGcn#m0p$)TUqS|8km`Z^ z_rN++bb{sTB(=#!(NI8nV$S4&_cO5ZhVikO4&J>AHWneCfSH!a3q~TyZg8pRtL~yr zZ0`ZV6AgNvxv1Qj&R&c2hz*yJvgTuek8SjZ8X>)vjcz$t--wU)Hhb%G*qO`^pIwa@ z*`LE(4pb~au!>lsa3=^b+v$vc8>9~zAL$ZHMo&EI=M3(PybDqT8G`k(4#*owMTz_* zYJ;&vTMRU%?ez8%s6|l1G~LMy$x?^17+D7)k&JaPCv#a+BYh30YQTqUKNVI?xWJ7o z5Jqx?yAr3*B78`Zzj~lM%DR=)`*vnhvgfsChRVSA5drxk3L^AYzkRo%yIl_Kh_RIWXM&zQrK=nZ61chK%$Q|p0nwo zcOQtcLx#Q&yiJh}yp#&z!~q5@rle4OW#`J17~YwJ?a0B_IV!2Z8KPbVRId1Xw3zJo z{_W)Z|He`d*2}4*E(PEr5Mie)i`u?8XSA6reej|nE1SQPl&je$u4!2N zgsEMT(_TZi2)sHEO^vD^BHi) zh@Q5B=G2Aoxs;d!2t4_N?dC202mf7gjq(pat%dsJMq_{N0-7uQ0S&K;J-%9L-Srf3 z(#TWwHp2#mdG*xI3j@I+`8s8uYs=8Yg&lwsh}8r3$HLE{wCmwF-DeIu9caoW*vY&Wh(?X)n9J$^u`PHdjjtIcP8S=Y$mWWeJ9;Gdm^v20Xro{LB$PbZLRpgmwhd zX-meTl*KAaz6vYIOE9|>s=_)G5*VI{<0CgXI;rMDRw4ogl;KWHi=#IY^KVvm3We!d zLXHax@5V8XN(w(RXq)4pjvECIZb39|T9Y7^Qm}t)A}rAiiSjCZwPX82iKYpT$CGTH z%EwE|n*EXy$TQlH@l(~N|VlcB|e%CQVS_Vuh( zCl_~ksJeDIn#lXDq5xLh2f+y)l0G9-R8C=IG_mLu^|KIQoF&nEC!VZX3kA@$fdk2} zM*Iy2)9IFiZwuZA)&^wy>nZ&veI7sCL1j0nq3?JZi1@9Pj4^FJ$Sa<*)s(A6T*z$jucgJJmF;nRgP2ghsRKganXj;=Mr|&djcVDWMW@?Czv<68SA;_TRURe zHv{OPH=D1V1Hf8>Z zc@qAOBOw;sXa(nkP^oha29NKXYg4(bT!_<9h7)nu1x{qQ@WiSKp<*TYxDq1zGhOA3 zu}1I{u$q&$dl9)IX$MgyC|y}wCO>&8&dEaZ*8&)(R7bOt6Ta|siJ_khU|TXJK^*QO zEb|Z~5x)tgF5)4DRQ-u@pvR&n>sh~`Ar!=JowKORrWZrmOp0((qNAdY=+Fher>01X ztDstxhG`Zc`4=gBMzplDVj^CBX0x))+ALKWl$5e zAqR}aMiGoV+p1a2P*Tg1IK=u4<=_Y)o!{Nl@l4lC)qycQnANp7}d z38S8%Tn@G&-ozMqD!u1hdnCWk%vc`-mGwke6*UpKk})KcrpX#g={e+!pz?4#jFU$d zw0wePIYyQ_A{$Wd*|oUSxx;e;>1664#SGuzD5@|D)Hx{5O>l)~x`ZiAO!UNmk?o#x z0W^s40MWNpqFXg`TPt`pu>LH&fEZe^D#uIv?32 zLOb^N&jTuZX8JlTg ze_{?5Ut`+PWyc3~-c=JodW%la=Lpw;&0&M?olAa{Sr8bPo*-K#JNP?6g&iFp zgHqNUfHz)(55R+&@+;8^DSwa|GD+Zy1!&U2E{3lFBgQBUaJ_fR*B5@ySDspd;lmkU zTh>D<^e(%>6=KZs#1U9GMtzt<@bLOjb5v|0krXmmuDr5%e_ArlVRaY|Pzx4IJl&@Y ztPkN92Yl9KN0{GBP@Tr>Km{hqNuD9kjU+BRBYlD1iQeks^ngfH zZp*95z+0m333MLGu^Xx)<#7T-i(fAGj4t;`66NZck(o9==hoHAL*`q9uxoTl zqJqvN*UBPOr|QMYl7kor)T|GdLL^rp%NK$L)O2N-1d+Q>;inh(o*G6Czv+c3vQxfSB%-2=oy9u|Iu6E|*U_jyVt*wDMr@-Lrv8*9m$ zBwZqjGz#gLBd2OW^8Kpu4x9~+L6tu=y0^{_SfZ94aUa4LW2q)(f@~KyvG$a#MZSv= zP5se(Aay{66f(52)2;`wY~FfgEl&iW#8X_t44I55kZs;5J_8m~{+L^6Cz%F{aP1hp?+x*!zDE@HYSVfE&>M z-?PYhIdQmC@U)JtHZ%bG~q}YB3=E}HYp?2Y?=3s zk_YWx;a*9(@W!z7mc%ivg*OzR6KxqBoCimKGv3Q7Ovq0Lb|ebI_=mS#g2aMEjj^=RFy&i8OS@?IGpM8dZH%G`!o}Ikgm>q76HgJp_ zx1DV;ZEm9~syY}gPTz*p5Cbx<6GL>LnA)DBqW8uE$wez_Bj8Fa43uSz|E#-exaDcBZbN$d{IzOM?`LL6D)+6KLB{k<31Lh_g~E_6b?41qZiDVI_#H`)UX zn&>2eGC4Tbqel)54!4N$&-#a)s}ocq*F#+!qOEWf9KeLeR)A>|o$lkHszyqHU;)Ai zhv^O$Xax8Un#5=6gF|7!60KqI5gTu~vi2M|*8DJCiF~dg9&zc^IX)V)q>XOln2P|~ zp`VLKJQIA2Yuj9N`dGX|Jgm|TdBfE5?M)6-GIgGT}0%n+Iu11yJML z7tVRmEDpwjU?l}B&iW8xs@ZgpD7f*Ft~tDKJ;7cRU-V&NBUP16h|Lak`LNt6!bf^L zB)+GX1_5M}kM#OvLut6ikmwK<{5o_%;Q5qZG3LsFsmKN) zT907!>JlTQ!TU5%=abjuRCJpc1_i>gny!c!(Wg6ENO?DI9xR%ZIw#4Kkg#&W27y5- zsPwN7p8Boko73o#7geyU58NI?lcGKOupCXCFa+I$$*e5-t=&%KWv4CAfS>#4Mo-#e7|4xD<$mZ+b-W!U>D$d0f<%8Q;$$y zBjS=6(13xYrKe!Yp!b+|-rj;c268l03qSMz6Z3=-g*+ZzEOxA`!9%t1vZFj-wd6T> zU9U#RCrI<)_BKzo4KRHpoRvfF-CEWT+PvuR&)=a;%n`~Ty?poU zkN)wqKe&n|NI@zBxs&OVP06$ibV#nWh4w6o6WdBo8ifDUlNQmuuEZs%uFH2h;=ti7 zk&Or#LkeSMYQrPKN8k~vplvWy8ihvaPm5@hB~j};?_RVr$dmDW!>Gi%SQZpY>Z33F z{tTJK+;Va`+IaeUg7P>_frHjSk}k1G7jAI-BQoptk{lK>T8v`=F6=%11u4lb5)mrR z(F0H{&S)zc+rHzHG?vPT`U)x;D|4&&4RDZVI zGs}9tL?8{?N(4{6Z)k3&&p>aL>LTXheF-s8G^nz$t~{g;HhSyp>bFA8*8lUr{x@!z zQ;iGPtnpW2R+gpTXI8#lJme|Iz46(85HJ8@f4C8*yR)r5IB{_;DE*W3@i9VYNQARZS=Okh%<4t6f}`Rcf1wu=B4}vfiRRIC2z>ur4bV7<{^pL31OyM5fCdhUYAQT zeisd>Qjj&1*I_L)ZTKy;qMkGs(%3Mep}+ji2W6qhj5nDn|& z-;s{_niB?+DspF;T9S#7y#YeG)2v9_ERt&uUoLRXU9TR-_y=Z@Lod|sR2OVcAte}z zwWPgQ*c)E>vUcTxuX$neD;wFKsrrqf!;dXd2BO<)m`ftL_p68EN)A=|N{eKWI4Cr# zF`WPH%?=RA1yQ+t)X@`l za_A@;c$g67x;16O{*9_l(vj#?#t_nA6kX(B4nNt*lk3!IPVooy-v|$2R-(sab>G*! z-Xdtqc|EYcY7(I&JB28+BB+1eW`?3^2UuY(getX7Sx3)&6q-Ec+L4hS0A)HCkWejX zGHQ`rfVXqx)x$f>a-;eMjwK@(3Mncj5wz+dWz@(Ap7B;Cyn#Bz!P@~^@(aicvI%G) zO95fOuv&1qFfgKbe*E=`1{n<{G;MeS5%xbSPQmbi?TFkGNt;M;{zN65859}mEEEYN z$y9a(M;aFeOCAK(UFI}2q2p%RhA$dh7pf@rTe1vWH2}9kYlqmS(&brm!^T&`-r?~` zLdeZkqJKemxt2b8W^BP+uh?WhaxrMTtG1z*{bKXaIGc9AapNM*V$&kb%{{NJ8w5gdKIuG_rvgxwu*}iMpBhFS@=f%IYfiY*YBIw zc)Ic3&Sp#wWnnh!(kLI*wd!EdYUeB$6P(lO`YTslE*_9i7_GoRs^y!4FR`Ftp(Rh& zX){hqCLF=pKg7b8@;Q{BOmHGIa%TPBGGD^rv>yl8uND=58TcH!bcLEO5{p)=(c`H) zOoC#RrC~}{xlyHm$5s&GE?CLXI#zRPC|Lwv8VFE`@6ONJI6T-0$)3pWM%rr#EWm_v z80e7&zCr}ba7>#5X#aWX8L zcY(9qcAAY{4yvkMgUcFs6${IBza{r7aU-weKXzprWAx={??2NwG~AxAdEfBRf;%Gd zjNvD5n%FFRRMRm!d@SAo>ww76_veUZ!i@0kC|vywu9h*`H3vW?`k|*+nuBvEiWW;Qt7UoS@_)N&!$KgR@us6M_WxbuivLKRTka<+;fXpuO*} zEUxye+a6%k8VGk*$hYpj9kEKz$``-7jr4nUb>3M)Lg)DH;N{uLF<$g~w+|+-QO=1G zV#=B0@%+xpeR!c>ZpQ;@hn6S}i5<O?g?Y(*Xd-y$pUTlj- zA98eH{4H_R*L%f#Qak|n*Wkdnpner2?8xUm!H5l`(@Y@h5K_#CgBZrRTncVAlpxTL zVi95Kj{vaX-S3(r@Z&-X#U3Gd_H1za^7Km=I(OL1i|ws%zWI7<`=5VJU+kTobC~P@ z@cE|?#`75=H!y4hGOR-G=xWUa#f3-5lY8af zy-jYudJob~eR_r>O@d2X5>)VI{gS>cmF-<5S3Y~L${i2t*$(ZmHg+hRt=?SlUJLwa zMaTIAZ@GnIc)U#mBS^zpcwaxUfCK)inn&^w$VeLw%yW&hD4^O^v%kt~>_MDvY|*+^ z1t&FHKeD;dGyutCMJthGcf_q(hKjd=es5t*E5mRx`xgo>id+k34Ej&>*rGiH$VfUO zcF?SveiYPXhxlU}RVgjQiJd|EoK_;*S(a6Xd@(Kos zKT&Jwuj)&?s+_HDCA!-3Rca|4>!Uxh zOxzWpIm1pL8Y^G^WrNqtr`VelRIoJzUaq}?1M2O|ImMqVNMKzphLGnr5TVEG$4PCD zqWY;8b+k(^S=o<@Vt;LIa5npv;r#w8G64M!W@}8`cQxHKI{883u{SnlU=shYkg2&X zfp7Zg=+rns5FSb#d;}<2t$qL!9%a`NO!f0UO+r-J>oORmwW+Cgo4^0;cfVz?EhMSb zatv{dN`N;}hAzOVM6vJ%D)^C?ZM4bbYvV1qUWzzT7;qo+d?r}KH-fe{5s2=PXJ^DC zVNBZK_#OEMVrvTTlVfa9Qroi3nM#8`%k+N<(Oj2gR$cv7=Bk9oxd&_V`cbAt*##a> z_v$4?mc3XEP{FNAx5+lR{`xmuU5Ja@>eh}2P8W%x2zDcB>fU@Fcaij0_eRL}l&ex6 zfJg)VP%to@n`oXvf_*yENN^8c7QJ!{+Rmp)AM`H`PG`$3FhlLhzwD98SHC7Go>wW(te(JKmJX^||Vfm+ltjh8M_a zj}AzM+hy%$#!katk}j!4Z0^urO+N{=kckV!=&JeCPzvH)B z8`g1bPMqfjwQOS!b^ch+YsmAZ^E3Kr_`>~W$byI1q0N>xtliy#be4TzCJ;PD*NrI> zKt8h6EhiH5P{%Ml_|pTdwo#01SXrY1TuReY=H#h4nGyVG@{ZVWMY$DDCYQ70q8|pg z#&e^nM0J60wuZ7O=Rk2I)K3G(CwyB31%m#V2!*q~wWyZ9S zY3UT+dchR6|MZ1FhHRM4^XK3+oNBpnsNEG}mF5W8vnEbGS6rWB7MFTBsn-# z4{bcX0Z{Iz4UuUh1P$p*aEeC7(b>z43oa!I=RQ?&ZKSs_1(7)4;_eKb=+Xr zZb;{8L%p7YyD1h2%5~#cwQC5my$?pG8$4!E^BLQpHXC1*vd4UyW71=mC%<5lniBP2 zZmLaG7>zibZI%>kkrxRJL@g;uu+w)8=UB-?Ul=_@Bw-skIG6++#7MekGvL`3Gf{4I zMbip$>)!AVg%UCda*`aWsw%RpX1>560@$#Ksa(Y1^;f}v$);nXO`;1Li$R#W%3hHe?-C_LJGzhkuRrC1j1@2L`_-V{ zxS_&$L0ba{gL}gw#sow57pX*B_!l?SEmsfD*3F5zvJzuh4~2gCRawDKdb&op_ounX z(qEDVp+hub^e@}1T&el{VXqNn{^7zxxp@$47@Ce^%gY~YYf#%yrD@ui+Ob;~abvZ9 z75y`4_X+N`eWO;yT_0DUN8kK435EEamFd!$FIXr|zZL*w;qg3?vx3K5(WurQ&P22@l@bXJP~9r|6*GJgQY z{2IgCL;u#2v(W@Y^;lw0TX6OOB+aEJ(U{oX>We!CuXSH}zBX2cX^s^S7WG(7oj=+U zNLBs2!D)6QwjnAf!3(tn9ZtbYGKKoNvtqqS|4x9skiKB-IcOsuEE?}h->EOGy>UQl zf3}2T|LEDW;FDY)*+r3`8t@piZgJ8ACH(K{o_E`Si79is29zGEXohsty`AZD)~}{V z$XBr#rh-%5U&+fu>~Xx+!w07fZ~L>I`sNlAJ1l%m_@p<4-*ZTG(}Zb6cYA)y!Q$F< zdBgQ$3I0GAZaLJ%eQ_pV`X+}*8c>pd3OQL9dWcR!Fi zf8t|ZlSQvizqx6 zQTyQD*4_U`Y!k5(B>9Dy6-W5r8MV%KR34uR{_3)*bd%FCtJJQ51P9mcW9LQw@`x!?{zjpYWFjC0>8et!o=0+=3;+F z2w9vXt7JW7Uf2Ti4@26)!}xJoNG>nrzpN$fSty=oR-u6H_=?jDO|Oxmm+Y3I+vO6m}8T)$*cnnm4@H0u;6 zVAE_f${5f1l!l!T(${3DmJ_1~s{c_)Q4hFIHzV?Ig_;^+938P~{Qbcw z3x2TP`&O<~PX?juf7Al|fTTgfVpu2Jly98C- zK|;XDq&l7*;qUoucDBPL#CRuphn8tIXxQF1tnQ9j+GXLppe}Q%AxePU8;P!APazCk zdBwnHEczxd(R5&sGG-<3uk`@Y!^LTS3f5x$0OKhQxGOFg7%h!mxij46uGXWn7naGqqozjcX- zy>m+l+ckZrr)48$?j4sED^{#qtXQ%0_+T&nVmwWcZ-3`Li z3FZokLHUl3-_v%#1g&d_MmM+BC+Z^lkjFLwFg$2?FuBvzp4dKbjMs~tVKdsYhmSt~ zINH(r%yu%8L0i@e5LJ^=zkOx44q;(sO3~cy0Niz4LoQ{r#en0>Y{tGfJ*#(e(`Kzc z{Pj8wAJIz9sBlx=Cr*nKODGBe-jIpn4Wb!8A7%F43?d@-isMB$ktv%(>dBfQpPUPrxs%LFumE(?4P5`Ab_DvmS_%Fi{ z;%a9}KX!mF;1NekqdVg++gF7dVF7ObzX{6LsUQ}k2$tA&gF863n3eP0+6Pl)J4{EhGZyT^NF zTM}GDp9lKDTWUueu&856o7-BH|is@tWLK6w-{0e`PSdRw zfOj0abdT1XQ74QkWNprv6mqw`-q*c1mXpZEM(Nr61@eqobxitHMAHT6lfps>{(9^ z@qpDLVeusRQa8OshX;0F{m^L;{Uw8dD*b2>1-h2IiGEUqJV_u`(#6VM2C&j|eRWPc zT4}d-SNIfBT?#f0xt#4g$F+ECEno{&LN1d_&%TC4E3zq$=e7dPb`=zH)>FGno#ZS! zLs}@RfE7w(P+XNfMJ16Hax>35<`Hu!917_SD6`0`Jg3);Hte8YWo@7y8$}r>bDFGZ zu#70Y_1fFbCDth_|JHJJ)*^Ds3)fB9*2#49LSFw0rT?WFog{CHd%{l@K&5(1(z{73PHW^B5=~hOccnMb*wr1=eC%K z&_1|IGy$BkyP=?~8@eo_+g(*(r%nb|M)3iXeGQn+7zYrzT0SGz9Rq^mOxxGlR|s;< zv-X*hVOuXz*>LIe=W`~`%MKNg#}IlkM#ICfItlN^aZ5uj+TidDUBI}<$vY3hTCjuU z6C`l7{C0zogrC1Z2;qAn=Xr}S&wVz$+bE%ppZL=i$3nJ#C z>R%#3)UX!qfrVz;C{ROY^u+;T-kJ?kZzzoyjzt&~tEG))<=QEXyaBLlPIT6*Wb=II z7p8aEe6e$<_jW@(HET!xX3|vU)enxpNYEeznyvz;OL9dr559~H2UN^HWMGXu7xwSjAi^K(YOKjmm|JG zmgA3k_6d4Vx6_JMX9FP}Y0ckgB=3kIWh`YF?)3R@&(T*x9z-qOMe!OS_FqrCsT9OA zXu(8m@%{md?y>oouG25n1$!#p4B?6V^HzHg*$Y3?=_VfAn~pp1yl3|cea=sEN2eb?rTl`l1!*o1{IVbz5+VQqu#EzoQN6(>15~^SDYfR$Fr+T-Q6DGc zQykHp2~)yEJR;{aVU03P*zoN4JEcG<1AhRwIy%^%P0wn@>Jw}}J}Ehl;qw-W&asbl zYJLgVgD&&w3`mv8mHGD~mo@7~ELQZLX z$Z|azcj9k=XeyV5LG|c;YT}@@JIzxvxo?U0xb%dDXdGmCy`8#C?0a1W-t=&=_4-z< z6(0@a@zK3o_a;B@|HLr?E-m3QU|By(fX~t511VFnrVEZbin|>CwTq%@61DE>bXI)g zRV_8GJorYz(pe6GY~MRNL^`y&4Q?v8cEaMwq** zMSYc2NCe%Mzi#~F819H7>^V-B1eaM_^G`m}89monC!hXn;qay4ll*jhr{lDiTQo^W ztTl@*+X@+>s=~>Mk1MJMSRB{cJvgdPp`xH@M7DQ)3tNCv_W1z^4kQ@JQKE~(C*#h3 zxR%2TJx+y(1ork$$9-8JH)|&a`eDzm5dYgFTNp4Xn5dvORklh#t0=iJT3dsb)Z%;4 z!blffMv$dak0}apXgFq}bF35Jm~FbA@FGYij8oycbe|skP{x|^$Kjb5 zvp4N@oAyv#ZC0k^G7w3qTRatkAUBdGv~$5TX_mgL#iHTGhz#b%-ac`Qb*n@MwUGTS zk2wd_0wfGnC6GGSd$9<$rp6qdkJiK7auzK0OHMm+2>dt~m)pj>Ry&`jOZ~Sre@#s(0_W}FKqU-rVY$3PdbpHd=r^R8HQ*-9^$FV!wI+-#b`PU?LmYKgH+dlw2yp{t#*8gmyL)t9> z6mgW6&&%mgApYQuou}nO#uu~0^~<0Ap$CxTzk_=_NOk$jl}`cZ%B9ax)atx+`xlRn z1}p=CB^M*>9TRhDG`W=T_=*oGxczJ=6IDTOVEx`U`Cz~;XFDvrDw)mY0o73x@L-C7 zC(T`O?ZVE10$@LzUZ!b;_b4PNI9lgf z!qVDQzJk#=ZtMvzQ&)TyFT2}5*`$c7tm+yy@3d+QccXvEq+P<2+AP5YMKiy($13E8 zsZvOlio&9B)#Ie*Vf_dXO>{)qhJ&lF;xkICjOZW+EQh+lAXuKy6IKJ zz}%j_I=r};kuvPyg;y_#Iu^YcP!}Q(upfOHSC@3fg8)T%1quQ}!$?l1m+(Y;qK}HR zvQ|V}J;z{+L$%O*4W)HNYVts}l(=q{7LmvycU`2p=cLrMA?Goo@=8adHOwpYKm;SVV=~HeFy8LMa5HyfeY3zyHVqVM- zZSJu?UjN9$>Grevmn0neub=+wXMdcI{_3f8S^vAEhg-WOPl6rKu^O;V{;SfSbz6VI z#lIw5lh<5_xs9bD%)(TdMKb6$!A-bAcz|-t=MbE5Ap!!01l_%z0U!@f)0i7>fK=KS z20HL`zSuJ9V9ZiwfO<=ykCMx+2#AzjbO+KmrmWI+DBD{yvZN;Ax_l$?%DU)}-JF`7 z7w}|relZgFDv`(?cQHx(;DMPWO~hj73_H{zpMvS6E2m~1n+?HK;a@)$7lvqZ4gF-jfxXb;xM6G z1<`6Y)(@YEDp9J@UQCxYz4qgetCE{`fvrAveob;3Z^$=+iZo%4XaC9a%L*$N%}Ks< zC>4s@p6w+*je|CKe8hm#v9Hz@AYVf9jWD7Rb0MlI`!_Aq>P!(^#_BU?3Kc!MOFCmK zx=hQ17m4W>4w+hfadReVo;2v}BSD#J=gNiYs@XP?N?v9ey0yN`G#Gr$vV?fG0&eg4 zHc$>6?6TL#VA<=_n*8bikbnJ~T>TZBNa!Bh2U~yV(Ba|HE_;RYNqADL z%vXcGt@{l;bc8N0dcqbe?(Kt^D9vq6+}0<3Q!;S|t2GAZ*N<2&xU>t*ITwxW%<&g- zV%ql`@QL^>JCPzM^dV`_sh1hIGL76zBFn0YK6MjiBU1N_y|uCJ5Jv{ioKZ2CNZKWq z%1m1Vy7iy9$Ht$p`NTz`<-s;(Kzrw@T}aJymx2ac(g;s;+9q}>OU{n`1M<3V=%$u$ zl>i#S&G}yM2>VT}6B{lYDn$C8Y9{>$>oo{c;z|^E^?#Fd(mT;>>BE5lcBgw`$#!A?Kk01-I9jtOH-?}y;ORnx>|7*44sDI253}*dYs4JK8M^#&Bm-?oxfV?qs}(dL`4$nkl?-{=asP0%X~3 zzF$Zpk?!)Q;^KcfJc4I!EVs8_NkiJ1b3qXfu;plN^huB~i8XWR@(`o0`L#a4Iru!8}xom2K2Bs}{dQbEKluU4Imy)I6zwVNh1>cEvW@zT5R7jG}W3ka;m z>ey3|n;`0LP+(q~ds%Ml2up6-Oy_fW%m3WneNdgp%HWUVD5Au|osJl&tuQ4VmOprL z^lCan0kgP8Db<^A-$st)ckgs;<-EagY+BWArfL7>?RKWwP9`1Pu^CpcIgeDjCoPcS z2AV~ZNg#&{f^_mh8ebSLfL}yOf@+Gub^;TV$%Ka9Y2WbR@Zp=6Pxr}Qy1t(F<6v1B zM8BkY&KT_R;FTnnw-78^U7mK9p_K)l0K$&7)nKV*!O_|yZH+{JJz3@0FGtUwAL@QF z`M*#Yx--7CVJxR6oCO&PWla%a!Xoc2Z0`D+=1{q0L0(CM+l5Y+)ei7l=091H`r?4C zuhZM`2tHO!U`;5m)%r%U*W9& zwP#y@=8>Ggl&q!&zm$dtF0 ze$9lJ`rYYHLaf`&<_v=IjnB@0k#7`{{tZ^6C4=N4T2IRr&suRdefx!ZMA4+-9{2gy z5NNInY>`6}hORCsJS~Qp#c+e{VmwQ~5mS$3Q8S z$=hLoK0&MN)DhuU@((f2LfIF^u15c7`f54&z%ax z(msYvRt7AkK_9g*SA0SR+c5-f*r}&#C@yh%$h$1d6zR}ogW6iglR^eyMRts9E|L){ z%WUgKwwC4m!kkVyYY|!*3;CUOB`|ue5c?pFw(TeDAMXDfp5eem_FK%-7+=$Vyb50H z64lNSmM9|iKO|=zL%iX}Sk&V66h0gO?JpZyw$GwuakG%^9a{y!`O4)RzIG z_=42iEDdlrQzC+?N#NYv240%%c7mj)ZGecVSvV_)9L4~JS&hg zW2nzF&!&PI&uXho#+DhGl=nJqH)7#r=F)fX&ZNP>>(IQ6%$;Pg-SI0Lz2lANA z=7;+mf5WWK)^6PW%j0ivJZKwOz2$wgg<~^r)lrJtOkP5ApaYzdc?y!-y|L8q9o*&q zESBP?U8UK5gdtH-CC}U@&iIac*U}8+1+R!@vsoC%CcHzN5$qH0u}S!JW_wEvI}QEp zK`zcCJOWZNw|rgu)n4?;Fq#%kA!{i8w@#yM8#po3{nl=M02>4=+C(BZZE`9DEWR<* zVYJX}=PdZlXboC_HdiRZ8u4a3xn55on75_VckhC3PN0>5)zWr%Xrv*I#Hazb)=qLC zCZ>T=w}dmn#7HD`;K2sP1R zX>aSi3IP2+cw-UT@T8t&9)1y3x#O!ag&YlXBP{hku1!ASJtT9Z0(G8Vl&sQN;2wk#GArWfO{yypz{i%*czl1By zx>O{Bp;0OCxpCT(PWk3+j-|>ukE-SVud9n^clQ@xp%iEwxLKNS>=`~Af;_JU>$A_xz*o`GP$PHOhlM6%H21R|Oy^a3HZH>Z?jbm-IP z8HED&3`4Yr&jo5Brf4~ue7tw~`GwKP&kjF7=cMy7Y4tznp&{13@Qw!RJ!d}sO_O_j ziI-*tg0Mc_1aUgaCRImZBx=&(a+-%d3P0Y6CD?5^)`@n~*)_MFG7Cs-t{h`E$d^4_ z&yv+Sr6=UfwT>p5H$if-v%FJxVwvl zRl~9?BAfd!3)5jTZRb&aZYp2>H(P9!mGwoo3B~*C-tZiZxmWP|4$65^kR+sKz8CK% zN?O`unmCG$YxrHWlF4R)9(lC=ywH{09Ad)Q2XUKnuw$E*bj=)GG=(uW&w_oUM}T49 zSGt0ooYf$G`3oO8AZw}OhEUoA-%02+41&3c^thFlmxtw*1l+V`k!liKEBA#V1<&)Z z+#5Du%nz@xX@yzw@eNyTd)3S0aXp+L?#-@`jfOQ=`6sFJ_HDj<_wMTG z`?ue}wZ=kxt{F39lFV9J`+W5MyYFKs-XJol)?d|8*n?MJ=mL9K1+6EPx}+%{iZLpv z%lMn~Q0IHiHTK@GC_AyPmiYl%4y9Oxz8|~xs}H5xZQG{(eEB@&(BandMGbqYb7@&E zxA#eAuzk1}`B}p|n`Dfz?>44=JidOq024f$Lm4xBQ6jp?1KqaPaG!U1^;=*0!I&!TB zn-P~0vikmFNohtV$~Ru46V}bd4A>7q!=l$Mj6fFF2S}B-%{>xhCLWrqV%B@n9~ABzmORT(^WT9)!;3!roOq7CqavA4 z^uhq2FzZsA{;^!(m5rmKx?n6YQhv=7puSKQdQQQm&3-eMN~VrS(Us`yL?H7|7v zHse-S-1Z$M8ag#~CJl9E*AI(OPhX#?dRJGoRI&AE0I9EsPGOb#9S}wTW&iMbQgYp72^+`ZkTw`d90ywprNh%_A@dA%kjdr*zPb$_p1fsw4h zg%oc3+tRAFqr){Modz67#9IXo16)D9BX}5|LP6ehpmEPH_h_rM2yP|z|6yOXCxMxQeHHSIDQJN^nfl}?_>z%U}w4$k2ROCgKwUHpv>~xvt|2w*yac zjA$!(spQtyu4d2dkJ`STk7MruS%yAC+&ir!+Zh~7lnc!Hidt)k__v2VCW2jG(2%lW zYQB{Ep;N%-CrKMmL$GT;K=b}nJaR`evWYFTpckdWH_>E32_x2tEFJak(JX;j5M>Uf z=d(Qyq2SEoyjMGn8KJpg)zr4FqaBzq*p!L_l9AF&4!nhv#;CNbKq)5E=Q2b92k2p{ zZ=(b8gVuB4!GYb7KHomf^;sxTyLM*=^lUcl>YNfJG3nT4iVKzg{C-WZ=Ij*1OPz6D9`zN*6!p5kh zBd?`_wq7n+wcxGhH2kzrMx-uRi=AJU)nL(`{~DQ;Qg`WZnKsS#=KITLX6^3Rj_%zp zoChsO?G9yBvQZ(L?Qg^WJ?2CGmw_Sr;QuAItx?AiLc~Oi;3?Cem@=;|-W&tR&2wjL zs_(dG60~>k$;#$)pzRdwA663RMp-A)jY@g*%riZt*yLLoQ5W*E<*lmzQ>NY&Xh-I< z!KO;pBT*UT8I|qN*?yqJWMI9T0(=lUtzt#{U9<=xC)(QvKkzY@NB9q-d+Pz#iof59Fl5S$o=T zHkBBxf~o?y8tYlFbqgP+@>Ot(KX1>md!@N@CBpKD2#*~FUu4}WjQR45slENbVBfx) z2VZYDl=hylv3}O|sFb(ZUeZ+!qUHYH~9N7o#wP4ano7#-bS2)?tb3k*1^*q8b+uU7jmIWifV%!|1lZ6~<9BqGUPBJluzg+PG6Jn+lRzj0vI(Jo)T=pj=4So1K}~KQB9-Zb`GTdp6zNif?Eq zXg^QW;yN!k!hBa7(nlmT@UR6Xv%*3UG3Y0iO>5v;}2ytI^-z&dM#H5#`>n0+T{B5N+q~_Ftl-E-Ikf)<_{_kU_dsg5NMi}) z1)$tfe~G&QWTTHll@{&7+_N=D9nsC!5eK1Ay`=!IG`=Mp)O`;JxJFFDlRspu^inpX zc^$C<)^vfgU~1GPayul2y$_Tr)^@={$pG@QK&HkVCGM@k{pLA4g6>4pNf_*2(oCgf zmSD(xmKkvWroUPY!DsW-N?XthRX~BA%qveY^4lM;D?kURQ@C{1Z zY@0CTX8^$z9=wLjH=P?u-muFI(R^(2Gzw#pr_+bJ)Zin}3L80s*)QZE`-@fB38p;{ zw(hf{$%AcV7Q{6etP-mKw1Cx?WJVdakI6Vdxmg~mijI3QC43ya@v$(8K=DkC&--xgG#Nw%iq!yHXB{SGA); zBaMsWrX}avKwBL3&*5z~{1Cfka9tevMW7`&PzSgXkNa7BKYDUsn@3w)r z4Z15HkoF~pVa#Oy^{@6jhEV!F4K;}da$)yKV0dAvr?U1^%QKQGpfw=rW6(&6upcfr zgo@LQ7N6hj(9nFE;dW;EgazKCuKp5lMtB++&vI;Md^Qv!I9*|8$DtSptM2$A5K;R` z(i|jalH>LN3PN*u(cUH<*)$hX;+fxXz#|OXj%v!~6$8jUgTk@DA1RrK%aVGeqow z8|fiZWSuq2w{%5pUA34O%?*nOy2Yq7JIagOY(Bm{2tW=qS{589NRdFoRNF+8IzJQb z>f8b_(h0_B>&`|OL51TCLIdcw!(b5C?F6^sJA;wk;I70zNd{7--%NdHU}94??JS>$ zA0RYa81vk4+e0=s1>AEW9aNhUzp8 z($^$?h^W=!NlJ41P)>b}FckI%1voN)@OdFdrx||3h1=Py`7XRfyWr$`h=|`10+|z| zs^8bwR@CptCh#_|S$d8yw0vUiTpeATFLY>tm~XSnuIs=UM7Z|FwRJB&y7v5Fz1#a} z6w<+`WWJ=C*T84 z850*C%Amr+^|s%jSH5y$re}W zFFa*;fozp~1OK615{l$2PJ+q@CCa#2<-U9@a#-h)&^;(n_R>b9S4VwVnXhoRjR?>uiS6pNn1osdoWJ#OeW8(vJR z9^S!*Ql+&I+J^D{vWJhPrFv~kmu3BpA>#U1-XAa^5mUvX6A#7G?w1Q+$ zw9DzQu8uH#gA$^$=dbi*m;QTlrc8xu;uvdo-s?0Y;1*Mz#CS9DdYZ?=1jRRd9VrFA zdpRsEXES%j4uu14zi8A5?vu%}npgbIq|6C%K&1z_QhkVFoR)H4+Si8+9+)JGuf8;tr09eJ{pD}$b^AnLm`I5`WwA+AN zhjZl17mD25-JxwV;_MTL*Rv+` z@j!oV+DJ1o7^RYM&`gKzINZz1_wjPSX^zTwloKCeYlHaYqe(rL4rR^9AmmSpk0c(= zMp!3!NAp`_JIIggOX-*iC+~->w#hibEZG5=<>ZqeMBE=r+Cg4&9Vfk~))cSIiR|w% z%MFe3CI_dNu_tR=orM;|=Cqt~c1n$laPiUOYliard+1!r;%|$o3a0&Vv^}5y-J@d< z@WhhJ6z@3_%)&im9~A!alC47YAkIf~;86RK=Kmv7N))0l?RepD&9>)UWQONn`LL2ph#hg6^?Y%A!Hr&*Tk&a+zvjR&;;i?4>lc6iY4C%nQdLw!7&?ke{3Ifjc+RLGKVH?Ci!A5h|<>uoD4>s=J{Er_W z{>L5W&ByvN4M{64AJAAdv_mw(~WT*|J&B$XzSq3g|BB%5A4I8tpg4U z-(b6O@4_9F*ni__2fy~-T)1)cjKIbV4><~{$J(TlJ~l)YAnz84osj>&Ab8lZW_Z0s9V7 z6a0BZ=%N08H`^f-ls$RQ)ff8k^}$?!9_peaJ`A^MV3vl}s+v@D7al!7QX6VuxbBTR z_wQ&Wk8j*z?Dy}Cn~7Ai=%bf_d*=>bgbSl~6Q|O~n7!45!?B9hogTJ%Y6(eMnYI+! z;OD}K_PoKS&>rWDqtMW6hou%Uc$(@4M7}mSnwMT#t^q)(8&MTPtKGcsfWPtJ#@!ot zHhTPS?JGa)c=P!I?%B24)@ZbLW5J!#w+LWa%-4oi2raI(cC**St)}M60(!Max`w@* zTd>n24cN6#fgpmGM#3Y@uG~9B5b|P-94wo0QW#ZDKjl3F@t~CO_vUry7wV;qLuA1> zKO$0YeuH|n{y!#9{>S%Ue)PlnbCd7CHom^`_}fQ6-e++= zq}toD^6^4Ie`KrMJ}>$5*=L{fZP#90xlE7h&ZNH%w)xoyDud&Vg9DuWlE8W+?WiQj z-5{|A=R}BaevUs>t}3Ov*qJ>(m_M97Q;-6NuWne-DW`Bz;5i2#F)K(w}y zZ=6b3o)5JqrJ<^zQLro3y`ZWQoqYJ*CrTq)IvBE=^&)u&Ib)Nebc`ZP#R&~lvHU)p z$^7EQoc1i`G4TD7a!aF)*p5$_Iws{H<~rX^{ltT%tYwOmxU}`ot*=k*N&v98H{m8f zT@Rqo1aAlKxp=;g%&O=HN#G}o`-3pfnu>1oG?mep(dXit9Pd*Nl)G~Tb+`C)?vgOn z0iG4r1F4a#MRms$MGyDULOev=+vf2(Wv=Ux<&y$^>HG&3l6h>z-$%`>R{)BKm1Gm- zYvJ>8SUDhA>=*YJG^MA?B5>ny!u3LS-$vvNcC*538<0jz7y0K=bDl1GkpkL>>odC*nExm&Eup|uW zYOk3AXqGs641Sx8f1kbitGx6RZ`EH8)WYL&%ox0)-aF;tDX+m!HgwzBk2C)aM7Y!x z3?KP1# z>cq~-&u=*+tZ+E)twqHfmF;2;oda`rQ-uPOyoBO>)bZ*Mdo|dpkhTMfHQm}ZR(ts! zwI}vb`H}$DF(f40*K#eamC=2O`0Emj!K=KW6O*@<2iGd*3gZ$iufAc*?G`Sxd&GAA zc&M$6(&hLgx2&U^D58VSxX$2UkSxFB%r9>({)*Hh6^$#vAVY-}jnOdU0Q4U? zNLREsSV?^JZAg%B4qxv5;W4-dOY)Lqr?W||HbrxfhzQI}Z7nnz%f}7vBL0hGzyb-C zH|Y-+)uyd$&jO}1$IxhAq(r-F`p*i4#KWOYbo<_0S9nJ?{5D_B$WpD432vyo-eGs@ zB0PXM*{*#vzEir%>fImsBswC|O=-dD-(3J)NehPH9_fv##dz3!L0EapRgrr%dUs#+ zL^-1wqpf(uY{X&nj*$03EAPl${$ME#5vYD1a~GLAB84GAkPZ~$&jQuX*^t!-S``i; z?HIBXOAxH@TCZ{~p~&aTX4;OtVBGzT(Lk3%Sme}3L9lKcUmP`(L1?JrbaC^a?DvlrE7_D)2 z1GhF1xo*m)$rPV;UU8uV?iH0w)lNLL16n}E!q6)l>J8T{Vpw%5R6uO=Owff2Bpw=M znLH0sR-DvP#e88bY3tSfc4c-=@-x30mDWpayl7*FEG0rWz7ERo_}J1JB9Rg3lH$E@;3zriB8GS*7j%5&o@NuG5^lxo2L#Hv$BpjzzL{h> zN)<6XW>Cy)KRv|1bq3so?UdEiksStPpCDl z$@b+o*m7mN1XWnimJ$W^!b7xYo!gXJm_ih7#+j zN?n_qXyJW0bHVW*%nf%QGUtR(1%>*^`_!m0N+vWMp>v z>GD-^AkwOpRMpaqnpy_`VBNC0B`Rc>Q$h1u(6x>d^6n`&t0IDQ02^m@UR$a5On>>E z^&hSF`>y}!qtGNGJYN5)xU4ErZNz6XxIs%VgQ^TO=CZRoDQcr4g%fp|1ebaI0PUrz zC0aaQCcaOBk%2|(7Y$N`HKfP*LKH(-WpC|Lb=nrzqS0@Fl13X&$ua83$)xNq+S;|! zIc3FwrZI5M)_0*|YtKR*A3=tw?IpvZP}thkTP8fouaYT#YSm|0m@|eB`FklR8AP(3 zdK!_&lMPf+1h%USr>NW=TNh!Kf^>?eMQo^A&eaEy5U6T&!5krx!P-K`#jDmE%8qea zW(7OG7sKtrOCBzVB)S0NE@(b&MO*7}c_cAt9s)wR!k5`aQX{}`ms1L0vN4T_Gt~(| zUAZiEWN)?$e{r57l_2HL;J-*6mr&P$3sif8iHBs%GHyo-UYyJdkb_IBSyIL9NY)Q4NHW# z{y)B7e{$pEfB)g?Z+5T+k{AsnqD1SjfrNnL)+d(v_q>o+mbw>|m}!d67Me zadNv&vy)pgMhe)H+^}n8uVcGxWwy}9JTyp~>QKFT((25Xtr)eQT&aL)9rv+lf}=kn z-nJSk94yq@;Wmg09Gamgmw&)=uCRy)9^)b?QcyVm-@bwm^A%v~B=;BkzBJ(-igW8g zFgJ$H=x=fmnBz~9CG}w~ot_K1(qxfcc>0W7lP-_3)|1dMPHY42{}r>z?HrVPJO1PW zTgBCjm}n)KES<8S5iVf%I9RR!sf?i8i*LdYp3}s2=S-T@h0jmSjgP*%g9mKWi0oAb z82-VtBkg;e3FI8QXMrDQQMJVI|5ulk3Gr3GQ;J7-&otImp!TFS*18&6m9%k@hzK5= zJUiLkYxLY+s|klYFAIA~cm;pcUz9E`ng6st8Kxts@_%thGp1MSmz59jh+_ufd^VN( z>{-bW?R04eQs(IGjX#b)9{nkmRFo{GCw)akDz1a=Et!1^f%Su7`iP&{h&=GxcWooC z8UR`WCD9{=!7GDIgfF4)H8f{cS5?Xj`L<`K{4 z)whI5iVlz+^yI5u>V!z6A!fBpLPbUr)WopS%!`oZqD{;9z9khGr-U|zpm znRZ_L7QWjjB8$c%8^)CNxBk((^5&Y2_a#Qeb&QCQpKksA`Y-#x*g@&@W*SuqD%6BJ6d8G=%R68F%b%U4QzKmf>cY(vj09+z_@H@G?TL45gXT z(M?|=(&~vD@Leq_>}pH#7%ZHoDcD4`VOo8la)FRMlAh1G+Vk{ySim{!~mg7?K577a`W;=Hm_?#$JO zu2@6)ey~v|sp$AqD_`tw>s5pnum4bA3t@2V2u<<3tvy)$LzZ2-J`DZ#>(p!S7?zwZ zN-oCfSs}7nQQpn(PWGkamiF^ue*uV34pVxcHnWA^cx(`&*L*+34fEZv;D?GSvOXMJ zzfn$F#OJXSGP+BCH!|ZYr?F0DA{phtTo(z zIJu*T68RPlW%rpP!t<@#EF}nrAYe*O_UOpR`@2(zVW6c9J?K+KBbc2y9GD>)juLoq zRd)z+H{nj^w~|D^`o~LuymSh&{_6lD<(tLscBa9&S5X0)K^QEjBXetah(bi;dO1Yj zdj2bDTQhH%b@cv5+O`noA;_C9es^-RPFr%)gC05k@sf{^&KpqvoD9ZObV zFGHACpT1_HO#+Nr&cP~8t+%0f@$3sJdvm{ zLW0cRcgJ$)bi!z|PL>sk)X4Wk8BBz{ETvP{XAU_|EU(IYY+5spGPOThPMP0J(KqyV z=t?SwJEhACuiD%2+74xnONSIp_zw=WaF**FTAQ^lwM`#<1ce;Eu$Qq{Mvj#0ljFmp z?5h`PI^-8BQm?;ETixGCgoOMC6s<>Q_sRjLIyJnW}=WSOxdW1c7u-TTMoizJ;Lo> zBQG19G&R2J39*z-El{`P_Ra8wiz!B+#=g&fZ1~BuLhQNSE~N!v4dFru7_3A8=6qLK zf-RcVQUJ3}O`5nPzt>b3RoRY^Va}76;_=dex~4=q$&tLyh3Y?SQp!|Cego%#Sm%GW ztlErdGqGc%DYL_YB|G%04pDgx2&?0A+`(rD`hat$iVff}K$)Th++(*pJ}Y(Dv}Gs^ zOmQqCuKX^|YOvT3iU5BjMCyBi*F3j6kk1>R&~`SPY2@k=RrD>`B%j{A_JP_IuQuhq zf#7{@mO1r237!@r*7U%@o2w-2C{Nu7B0D1{{E|_5$&@Kwfjr#YIwvldQ;UDoebc%W zs~vC=c)oz&DXnkozac^?@zgb4m^z)CD0AR+Z<&Xi`mwwg&;>3BU97d*T02*muK@wv-m-f@NcbWr z&gEKmZeEv%9_sH!?cm>h=}Rrbz8g=Bgt-?)BKU_!;%7f970#Mc*f3mT+M}~tq1kMi zFMamj(>tl`-b4|u1gfdb)H#C2<4E#sObI*I%$d3p%P$UKs1iS@i5pu89|y0|evASy z5b*sbXT~ddpq0}n>Wo@G$6-NBl;e#&q0SF=oNNgo%S1@=)5nw7sug;%ZmOkAYhPC% zU^#-pb#v%e&zfW2-pBaS3YREMr%2O}yyM9^#0fzjeupq@9Oh^AVKIjo^d=CdHD-hX zmCsjbFVR(5GbSHGHH&QbZcw5_a0hSm{#Qw4$tWsdx4vQREbKmot3dy=0~B&o^botuD=f(f(^P^(WuvkxFo{AmtiVa-kl#jCYT9zNS=&*b^@E zEcS4|bExv0pN)^rT^D0hzbdXAnZBRfzb*$p#Gy~%cpU!=g8c2~trW+k2bE- zq})C;g5SwOrqpMz$ZZFaP#vuX5$ z|Ga@wjdp=NXS$~DPf-qLt-659JK%sB11|kf_U5GIzP<4$jrPW3=U|`Xme)p~O)udD z+p(1V3S`hqY13b)z%gzJ>#ddW+R>HC=3nuvYc#)4WpoB_qeQL3bvqTaZ|Ge5^*bzy%IX z$qmuYs}G|D%V8}4j8)?I>&jl_1g5ZHKjROgrd1+JMaz{e^ja+k?N8vgB%i-da&xO6 zhKm4ohO-&@3oJpWcxyFDdC6{nxfai^X8wDbHtB6%7RC>on1* z>kI)Y)aZsTOdaDCy*O)48?YB_KLQ!j?)KS_+J&trO*E}4&!t)Frez{g6ws3udSMdb zKg}9;M3XPdtT^1CnGV^h+hcXu{xaWo#9J3ADdC22k#~J19hY_M{dX>sjAhVhwpP6v zb>fn-nut=oPxlhGl?b4W8TDJU(H-m_xD8JcpD#NiOA$d$2oV_u!>R zpWDYgbb-o1JkSy^BljySFhLwzB^1p1#EEN~v+hwoOENi>(}Y|b^LO->EsOV=E!KNA zFn7hDl?bJPpqA?@X9d8iEr|dr5sjv&vG-vLQxEPIUiM(Ml=eI?h*ANl>0*Ty3PPE<8Z^Og5jU%imyQ=Up=q4DsXYcu?6x*_-IpcI~nnKA`J-`iwm_eq7}PE)^NA~ zR5R%pCiqDOFLBeuZ2~_6kZKR#a2V%ce?gMLf^QT`wir|{C*AZBJrMKD9=$!U)nM5g z7DP9d3EN-$X-~U{z%OI-4B8V!o8`-v%QKn0PJS!!D}eS!Ah9hw6CPkc$f&dmvA3SxpT^Nd7r=GdD4{t!GDsM=?;TWo9Q*jQyy_FE2#e+H;SH9sQyM z=jh}CKF>wJp6@=~sR$dEk|kx$I81Ucn5&Y8pL4#4`8lVI8d=QuAPjOTcqT*Yh(LD= z#mJ47g3HC)Esi=bW;^*VUlM@O&Z7_46}yhW^G7}JPROg;LX-l!-!MtC_C!GMo1;nW zJ;ZjAwjfY*(93s6@y7OR6grblPJ<3@nV5Kon}`y)7I8Op@2r$XFUVB*+tK`BCMrd{ zbK{{Br!|H|RI(`@FSK^a=KC=1n(X3LNjhU*IrVxG@em!IKOcE~Gi9_V@+BtD9eEyU zd`^JcLUE&?0BW`{*hxY2(0P+-u^I$c_Kfe@SwCAmoC~wly2b38j=q!oKxgui=^V<3 zg=k7IIx#?_&LvQ#iv?uY!T3SL+DEG7jj2`8tARFXWUv=WSzL#Daa0Gosqqm?YMXUs z?xe2nvb277U zGp9P|ww>*RphI=xcozX|*)hm$Tm40YcyG9Z5v@87r_z=Ai#h#h8(xKDZwe^C|0oiD ziylU!yrJ?KF;nV~OaNJ8g}#{bJzv^#q*qG)jaaWU?Fd`0@64C7yOtKt=?q&^MQpMh zpOmQaYctVyjO!Mrc+b4qIP!9RruhrYO0M@?m}6Cj`C08TTkq`h9M^XiP8h=M7;Lv$ZO63Tl!&pB3$D=q z>H4U|b!;cKNbRLQTj{1}1R+YgC+}0}k;?6i05tXuyx0NFvmFdS?YHAR+Q^#W}@z|vN(M6sb}QfGAqh_w9bZ|D|!o$VBE=_ zQRb;5RzeOlImEbZK)XS#DKESkuMppT6sM!dy2-j;PY|$rz2;)o)I?X1>K7YS8!K?_kKc(4vV)#1FmZxz zi%XgbkxS7eE-twEYATusF1+MATo8tclx|ZTg-t36)fMOUhFgm!q?MZwE8fF)ic%>| zb`^oU8=54UPqfP2B3-n3e_1nkEEp4>ZHw;5E*mO?62nMUNCu$ax`sg$l%z-ozBv^| z96*WFC^~Cm&iVKKdjnJ)unm{4l#~?> zBuC}C#+igoDVb{7Mt!K|(VK@OCKmf@rC?pqt`&so7-qxAqh+~v8oi#OR$czgnujUU zjJxYOOczN~6)dCdvR~2P1j{-wqU4F@!8FXXKcOUVsgShuB-F*EPm`g3S+-cdkt!kt zU#*W~AG7XphMLmVWg7U1^6<344S2_Zl8}89ozQhvg1CYwMKMroUpI@3;Og;x&s14W z_ZWAnZ0RR)1IzzH2MyM=e_SvaB-2)NsnHOdJy3*z_^rhd-2Thmdk;2#B%$|@4>ta? z@!#$PDp^~W=O;hm=JiXR{_&Dsox}ZeSJ&rJGnXZkd5D^&3_w8k9j?l+QIcf3Dkp^U zP-+*P+$z>_B}6UA5UxO%SZdDj1$3!uXx2-q*oes~;o_Xey;YVh{SU$rBhdI+$@NCx z+I}Dj;C1Xw_Ns08h*GieaT1dM1znIk6wp8|qn8|cys}WdNHyfm`vkby{+z`Jt8i~R zUgqT-du@c0kDX7xo^A62vf!l|dA(3BwEpz4*-i@RxpwiD{OwWM{D}s{oM_6|`$r_> zl+{a=u@Z2T$mnN}D^T@SgbK;QS#vupag58%^2JYz!4?oaAm~Bie@s+(Tf`iT=L1*9 zd@rw~ZM)R$I02MZ-oDPgw(Dy6VYA1jZk>k}>(4n%*k7#}nCjk8b7>=4l42*O%T!8) z1|HqJb#LHA}$by6H zYGbs}h7JSwwxtfEY@=`!RL=A+d`$*ZZy9;D(6n)D@K3i75B7*5tPe0hwmJ`%&*!^` zohN>Zjj)<4wVGdrsU#Fv>gDpr9GpGO_P8cw^wZzI#sBN5n_`+F1JOt8{nGqGRZD~$&t{meIg9Y5RG^8B4+ASB1 zAcEgqZlG2t=gt|-&Lqk@$w?H0OBoCQLUDDzvz+G{?(kSc-Y0F{; z=cXmGg?7v?A?2nV5 zum8N9{_zjzrd!KbBpA0JL5EkUflgN-Cv-*~4Ah_fBCpX^!6ktl4M;C3(Wx;`%Ly5u z+h{Gz2KgjRmxq7-%Z&y1fMHTUv}np7`qRBqV!B0zzbeL=+?USLDi4OrRx3!Cp#oXb z7I?%IaIavk0NrRxvHJ#w&RLWfb;4Msa5lR!GDj3poSO<2EA!3d+}33=N|ne`*D8nC z!^SO|#`f^4JiRK(c$e9g3WZjcQ zQX5>hWfP8)JbK&gi&a(J*MB4dk;l&*5SHIoD8)m9W>IfMSKAhR0#)EYVP9ym_4E8$ zhFVyKGTGL)T$mNV6a_Nswt;=n^$lQfUrjW$~zkO^2<80E}uj1SKjTnKLw-HYCqHYtRZ znENrw#m!BhYeluw8mON_dW*FfR=`?{U}?mbLRG8j+81uzh?K0L5XWpaH)>S!O*9%F zyM-Esxe{?vdxYxMW;oZwHb`*oP&C9sqpkVhMM62)97W81Y0XicJsF2^{m${5FHl+@ zAMCkju3VTqac|WHDIlf|HJ}$WdwO=pe%Fm9K?Jp8E$H&xbuNG{aCK9xXp+n>NWH65 zw5NG{$*^_{UnxSOtI)CNvG{x-MF4h-xYlc?QeWrmcOtNwk)yV{XSliT%W+6UoGCWU zfmgDgnoF-`F{6T2d+Yes)yy4k*^CMjh4>`2%ffD4f$|h@HSquq7@KV7Eq3-;Vbb@I z4*RbPC!kR_B^4eeVlqpiwC;3LiXO`{40DWfMN+tm(;rex8{LWUxpGuBbJZ=Bvz3(6 zuJhx~!oYtdYbxq}(@SrYK?K=bXqM=y?ao|_-$ry>texyA!E1X6RMw+1Lg|^7pw7O6 z`(W&}&)oh>K3h(&R6ZZZleOMfd@b9ltjW6cEKI1}dQsLLGicnT!`sp@J2GLAgBKU_ zCAC^3$)_yvf&tY^v}hq^+cu*)J_jeP7(#qx$E$E@_UzfP?pt60@7{qeA)f|ae(p2j z=cC>0{*QkYVs6-NB=VBdvf|?5S%Fw516nW)Yz7x?YA!njgZ{n(R!jSx!t76aipm0E zJCpC>u#U4bAr;6JNQtWCvi&6~1pjVqZD6^clEb;)^}F*pYxcBU&Uw}<3L82a;B%+p zbX~k0%j>$uPU3b09LwQ2k?ceRIzxDz1I@|kLOK#+33eryw=w*?tQQ$z6_4p!DIvrw zuL_^=cB{^&?;pr&tD?uJ(s0=7NK=>;j6p!W4BLT7VO!^HZCGs*87FHF= zV{+^cKS^rm-3aXcSA5oC^eUW?RjUT{ru?R{N*cb zC%N_I;8MiN-u^T0*LpS`-Eu8zWJTnfiQvtxT?I>-W6O7aU!wSsc~b4$tzeq75KCir zS-F6X$PoBCzC{lgD$${jD2Xk-!0C9P*j+!+DdRf;;v@FpQXuGnz|IWwN6?uqd5Be{ zu$kvC56MEV zt!uyogSYDir*fax(O=t{|I8#@tV6rL))`tY3bJ2)@xW7|ni6jLP|bg1KHQ+h3vv}m zkJo*f^5i}z9zZk;QgnXg5Vz8FdTsqxKnU!kYaEQ3?R{~_i6$8D!4{g~szihn ze&rxiS6@$GS@GFTWqmz;WsB5nYTNhISGP6QRJZRd)vpmJ_j6KBC82BUvBG$D%Fyt# znzio#++&H4o2c+oP*I@o2?%GZbWF{;i-A%k4DsKkr6%;-hRKq#c*r0O$K6p-C= zS!wNOPF{?G*)BNJSRZO8vA)5tNnw~Au z5gF%D;p)XKL|e&7V-nRV6XFMuJmf6dfgZ#Er7b-Bh=1jI`Ou?NwWZd+Q*b|u4|Q^m zN)?5->xXwrooHhCTiA;vNMvf$>kouZoS}44KAa5R0>z*n|A<9W>L#2j(*;ydem$gO zfTff2;bce&3_GwL!{dO|`!0}r^6P;#R#|{6A5MlcW227)(i-hTX^(zAn6@kmbmhaz zV8$vu4oYkD>ZmwZ8gGglWOUG`L=`+)`OEGGGDGsnxRk?Sw7mcYe5CBk;X7u^Bvu_Xd87mM%|6aX~uEpOap3?Kqs=K_yt4{ zS+k=4eM?nS!-Ouu*^?i#15E`B%d#2q(r-9v>=vH2J*c?au+uw}{)$ZVL!}yjhQ0+s zHAB>)G!cdI23@M6V*079AbpnZd#qo$E$y z>aq=(c#^ke#Dl|Xf6E!pa0OPem|n6*rsz)In7g`r&B!hAij30)i&@;5CqKa} z5v}}uw8viS)>E>$>GJbwHfF#HJcUf+K_Kv9_hA1eK|41UUhs0Jqm?yHq!B0 zOMf7@hW!L&(OB|LLDt|LBJ|U6x*kGDWI+|bS$2@b z(>ZZP1ozdz2~89MZMq_jJN|aQEI7MIdDZmm?$ns_sJfrVBAm!p7-X^kT5Wk_zZ1!tO)BQ* zH{5%gGngDyh%jc$(|p*b)3DMX;*WT`|BFcBM&vc;R6AZXr8Zyw3nea|_@fe8k+8w6 zXuRXuOf;)7NHGtcmj*XWym`d~%ba5Tw)HG$jIl2dc2oNmoty3)+BD{+y`?>t!Z-V` zu^737P_w9owEtAs>>0uMig}}{2s&s;<=-9x7-1q$->4U_B}8mN=1ta)1#U==hf+HE zmU7?t9f%^zuTvw_C^4W@$mN_dp% z4bj15yoJ;4aIyy1*%NFU$=W&YuJn!{NhB}pVp8} z#A^u_cLUg&DO%arj<#Col;;v&C&Uw4{BWBvYff^NWIiJ@1?i&6(L)j%k}hZ?s`|{t zI@S9vFJZ$LnegD*{{D`-cy&M=oxIS(0W-<0TTGTqK0&S!6}%;HG)XoJShR2!BiHqg z)&~6;*Eix*;$Jl{T+O%VhtR(b4B|Jc1f#FF$b#wdW%OdP{~A0RJKh1_8GdwKAqOJx-CE)Y_|3D0 z-6uymbr7pAW-_s*BXWvsw8SL)+e^az>@tR*mX?*olRKo;Z1c@PO(a%$2=lpPGEuRl z6L~8*mhPN>GUit0?cKed=6uGOn{IWJSCDZbDEZyQgP35> zWD_k3eclKuP|0a|W;8Ck88%bJ)z#74OYh9B-@%}CSLtJ+?Fk2#{U_NcOFk##o}Fu( zFw4X9AVMHAS$A>~wl4FUqFT#^=^7RDU{@-q7P8{kplQXsVw8}I5F^!IpyeuD4N}Hy zt~e@9GR-9}<7>-hZGM{~8BX4c)d>~I&-ch~ zw2-SpZ>JeAu9a#JSUIosRxcIznx7SRey#~_J#Izq?7uu76XL4s(Skt-R?zQ^h^MGN zFGlxl?X)4SC_fl~@)|#9KVK}kaN8(7J&#SG1b#J66NDI7PaD zkaNRWfW-KUl--**zWo*@H=a#fT zrry)x zZ{E1SL4$AC7He16zF(|e7_IH<)2==p=+l8d9qQAeKK-muKkL(&Ph&oe*Km5Sjpa^8 z%{t{zlg+L%a`0!Y8@j&5wmJZ=Tp5f^X}2PGpBxC&ctWB0#L5K(t63MT#>PA}eQ-2W zja%y8z1c5K_IF9~q%7;gw%6Io?s5@`-OHdHO~(BU!a2UP>w$nk#WkXsc{X9 z0JzoKN={8p2KJxtntBmD6S|(IHc%W?TKOsreSmk-M0{g95`Osrtg76!e$<6JrHMws zdk2|lo-$2?}e8wrEmMb7#YI=ihyjDlydzP~-8IyE7?$+@@hp8PPq z@cGp*$EywbjJO;1txXxJ!-RkPOh`S`!1mJf8Wk1@v-h8T;*;A^g#r!V5o|$@C*n~D zM=)GpMCd<0)mNBnW-YF%b!=vr5&HW4Q!8_&Q>eNrz104z%akhI<;nJQ2(ayH|CPFG z3tU+#p^n-TpEe~-%+QHAFiqK?Pupp8I1Jr1v;XQ-vV(2|JG)}4pf6YW(h#4(GhCi- zj;s{EnBZ-m0j{04cH%~#u!gi4V~JH{^!Cat5ZbfwO|S9e1x5HFja!$b6m~^8lVLC zTcgcD$YgwJEYZd~fXVQi&*MLh?bw+1c+fVJv3W+5wK`yIlClg3`@n8tFXIsQhl5?0 zEZUt2GM;Sd%0=+~(WOf_?E1JgELqUbR@q*xY<2woLHFySzLr&{>CSrEf@~}P-2G}D zdSZb@lQFx&5fm(Ktzzl#D-euttd{!ktEGM%+W>*L0rPAZB+SKoWwABH*`K}~^u^8~ zKe2DYD?=2B)7QB(gDAFfOY<{rJKI5hrQ@7oLItt#5%Se|>}-$TGrW@3j7 zEtG~0;Df{N<}q8xOWQTJcM$Gq4B)|ljcM~`OpIYZGeNyPdg`>NT+IbC3jR<%7y?8a z(yA%I9kd~{4}F7i!b`@cgZM7G+2q>f+TPzgdbxOenN&z@pcb2b^yKZ8cRx%UeKv4K zc?KSgNzgVpme^lefr--K3T)(nwQ)o^>Y<}1v=GCIkL6b?GjaqS=&l>*G=|U>7LwQb zy7$CrY9zg*%yy%i~3#zu&fN>hx@d$7@jHjW>&K)fcrznHr5}t+LZBf{C}# z(J_YmFA%8JSORTBVu2rj+~FJn-HMhKefEp{sFM-Lx4qfo8A(SkB8g-)Fpw5ezZqS!{@a@95 zRTfgq^EckDDe|E%?nB08Vec z_C-NX;y+7f6gfbhQ^mC`f&+$P zxl(XMA2ex$U2}BtTaBYe0{`uZJ((QPNw}{)CLwugyPBoTSP!;1I2+HceJ4+qpDnky zh-WErHUj)t^4p4;RW6(Bp+eH(oSJNhBu8!tY%I;A9#awQ&&?37-BxK?af47KBBS&D z4~53ElQXn5CHRbUitA6l-`Tpj`@`GM-mTAjJU8uzMrBXla720&ZM_CMpM3xQk>s%; zG-=)GGO1GCw~$>QeU^CAE0_EdF+O=yMMB&}LBB~)T*S(W;@jA<^l@Qy`CqFbD`Mbn z5TY6rzBpsVM7!6eYpRvbNKoa3LP9DPH#MyRzJfkPIHl(z)}X`hzwb<4sV6R#!)+V_ zq1JVlfd)_!mE>NYb_}^@%tM^hD#3Zkb(4!C*Q;I)Gf}+>M(XG(owSCaYs|eN)j3GS zb~J`)XmxO{P-y7wv36*Qd{7DzvM0eRQ0H9TRL7ih!U3eYzVYyp7Ij{lWU8O6*uEdj zUQp8hstE(-81EL1PVXP=KU4HOGaDb#;Pe7bBer=SDrJ%OK2>Poaa6cb_DE|P)fjpn zRc`JtcGyJUUu-oyoT@YUA}W2m|4bRHx}B^%jKW`m+k-dVvi)aK^zmxR-lK#XpKrIt zo1G_7%r|no1^dsUsL4a+oi-J^ev8-2S45zS5ECEch25Fj?V zZPRoc=|792kML7;3wEDSOk3k{vDpDrs)JvP62U7~=SRRv0RknG5&AMjGl+cHx>HxCp>GtuqlyS+yjY!cj(G4D3{pM8;h??8AoQ0CCi?8Qm)U+oAOl*QW#3H5`Nl ziI@_2Tlohie@|IHIjHL`8I-Cm84QVw3x-zZvr}JWZqg-LF;^8pWNyGY3g*bAI$-LGRNK*7)avC0n{x zYZdbapU2?7rT8d&#F#~=Tuu~Gf_vDN;ER*Y~_XD!Q~Vpx7vgOt0Rv=3o_ z*RPK+jL+y7Ta)%tyyL{_?JIWe>>7);z0l+F&;oplIj+S|fec-Us&LU?gNkbs#$V{y zH88=)e>x^Aw5PyB7Cr?QUc$cT3Olu!76QUk4Bko}Gv-F!kt7_}b(mFcpz!NVXH)|kT+b#uZjEES?#_wFFz2a` z8w8>t@exm7-T9GO>nfOFUd}hYwPU^Z4p(a{*Hl0@N&TOa5*K2``+tC z+MVtMHiP4wG2}sH5H|nDOO|$?*dP-PUbmP~HOACRMf25Xdo03hk>dsuZ6zGXwv+{W z?Ys>e#^7o;0SMDu`{r((bv+y?e|S7*ybI{j5%V-+EHU$E-pGe(MM)h$mYh58 z#vX`}^e~8x0oix1z#5D|8z?cR%?}blwz{?y+Ly0%63dxJvb|M+F^e7jCjku7{|NxM z#M%OE@e&o{m7U8K+Pi({{=J6}Z-4deMl+aIYpLO5tpVI{J*6k!DE4!XS!4=DSPWaY z#1D=-6{zOl`{~RE&>ek4aq5b|MYGy{_E2PPG()O%$97WHLAOTnW^}zXefzOX=M7?p zP!WSK7NI!HBe|(2&dn?m2M0{nC2hxkLq+e0RTMciM|{U-QG!?1kJ%u<;d?Ox>s0K+zYw1JGzm zM9%k&{S@zc53#_E3WaotrBiQWzPwUU?K1edNfI52iwzXaq$9+HGQlF*R{F#Aa-M=$ z`OZcxBx9J-i-h^)Rdia)>>yH5$3h;MgPyA!Kb~jICkQS-IZJdxNMTSmQ4(=NdGqwF3>kp`+f}K!if7gkZW99KR-;jnELM$ z$vHn;gwEE5G8>=1;F5+=Gjf5XvZL1eI^+pTn2HZITlv61!*2`Cg$~hZQ)?XVGfo1G zgprrYDs0>UEDdzY42j_L+yToMaaF5e{W^8r0v1Eik#}7a!Y#N?HKn=JvEwc@P)U#I zt94H z(1d3TM4Vmr=!K!>(a{SG5OwQFD@?CJTLSSv3u#)Zt)cF7#-3Ui>;~c)fg`gk{QH!D zpC$Zl8ye@0=fpZrE>WagyxXjmYTBN!ls}oKz8K9DfNsRQQ-^4G`DAWm(LjwjL>OgV zI86itH!F_GRgj~9w$S?c{Au(2Gd>p{I6`Bimi7Q=SNzYX{^zrfm`W6>^X%8jr9(8m zm~E%u21h-F27*@T-h@W4toLf9CLk*68gxzVj-bk%SD`*0T2QinezaLGzT1=%=;~?8 zxjg;Owr-VC7HV?d5(ykxs(TV=>cDziCYvhvVhjHqOsc^tFz&ZDDPuXS#(Zmx+7(5U zB3hOri?N~nJr%+o>WWG6iAP6Nren; zB$F5Zd|?zJ+c}LM!T+;cNTs_mCqjNET$*!_@X^xHtG%P;*NchnY;#&M((xt;qfk_9 zZ6XtIj}Am;O-X_=jwxyP;ss=T@KkEH-Orb{xvcAYCTHC$P3!b7mWqQU!nb^GQDWi+ zt$+ZD=FgCs?JRz@!x_f{yWQw$@XfGOZY*{z0e?mCazfMu8En1T+9!^itYo&I;E)~o zXx|!8*GrN`5VxfUrkZoFtkCOrqu!Igw#|t{l_;=0il|1kqu(4Xgf+yxh>G7g43(bh zm#bfONCH(qJrFuyVQ#(pMaT8(8Sy1BbFDLuwh=E_?4N>%SOkHGZvBb}L!#rBb~8|8 zwY8pK+gp7fZqzuFXTI$|V)`R$ik6Z3(7GVDZIauiP(@<`78LY%+)fX*@31CyIvl4N zt!@3EVyJ4r3{z4~!?Mcd>2ZU%sxfdCX0ytcg4d20p_Q%94@< zbcTAeiURn{YFOXt(cnP`A5I!gY{G|E)&M<%;S|Ir2n!h{ah2{@-qg0stK(?zgYaBk zV2)gocxj*$0xH2Adgx7EU(>U$z?2`?%duz}o2-&3{rkcp{7FIbH_|zfpjya@iVw4i9P;h%dBNiQ9Jz{^lvEp2TKSl4aIK{XQ0+HGD(lgPBaXdg0U^c5_Ub z3ghV*Pp_HZmj%@oaNGoTjpLX;s37?$E2sEZ`t-44Q(#s%#xVJoZZFu_UQT3&IbI}` zEug!^v+J~{o16ksM&TY*xKYe508j-SY>h3JMM>kBjZ%F0C0xr+!+syxN56TIVwP4l7uJ78)^QE(CB|DWm;%JB-Y`J0Qn!T@3^r~2; zwjeXOyzZ+=-L5|OYTo;#I0Nr?Fh9po%IcjXH6IWte zn^yXVG2XSIRT)j)C9U}~Y~VV~2BrOxUaHQ=ges|^AYzg>{UF%pjVRL)eXq9KMO?R1 zPj-D+AqOGjbe1qoatZ!Ln z^^2B@y$_>@m+{FuYT92pSEGm*I&Ph`Wx<;+h8vog)tlNMFKI-?8#=eLNS8M+QjL|b z&~a1u;Y3=Udv8L?Hh9ge1+;Ht&K2@=n_bFFd4kUsXSqki9m!@hha(!8*y-&)C{?+W z;w?Z?S-ZI+MgK&mPqkMX^woOG!gjZjHEAH*9^0wx7!LJuufnuzmI`MK`Ctniw0RRM z1JTsRtU{l$=xyhxheMa-YIDYDh!_&$h&c05oC5OgF+VaBB7xr>f z)@?mutJ-B%s6k)G;G$2%b3v9*SRgA^&S<4kY+mcEFq`DF5RXEw`rBRnyX|<7ckMC= z-aFcL(;?Go1pLGbDI3~}^tM{DGX>U2mQmNbIPSJ`l~_-G{M*CCe?adw3hJZC;nBh3 zN3IZ6Yu$GSJzJ_$4Se_7fGCBm*{S_DK+5RT5UY#0GZZ1qN0J4caCNU;`y#<-0;5ky zxu1?6T@S9HARQ8UD#tmQ%h^@sxGYB{6+uo~}!!g=JCS~?bKQh7(?R2M-Oh_ ze57YTM};qbcj*tG`94>!C5Ty9W|t(G~AR}LR{wLM?r6iBs(rg{pH7pYVNi6D3R z4Sf@g#1aM7e0A#Pi7!}xm;~1-Cu!4(u#0?3>&K~G;ahcd!QC7V6%bR55&?f)rn0+e z{b%lodut>uJ4B}rokiNB(mGWUtw&p4#%ovPnTlw6)!576bCTM07|L&ss@D;ib>4j4 zVmDO&r+v<&a`JqD z=ic%?@DmFH{4RqDIsSU@rGr`0^2%q}!hR>-k#x~=vIf4ykY*4NNWoS&(oUS!h7v-T zY=r)Nhc6Z~ob3~mrq+F?2};%U#xf^2>L)IWJ>f;{*4j+e^BB$idP{Czr)51V)Z=eE z^XYgfR7GNQEepeXOBMYcS; znGPTbJ*lDQc2X=bFy!qTI?EgUc)0v@uwb0o@45@#eqg35s4coO_8 zCp5~CTw%9LZTaXab?;^~zCmp#BEgJh#DQW~8J^92FfR?pqFYN3_SP-5LR%G=rC75p zR*m{$mW+^>*lS3&8Rg}#l$L)wfMR5aT{z=sU|T&#CS@ug^3an z{!>sg95pe36X#*4#D@wGkg*N6MRW}Jl&xCnfo8QfI>@zHsZW|f_#yg}%4&Hl!U0(b zs|g)nZI$!B#Yr^OYMn|)n9XFTnM}-C0?f*s=aO7mkR38|x-kqJjX){A_PvB-t3yVv zo&7V(>6nNUyhG_jc#p{GFjI}o(df0x6j><=rq0N1+Q}}U?QQRl+=gN?(`W{vq1nRYUWS^hSqVI(RjG8}8tCzrbOu$3S7 zIn|m_QSjG&(>(<|-oy7GQVL^XH2!k$Dz;M2HHk(Itne+7AFZCp-<4;Xhhxm?*EOu7*Rpv zQ*5cdZIlyX%Q{hSz31^p>oo?r(1wIg!lptg7!tkbnsKRF{aC$5J3Uo9n8t5)AS!3T zo61@9Z`M#x2A`_&PODXElA)P=3WW9H?yPIleE0FtA=%W0N2Ai27L&EyIG;V z#QE~RU!C^mR$esbNWKdZSE_91*>SM5vr#-_?mg-=$Hd$RvX1^{W-^daCwz^`zzH_d zFon)Sx0@b1PjX@%tE|xYaGd3119j*f75jF4+jlaDb-@)pmDL0}-zC=FlVlycf>Mh~ z3#x5T6qwqNftD;S$JLN%3w1^k^i`auI2lvwY&P?6-4$x`3Ig$im$<{5D>_FP%h{#7 z_r*afE8AbZCsaAjy6q@W)9hu;M*VPL8i-{(ExZvxy`a4YaD%OLZ+tgiQSB5Ns0(Buew2F2%0Qb{CZ`sP!|l@gz;9H<MoEwI@g-x;k^l*;-koeBpAirMay+bGtAg!CQMpxl1wB;Rl=-mK#X?N;6u+fUsh=Cp- zQx`Eep!o?;ULA&#K6MX3-~^w($5XV~8P4ipR%Wmk>7mBP-s9TG6h5By=d5)19fp~I zpGHpL3vJPqKtlrHhV`rL;~OhtAX&+v)v>}zj2>44Emf@9rIDX*^?d&x&T>UcJStah z3#&?B09PleHGxTdM6Vg`U9<<)jgezB7?Z1uW2xiLYW4?%Jj*6>g=48gT4U&PgEe~` zMI9T~hKv&@mzKe`s``hmp$;WhnoGI&VU4YNTWt(2zx@DGUnNQz<`u>U^vdyAADM_@ zc$=daSDKoNmU~BbwPNAD=N@{qCm6$COU0o>L4^VePw&VBV?CCpq`a>vY=&A8P;tT# z{vY<@*xcmL?s~AdngCQjVlI=JNZ5?QejO6HKl9KXlMlpuK5F81>Kr;X-n&N); zJ?uN&SF(TqI&}A1vt|fVhbZqG#1VnDdR13fS6A1mtEnZYd63f4Q5e4d1p+3{hqqP) zfUsFh-B9%@hSIE!)c@Pv$9N}~W;VzZ3-)p|wMC{D-s+xfm$LNzZlxy@>$*A0)tifd zwbRV((c~@PYxLjowq<8T@fnrriSS;VYT?bP9L+Qu$}cndO7|F;{O7;G3P7LjE4{erI=4iLzT_IY{KKw zgjvvaW~Ac8Wczs4j?8A-8C_}^nup%Pc0c~=7vltav;EQFK2Pj!-zGW13{FxeyuOxj z_=kU}k<I+hX^ZH6Oa98MojNND>~noFVw%UlPtRq+IdO#h$zcp}YC0@05;R@|oY|B9cnfw`V7lNn9Q7CqB(OB2yOx-SLJ zw5P(`t~5DN*M*0H)f%r!MxWR`N*_e^CD0ApwIg&EYa6f7W+f}bk?TY%Tn%e5B{ldY z5nHkuQFeNBB1`iA$Q~=8u_3&%*YxT9$UYOyaF2Zxeobe&WctlrHbX!Y zns%R2lSErv*MVQUgZjy3JIRq=x{Lf^a|cbbNCO%BHRHEGA~jSxeaPa@%6ORmyyWSg z{q-Yy_kPT&=?kj{+?wI7Xgbv zUvKUF%h!8HmY3hQyUnq=LZ5>qP;zM8kH{U|{Af!*uuEliv*C^N@mo|kp8G+Hv2Hfp z^{X~_esBAl)5BGZrjHekPo*1l>E+npr1m#@ZTmGkw1>Ogadae=L4~Ist+p%s znqx5Gj!&#{lD?UY8#7n>( z<=izH^e0I>@|)jyqoJ4OPbUk7Qd~_IV6`duq&ZMkk31tgX<>gTAwBa(I+}5-$p^p& z?d-AL2Td3Eiv?UQ_bnbav+71(psp5{<4om8q(m(^&BcEeG5R^q>o#5d%8u+d8W$#M z@y9sp`bOW&d9h|}N#z)^w|!CJ2otsDds#g*>jF;aT^*K~&!5#L#ME5&P^`C1-8}t3 z_4{C4XEgP7iBqVy9!_<#vZ9nFC5qYLIdpVf zTwTK1l;b%u$ET9icqUUmX^pK!A(~F_ zqswsbl9UNG%_AIN=V6UCD6BhKVMhG`3VL3I-C9KLMQt|K5gnU=``Zufe&JO#8|%9; zMW0@4^Y(w0*xuZfXWyAQyAgBo^u6obU)Pw2DF^NB%e&R260f{3uC7guV1r1ZZ(0R! zn3uUE=N2xl!Ic!?Lk6?4yP_=-Z>!?C&j+?U&B|pY^~31Dk+JQs_8CxH)#xP>gzJgE z7HIiBNRVP^-5?54-0Z(q6uKnMI!>HNW^M!qR#LenyE;`DtNglbX5>1YHO5@25)B!4 zuvCt+X9V$6hNj~VTS`~QhUCRu)KL>pHcmMG`BfkJ`RKhesm8DQ+{xFv(8{7;KLw2f zVZb)J`WBVw$*_{0I-pas|#QHu&dPow~-)He_Q)4Y}Ug|@> zY8%lDNK^Z5=Ba%sUILs)%Q@#ea)-;avdl$^x<5odjJ_xmHU)W{wC&7B`|a&?E|&i4 znjZeP%-00TnkRiCTLsaL>Oi&-#d^Im^ zN2}awAT}_fvq2GzH#X#%t=k1%$&++xvxC;|F!rJlD=>cfMPRmsEdlj^=@p>Qpz%wu zoRx_?&h@g&33X|yQ7n=B`dzA&;@e^jl&46)1_-nSM`;R2|<@gw|dEa z>_^REisriOzRIdLDDJws-1;pH*e;;8GhyIYqjT3W#BO zKR8Jg(xS~j?d7EfP8H8TlDqB=CV&kRtJS8~_G->C@wEMt;;7Hl>yp9-`%M?uCRK4Q zKCaIRA^)w1k?81w825?1!L>SN*I;Vm@{f?VNr6{HQ@aE(ebNo`CFfh3R8sSXFHkN;iB z)JPymbrqvkGet$=tD~J(Jc)$7bqHFA}A`DI4_D;xMPHts9Gwh8}* z=KD{-Dn9?yFEr|Re^sM?_ZJ%VpMG6D{-<9`roH>?8uz=u)VL|p*SHP-%T-kBN&PZ= z*bhJas>aPpB4mLrz7zwCKc>4u{dKoVF zIShugf5Q2UqqpxC4M5ha+jnJ@ZW>C%EJI@cXJV08b&2Je%2eh95mrD4g7Wg)yxhLo zPHl6<2|#Tj_~KUER9I7dE4++t`Q<)9zV0wB>A3N@!?bO@&8CyL*)Rv);u*;X)^rfd zmt{dZOAfSw8{~|TCkC&?fGep>>v*uY_I_@;#fU}Z%ZJG~iz|Vv)2>9a?!?<{+T+f| z=R6e__lZx=b}!|9QwzSnq|kbCrl5iAu;tGv+*;1k_#=h;C*dv6xoQ|HGMzKadGqcT zt0xn=`UzZ`?|c@L*8jX8;J?mw(Y{S3qys#JhfC$(@Xv4du3h^LzS#Gry^thwKnZ&O z-usRC;ByW+aa~lCF@HS$zPa{KcQ5LCk4QGN1VL+I{7g&XWltkrj_2`Pc@q$L6Tg)= zB){=gcQNUbxC-3HV1Lr$re6*yB;)(tgXJ0A8s9ailpF-#G}jhp3aR$hwLbwWyBdJQ z9fpw7$u)2os!;ZNkkk$?a=ps3JvD4cWV?*gAEo7Zau*_J{J&=y_Bw~%lUhb4KN+_7 z(m%i9KC_toN7G|&CMdDoC9hugr@7{JX%~=<$;_pU$mE>s?0E8}vI%v5#HuK|g0dn9 z?2~L_hXlo;S?uE-gSNXo<07arwMR(GiZej{?1K0r&)U2@dYhC-4*mt<`3hF5y*K-C ze#zBgWHebVD@WK@pU}xX3U}b0YgB*$tBpDL}Ha7iCXR@6D zb)kD^=4TIK%QRdxu=pU30vm&+fL`9tL`xIT2|)3_&I2y8yFTi4Z$%^nq#<~T)mWwc z>Cxf*fQeZ=o*hh0?%T+>OcvSS-_E$bFh{`?dw9sv+r`XeeLT83KYcvaC0932k1mdx z$Y<{#&rZJ`9bI4$?p0HyIgj=nQ_M=xC3Nl-H1PZT``;|pkLSNSOF(AFYOE{R7M7c5 zB}THDixQf7`?$FiUdskdW!ww!Oc1U=(@?K(Q_)-qZ$H;2m~F!@#C&U;+S6$0Z6#!3 zeeY7WOH63% z=lRw5C<@-kM-wOQ!};;?{E0xu-avIZ(bj=N z+PEz-k$*6sA5SNzfjswqLMmM!3T+BkYy*0JwsSmvJUym{f&TVS1`?NF=aX^Brw<`1UBf|^|I5qC#+@9?LTj5w7-K6<|q)SuVq_NptMNBb@~v(>(?o(EU49V`RWL9U0hqYKrkFl?e! z7Hu9)9?!&;PJ@u?r$@UEF(fit1iTcRh>+i_+uoL`joCHZ*R$WaR6p3T!8a{#t=-zw zl0fJo^zYYeSx4JjOD@}eI9*U3B8fi^I|E%mUZzqdZNi81nHw)a6O#FZ`Eb2_Bx9n@ zqLr|2T$&hstUS0Nek`-kfA4hBj_TF>QVxIZ%5>nOSmn5L(*#kgK{H((OwX|CbRl66 z`6P%_-!y+ zciCZ1+TvaM2>p*fyg}(nwA6&zYu@$!qUcNZ3cP(@P?zjMsFG#{#pLMTOjZC*V~D`B zw)gG7bpCaxU)Rce-?Rf2Ts6{&Sm+BYB4ZU+RKF4*O!MOHtNEf2VU&ah9nCO`L+1w| zPL$o{#RK22$G`22tM%FGQxVL@S{WQ5E#E@6HT((dx1V;A5#Y4%WfXrbZ@{>1-@~h5 zBKurld~O~E&LDQ(2pd4ytL~)Pqs6ZMBjWcu)s*zV(lHO)Ay%os(sXOf+$tYn?;W8R zh)d$*uXKxNKJStyJd)}=*3B#Rw1Q0RrGqC0qN9&}yX_z+tHGCV=kZ#cSNctV)3Y8o zt~6YwmVdgb-ww>)5`^6SK3c5PO({MPV~Tog=H+ogw=(rTF$lAi?(LvXxjeWdtA=62 zY#YGEHrk5308?*f&9y3jk;YKuHlRZ+eWdf7AIui#Pwl!`-A4YUdr0QThxXfN5A7du zSd2w{m+fT7>V%-&ue~qw6<>~U@u<~a2|pFGB+}8Z39cTXoDvLVjiOWPslfw-+I3#L z8?kgi*AvYClQYwpSY0wDO%rh?$*jaP_K4XzdeTVSO#AJ<&p!BUj2*kY%3*{<^mY_d z)+t}u{(QL?Sjt{utfS?{+1Y#{n`MVW zsnfHaCz4E|&Yg^&%rA})rSYB5=XKXF_?DGp%1chAII}dNYhE7js0`P|(Ie4TN^zYN z3UE%4O;1IdgKy)z0$^|N^D=v=lb=pLjTV<+EwOFoW#thTQn97>_|R^>?LCX_Ado2w zY(Olfi~M-DJfEJ*vF-FWTb{wmN7+>wRQwo^)l-Jo*7~oqUOS%kbgQgqMR)peI(NSN zj;*3LckB}PBB8`CePHRhRB9=2Y8FRawpJ4Qfe=bgE z-*Hs{)}$>Xn`TyrCK-;H9b-GkPaiQl>p!9ZQRS|fdb6i@eTyBJ$?2hKn}^R%J47cG z>`(_e&})2Gdv@t`rPoJS!d8edL6?f1_>=};XKG+(lc$PU?G(Si-$DNCp61f)80ekm zQYo>1Vsf=cD%KrH1Dj;UxzdH}0yc2|AfM;QWu*^ro#7{@uV+SAT6JG{ee~?GDn-y| zreJ(8P%xWyy!M)v9`PItPKpC+?acq^MbPO~=h8K2?5ZntdKvCtu3>*s(H#oSHKS!c z{v<@a+zKn_?>k&4X_e?nhUf3^j9z)^l}Wt1vIqw$->!(90`bO1?&z$eS6E|ZEkr_w zxqM3DZ|}Y?KNzIH8Eh6A-GMd~Z~6`Hs=egkUwMi5ch4bfBJtiJM0(q273SjQi&Ilu zkV0&IHr0uCj3*jEvf*8$MJl9zvmpkMVQLpTHg^i8$@Fok10H3u{eU>73g%V(yVdL- zOFvKKoegF+#FO;t@o+wl(h>^hlHe965bNo=v>3!lrVuRgZOl%mhYu6LawWOCa&FZeoYig|AOE!6)&Oi7Zjiw)%TlogCZFT4Z+bDZwQEF@ z2V%sqAZ*v^#x{BjUu3TR1ggJVD4|or@$wmzd!~ZP(RVq z$eu4Lb33T~6hb!vUQX&dTi(v-dCJh9%*w|vAzD{B@Up_|CEZVDgVIQ@U`19BeW{_{ z-?DOw#JaX+rVnyJnLze;niOMFA1|gB`!@Y@^iEM7qw;QnDx-UobMYVk;WD3EFA1}Q zhE=`o;8Kg-CXU6W*Lv&=%Uc@v`gCwtV{PdVkmvh(wU?b47Smhkb8ckVh<@Y zl7zp8k@(~G8f8btuTIeKt$j(f2uVxSx`YaQ4y7hv-N-h*#D(+#6| zL$6u5#5+k75w@z?l05s{hU_3&%D}o8CTy~ zSmJvRu$L;XqaVOHd&5g&8_z6HpGx0n>wXF!B^g zL19XRebUE15e(%G(EMb!oG$lR>ZG!DJIR3dx# zWd3)uXC}Mz#nImMbmxn^dy3oaeKmcsSF?Ne?r1Wm><)YXdOUwHIsV&cmW8<_v|wly zhWP3ciD@<*Qze}YJ5EBeKIAL$5{{M-K7ovx;u3G<`j!iPeuy0Eji=5lYeHiq=Lu$F z+DA{P=ea08I`6QhL?cX)DQ!)PBQjW8$B$GAE-%mtZV(jN|qYF*mAbHup zBbRJ{>$`p9#r^rW_vZf!f1TUZ+775iTd|9zx42_Ok$Yvexr;!zpO9^FV38uSex@ua zmj3KinXX#2N+E#hlsZ=^-GnPm&RFkbB_`P>bIn`}jE_lXh$p@XT8TuC{&ZmriV8u_ znCfXURj*Ex;4u?KlQX0VF(-Bck=ek92;2Iu`ZWTQKnhNSi{)P`iDiD#_k%bzfz;+% zXz8QrfKZ$0V!Zv~l-xSfI4SvV30d3=ccr9qswEphIUQH~5Cq{i-Zq+v-C7Xh(O}H^ zlj$M(>+E9nYqpjA1FPh1ZZE3u%}CZ;HS%^+_CgG^^EETIeP@o&HTrNqKP){&!(G_n zw31YE>l`c_LQIYc(vG+9UL0sU;C35GP?`n0jWcbGL|e|exae6T9{_H%c&3N`eYDB1 zeN-h+b@VA=U8|%>Kg;DF6q-GRXIZ`vCI{cLLST21EjS$6SQh%|@oZuYg*XjaV4BNA zE?&wd`ysSOGAg5Q>f6NmVsc2#d49?=;kXCV>@RnVB$+6Y4_R`q)W5RId}Ba>S>Z74 zZb-Q&*~R^PfKEt7fQqZ<%gM0|N4C5tvu|hG@aXWHrO8D-NlC}?8dnA$m`Km5mE=Da zam&C=u-IRd1I?bRQZ-rDL`g3X7s^U^M+DJMpIL??B4=i4vaysISG$f=vpAWMler*C z^Qp}Px*h8MZ23sd5wm3DdZOdm9IU`|bk15#+T50$73t|?skCbCG2n4HC9<5zvmes| zF7-n_vuiLcMM% zNk=4x3{2s188KbJUtU@d$?68otBUL*uv>ARLx~-%bQ4^hLXc+O^1rPZZ?bSN&JNkU zS2uxwMQR%pppi)A_;wJjlM?;y;Kq3;xtFThSKyzlIMbYVZbtxZC9m~AfL z!@Q_kgRBIN-`?r)=EM9`1?H zT3uhJVaGZagCYh=RFFL&l0eQm1C%cQdCYUcgq{BhdMIs-_iPfiwY7G!IKeKLv%ORh zm#(?#=cVL z!jpdNA|$d~ot$W3tFPO4GUI69925Jy;iRf=!%3*mAgE6K4rnu@0V7RMRCf)VtzB5g zBJ!>(PKoCXnk;@i48oZsv$A8&XvI^ zTArZ)&17~;Ia~4;)^Q$8BEp=Jsnm?)fI&peBL0XA;rVw$;Wn$}7e`!u3 zJrkwj$0R2XwjzCGa9J#6Zf6Oi46acCo{mER+yocdQydVHvR(gl=F7ifKTRQF8@3U1 z*n&s;3+sAAd{_km7%R?54KfW1xNy+fq~l|8vB_7BGq943a^+tw!rp5X@?&!%a)b|y zY|bL!-%2Hk(_*3dKHorryY-jYLE9i_{FqbtKmB0W8%Uxz*+c20&<5iRe|OaG$1Zf7 zUYN}naF^ET znyZ}9#CEh`NO^m8Fq3vepo#?@`l`vG;610xevg44u?emJqnlCh~tc2P2Y zU}3rV@Na{S_fmETM_?6a)7aSka-ErL)W5x-&&Wly{l925Po6y4eRO_u{Ev9Iztt@u zC%7W_&M!DBh3c@}n=b!QHL};w=Lb6hYPmyxESDc~%GUe%Nd83fWo`1cdeieTK(`d= zH-n}3V}?Q%jeQ>B12AUYI~bfCb5e@oyNfj8@ufay2Qf2u+?keG$;(I5h$Zc$E9}Sk z+!3T4#-2R58mET^6f2(*JRRqvGPf$enH*R2KpQEgic%oN<_~makkg#Ll?Zus4?;!9 zC)zVRYYfq1Ye9R3`IAQ$oB|5UE5sI4$aFlJAJVNvvVjv?t~JzcIS$+MDMv_6>l8sR zI2R{Li^jhpb@>g&^(dCVaOsSx*o=xfA*r%-?>vJGz_7 zEu$oiB{|Yj?O&winpbF#-EF71!e5U`3i>DcuWAOp2NN!{Q~o|NO*(gh*GD&F3FJDF zPN#4FJUy7mO)g+b$bE*1Y!30!P6lID2q{HLPnBam+X{xvGZ)b4v&)%W<&ZH-tYMf5 z6^W8uQv+`Dc=cz+?wr&&dOk{~kqxo2En~s?bG(ypcMM6VkG#_k?$4|H)9i#GrF3o# ztjR-+vTS>!6-(xQFDH5n*xc>Jh=D>KAplMpz8Kw*t4)n$|7OYMmn zwn&|cQ#`V#G0uqd${|rI{tWRV<~#5;#2g{f-f;Qo<1RlfMsH~wa1wW z{mHIIsio^P;%Mw8HF}-;j>h`>=mR?stmu&x+VdxhZS(?v5`0^V!s-i|fT#uL_amBk zBK}0OLbIIHy5$Kf(VYrjWb1yY;ae6wH z7oW>(M-LXrXjARa81*@k&fpLW4bh3*!(jICc*dzGJ2U>pN4EFvjQ(mh2TsJACU_pA zWfR($Dh4}ledj3!CQR93c`mj&6i))-YGoi`Sf7K5*_`Ni*tsGv zyuo&bFQx=B{rr)HH0-V|j4p7XqY2`+HKjOtVkCAxK=Km%uhfKr6Ljppa6oLZ$w}kqoxr zG}@Eh%}?hk3x?2CJ2cP-O3l~;FpJQqH9)wThNqBgqRlsmhO-t%bpj;0#OUzga12QML{w&-PZy&iN4WP5hOIN&0b}ZsbwFp@}7U zB2=R9ZWGy?FP_!_Z&e+ifrNf4yxlF;#JQnGS2TRBV19^atoEf>k@b|=k%8A8>B>N3 z+j;RYqv24;kxTnBgA8clqAgUo+~^{w3%|GL@QC$-H&7W)2@o$*-(I_9SSY6y@4Lrl zS{I7eM0o00+DXI`jL-)osof@ORzUCW?p_0Ip9d;<(+GT5zW|m*KSH&%XBg-{k?sL1 zzGO!1We+Znjv?fdH#BH?zA#^oTa`#6>n!-%*;Sk4)_0%GPH!z# zFM^OQzl^uHzJp2baR!{f<_lxQq>xGI&(QM5y3VlVl&IK=3zXZQfB@$Tc*t|=S*mJ_ z&v^m$WI?sLhoya4JJ}%o*(HD5Ba#j>Gq)Y27E0-=ce>!z>$f?&zGLS{j` zTvU#tVi<%y{##Tp_@+!)PY5EPONO7HWP;*+o9&a0%Q-295=p$ZOjO`L3nx1_bw&Mi zeH~kXRJilG&i1RN@X|<$YbJEcg4}j*$CPt7^V2()52WAu(p-Lj#$}i&`-qr!Dc^Ps zxP!XEPm$^f?o!~z%7}5GrNO&A=0s*ak2}=DuV=mQeG0=%pj!_xD~YNDH3Aav>RPiU z=f@8(j;GK{RtM>p7nCqz=pT;(88*Kq- z&b!JP>i}9a6a>k(VTc`0OKC%2M*Y3L+h%6I>82c|;AdD-vg5)g-BrH+NG3QLOW)wi zT0AtrX}sRCbpFT7odfby=O;V-=6R#cYz{^C6_KVt1E^MCt1>renyvd1mwax~seakY zPm`V|2=j9-tjcb-ij#;E7Z2GaQjjpozIuWW>sqqUauGSn;*kTt8?4=&$ky8Le8vJU z)c_oX_IpN$_R71rurc*-bh>iR{f#$fiMRITh#Qyo9L8?yEZEVSfTTB$i2i%Aw7o*u zkpb1PrulXMCXS5Ejc@lk$1IPu>urws}?!z(+jBnhsp zjDuvp;$w(;>uMA6YL(rpW|4|jRqyF`i2cI}(8K1w9GQL+ISz-jz^l}4PWSW`vHc$azxj4 z;jirjo539V!1f*3G}{d9p3~{dpP?9ZN=0E;^L0VWrVF#=9L+!9+e&CZs{qS(?z$a* zCf9_=!N?-x_IC$QiBW755-C5g-AaW%XN(EK$r1R6C)k#1IR=GL$AOK?JlcNt*7NPx zT6h{|W%!cI9Q_&YTU!BKL#l0k56^A7G+IYN$v^GQY+0wvq5$wavnM%kdcFD!_9y_G zznkeF5^KmcKQ&;8`h5hq^X#Y%^s1pikNl-{xNf)i9}lHy{KD`viFctTvWzpDeCnHl=X~y+J`X)K{5x7l*=g zSkf||_uu}yk)d)vcCEkWWeC{N%X}p?{Nthbx@NShhOk?+2(78u$o7o@=9Fr=R&O_S zI@n>7-hn3d2b;Qpfbzf1W-m+iMAjLlL6u21Q=(Exi!7B(Ev!L|V&5riP-NXi*AW-t zq1LlpD(Lo)P+=+-qvG@EY*Ed+Xz?^V9>XWeBjy^^m`d*}I#W~8UtjA7k>$oz`Kqfq zd8>R0sq$Bq^|}AMqC9!Kt_tPPyoXF~Ze&J6(mB@reO%|N9&u<^l|T-!DDP~;BJu{l zl={EdnhK3Bxt#H&vZDfxH!H-@>_NmN4apRr3ShzX(swyT|b;~ zR&mCG>8QCXkCP0Eo;RCj259| z)r%ZqUSst|{uTKw{o$LbSyi^bvRLA7Y*yk<0VsHEMxmL-C2$gJ$rsGXDu1B!$ttaiDS1OLS0Vvz=QJ#$HrvBC#E zIMk$Mq(3_%bfqv@`6=v9Nfrw)S(cVdllny%$Ntzvqj1I{pZ0Eh;;O;UNOj$h(0E#> z6OZXGv3GE-9aYr&=zG2#ezecs8u)DSr4=R}`qmN;p2&b`xuGsfrZnccp^7#h5*gep zoa2dYM5E;g?A(#k@PU*1K(+KMD#03}Wf$E-yHH&maFDm;5ohnEbx6+0+JL~`ReIyE zDFCJuZyfg`JU|Q*M~Xu1M>u1Ou(s(XdT&Qr`9L*ab+8wH(PF9Oaahi(Ljk8d#W@;O z-;bCCO1P6?OEWEa#0@a3*K2&eV<~Ph#=4W*dq|K^BHFw#_#qQ7$ z92CM3TI|EAkBYqRf072ELliMt4G!&NDe`id<=|4s(AOIg6KnN9YS4Ahh5?UFxTkan z+D;(HA{&Z=ml<8x0oV?(`zFUYTi%H&Y}|R_xM}sJ&o0iX7_12?l?Pk(L?a(kMy?hC zUH}y3B!@7(R zS_LOYi@?s8P%f)=y;l+Z;t-;l0M`3UGv^I-T1#YX66L;o-6*F2JeT^bygTK7>1@6B zMDjG2R*doBsqb8z=Ke39>Jpig*@Da!?w4QIxV2uIa5v{CgjPt3DhG99dMyu;yrw+A z5RZL@w6>KInXZ+tC1$n?H;zXEr6mmam@zg);v1@yzWb-oeWkqngZtI$gXg(ubtM=! z6|J?Zxs&KolO?7M0_mpjZ(4eB9HTRw%&tuoogEM}*3({gV+(F+?#yd+H01zdNWB9L zGfNw_AZgDYiBzwFfG&-d#bfV$a z0Zc^@CDqd6t@_YWmH&v^ilRXS{XOE!R6Wz(gqmBa`&K|P`)>@Ccw~1oCR#enXFb00 zhN;>bE=wvqASqFQ6?N1mxPI&I*+6d>F8J)p>F0h5?dg~~M9FYYOW3LME$!+;24n#1 zTWKv<#ydNK6yGP!GCUzIl6k8ITGyIjqJ~u$c`5vw{=@}c9lFs(&`6Bl!njNt<;HN# zJ+l`BF}5!176B=mYw0&;Ni?w*Vw|nNLaLmE(O*-OUSwZJwnoXMBT14)qvV#tTrt&Dza>&}haOjpUA#0{{xahng!pS@M?1mo7b!}$|SD%1(P z`NcWECz$b;zb2J1UM3k`^WtFF^8Ci>%umkTCgoKde0;<}hu;7214wNCNdQl#55Apo z#lrxYm;<4KW_vI_UW>)x>lY)@#o^{qAFl@FMZ;N49^NgNl~4)(${-n?=WP}y4{x7} zNt*A1!nHJ zk?<4CX5_kiIX@;(i1k<}P1$}owTpxETiwTh6>uJB?pe@2`V7!H9?qCt zEFYCLgnrb=uYOQx2DJu#>h;Ycw-HmL}ScB1h~SKf*8jth!U}`b?xuxIyTM zW;@)juAr1v@k~rE-LeGPZ){2m3kCiwoERV5yzo&=Sy9_`>e0I$()LkIEo3;LyVIugZ!pPyQ;_lu`r*-KFG)`uJ_W(qx0+?vsJf1J@ z+?Y_trQ?-cz)8vKcHgEMW7EZnc@ScxwNQxmd%-_swyI{0L9SH;QkxU?+C04ASGuF*PU~(I+s3}!uRIOE4f}y3WAetxGHvu&& z7e3bK4#exJiAfj~RbEt4jbjpj<41T!;f$E4kLUBVS}f5M^pk{EZpIG*(d99IRf*o6 z9aw$DQ2x5N2=>asrMlx|J~okS}#E~&SSl%o8zG3QN2!&xtp)kmBM zfIPl)LVSn#80T_NbA(^mQK<9+)O*jCDz4!tWa-!LDQEB}vqKVaZT(cfa`qH+aQc~B z-Rw%FK#0|X@gUF0L#zQSs}5!iR{`Z?>=OnPr`i`BWK8d<%1|jB>XG4c94%Xl{C>8- zoOh+$a5mUxXuY$-Q$t zXMX|f=t45f*ZPH6V_TMaJR_9M>-ph%hOWpTjPW)gE& z^ETqFI-F`&nTb5syzlk?_u&_vv_NWGkEf#6QuQqnV@{100g8ZH@k{w9 zw0>&uA?@ruFFm^tEC<3U9G0Lrw3YnSk$9&HoF`3b)>uOaolfmNNE{WBVcRc0%g0bo>!<&2QcXQ zQ;_#U9YQr?6GsR*^vxjEVK;W{B(NRV{75#iTP|qI<{NRgLwfQi z&5o`oN{V!rK3axeTh(Sqyz!E{!4ta>Z)I1Z$qg2IxM)y6Q#P}o>8-(>6wBItHgi!usc36##=(!HOgPGH}zU-u?I}IJnn1b5UWY;k{2j9_iXXH<2Ne((ql zUH>mdSp+8Vi>ks|j~eXKo`R%zkYwtqURVD4C+bFFSuGCUd2M%(G9u@Dr$>8*0(Uv$ zy!*|PT*1lFJFn?>fwx~9?Y)~HTV(?Sn@?UJeN?T%e0am@6zG|;=yOTpg2^&}ZzVHL zeK(R=3IDhQ+>*tEQb`zzT+`+#xGzKIJIeiT;NK^JzEdbuOrmV#yAi@Xz77P1_DGQm-R7sqWZX*DYJ5Y7lWF4Ei-J+H+)yy%}$sNAn4MJ-cv zZ5{9GEVAqxv;GT3qz~z*s>A&;TodX^;G4weEe5B7VC^iXJN^orR^U1 z>|x^o(1%c1_mmF0kj7RZm0^)MydQromYGw|>Qx>dbtQci8~d;T7nfz9?}*#Pg;FrF zH1w+|mZUFOOwt;>6#T%slGJy5a+RE@&qtqjYNYtY1nBt3kKUCX*cQl&jU$*7XMmzHk`veO;r=zk3s4b@Z@sJ+Zz=+RHAia!AC#f1prZ5apttQcwfJlXD z>u1#kw`PPr;cOj#hDoGv))>QDZ3ZrtXRt8k`#qa5_xhP7a945C^U*j*e-W3vo8$7M z4@P6kW#JG#jZNQ5)R_T&H6!M-xk?$3WJb$10bY{7U6-BK(UE=G!6nqnU zgPO1CVmvJ64<*X9wt^8`o;Oq4nWv()7OxG6iF=Zr6R%;!hA=bU>)=%ov*p)O=AT7B z#Va>oT=%UbGjE25QqSf1q^{!#6u&Z#fh1DRf${t!amLFdcd!TJ8u;KN})C5AviL7u>PyM?hfNTV-m{TqZw-E z;s6(|>(U#0b(@85{TKSJJyzPiBna~OP{A=Mq-wL#p?{z!+nTgp1<#RU1^#nQhLhcz zrllw{c}wj!a=7`N*fZOW0gJrA&4p=&9xq)(6$*+Cl52wD8Cd>*@O99wN_CFTq;`0 zcPoX#7~SXS11;s?V3rcQVPp}#DFdrrM5j4Y10&~rl8${oI;Hpuo-*hy14NEL-AB+0 zmnJY%2b1t!5jFcs#CkG2#NtNpwE1fVsAkRIN`R>!Dtn`tkm@R1i#2Ac*!;aZ2#X!n zzH5W`!BcwTT`|scyQ>fY?`Ws{+6KFxD@UQ$K8K(1W@px+(A<|H4;*U!#?+P34*n9Z zK%@f$NmDW?-YSXv!fQWx7l)IGz=TTm^W1Ggzc$!Kd3diTpL32yTvBLH!6B~cSRNc- zNZqrg1f?zIQ?WU&o8a0fCgzf(GGi_QRe@pAwvwZ)ITy*I7Y(QI=cW585y-(QUeWo) z#9dl9>wf@*Yk)Xb_^3%w3HB!o-6lI-a-wuGKO37cRz%vPI!3SQY+A^L7(iQKgxkZC z)%IbWTD@TE&0hOHQq)Rqp{cjwS?nIT&_^W6e5UJYo!yX~4GoC<;%Zb-Ll-bUm~#w@ z90|V{g&Om@uLc;aHfm-FYZiuKIpUGfq<;B{{?3RivA+4Y7iVd*>1)gDydpB-p}JX| zTHVnX#j-YFn2vXS%M` zfN9+WN~4E;pi+2+>;@cTST-FtLO~)U=yJuaNe-WBhIhB-r&Rb08sUMC-)`0w)rgt!cz5PA zYaz7e2s=qHylmvO$HV4``SGjNUOjUq0GBWaj&xducm-whl5+c|=h=M_h!pg*h&B5j zh8pW?-M*o4tEAoVS&4N8_7%S!o14{7n1QNP3N%tu>_W%u)q&KmD|j{x4;x9*mZ}$_ z+n~Ru+!K8|`h&+pD11M@tJ>r(xEFWc_PCgGr?LD#^7EaC)+trjVt-miE$me)NSn)m zemOIvj3vBGenQx0lmEONUJWIfMpPF{Qj?5wp6+jHFflWA^4lq4(<)2Q30RDibg-?C zM!oiiEa!<`c$Skp@D&bt2{E!pi2sj^Q@uHfoM(Y7iA2{(m)-Fiq>(CYS6N<_&@nJ^ zk(#W41;I**fCIE2c{9Xe3zd;l$#o=Iw(o$X7};WmhhG5&iXd=Sx?X`$qO31{JMd@B z=>(tWa*u;j0rzj^VMHcExy-9M_PLjR-zp+_JUCLV=G+Au7nbbL?TEJd$u(}0B^7(> z=*1Kr)wV%xRx5MgbhYE#$~quQN=pjKd8-ArI)!jfC3Va39jfcwVB@UQXP}q3pW_Gu z#t#7(-SMl&&Un$Qk5Z26wgb7Th(Z){`p(ts1ugq&?L!+FNmQ)$CWpu`ypNI0sAa%R19LTpqwHF_{tSF8f_3dx7_p*(S+yl& zk9RO8ch8eMB*dE!&8DX0bjG2ak8FsH64fzphl2ZAL6-BT4qO(p5s;ZjzebMyAz;I-79nRSpBLD zh)y?&_goBv5z)xOiQSFzI;y7TGI`Q;U{j^>xx+)MoBS%2Yhd;~C{p$niD2UrhQ283 zQnMvgxHs%dkx4R#I!HQc4)P)iQ$l^oRl-mstr8rYrru1edsh7C8YSjPrP(xxrLebR z?NQ_VIVZs9FjOQHnv|#@gOg43#BnCCRaH6}fht?#pt9rRS%hCJAa}q9>$3NGj#}*l zVYJF6hqFVS@%D9NBFtw4*+RF>91OI!=q zZd#=k-0P!TejR*$RI1g)giA?Zy(`|07$H&e1?4XDBc*b9X?m(hKEVs7tbhM}O>`Q) zK;D&Ii$c6J+9uEH+xd32(}3X(EGHRJY6n8vE+PcnX;s6&cCmSmE@63~i4%k9?wANE zKE^(Uss`fochM>FX;3=dfK2yqzapr1msK9($%|2K2j-xQ;@qJL^VDAxaT`V96Dta( zMt;FTz;W^JmKLh8UpD2UwXqYycQdYUcS8JyuBqhrag|@>6i;A`}d3;HWzC+DbWs zYtN~ehJKp;rnc1WE8kvb;k$!QP8|e0LKua=NQqI`XBFdtG0d%4F6#0D#c_C?85*CX z@1raMluD2xo>+a>7d!gCI_?Zw=g*E?Pz=oZme6FB>H9#JTcJWKk=f=TP)@(T?wxE2 zc{#Rhzo5%Iz!&i7R}z9%gsmsOChx&rWX2}t~lO!m8h~GA;j4|UOEJA1I z_S0PJp?rmJ$QMYMQ%w|;PH@zRFG`G5m9+tNNH}rLqz`ca`sh}{9!3jfJx3c($)VO? z%j&rnfQsZWrn?Hnkc*~t7vGD$wHk_+;fK0`9bC~X!OH^9#Y^fR93_x)#Dt{$8{K5Y z=K9P2($Ffxq%#kLig0YN6_3s*x+FSOS)G=kcuq*-3+kP)2z^3A;;(4geNdqYvw#~= zGCR%P^m4F*n&uV)rw~qomc6XKzaQ)!VPVq5dj1#p?MU2UqXkCZ57+dcFb1?^3S{+NCDcmprdUmxc;@&{DHX+$Ix~0u#6#W01lWv~WQPi~1md?g9r{bppRQ?HxJ`;`#Ioy@6zPnE8gYG!=T`Jj$<5 z>SUrL5G2z%$~f{F`awKIzb2#;?kcv7)IGIE>^N^(8&Ys29h>&bkWhS#W$HdbJFi;5 zFl2Y5UuSko&(!gjecom}k81=6xBGF?b+dR&F74^UK5eomHG0j2^?io}*N>hhv_K3=;N%1yv-A(=2P507G061rWjuBnQbdnsA3FjV^tgiUQ``2$7)4o*c6v4 z&R>1MO0Km-Tj`|YncMjd&DQRpT#x(VcHX?;YSOzaiYuk#a(XKsQfHbhC1uZ&Hbhjb zb$lAnpxky;fk78=kI4$o<(G9@9>sxD(X(HD5SP{UI_fd&09w}`Sw(fcVyOX|2emsN z-IE@jCT?N5j_#Jat*LHyra?qodPX>#zX(un<`P(J3QkMA<~jz_BX*-hNb@Kp5ZY^~Y(;l^7kfc# z9lxV61++z0EL8*mfkFCR0a*+Ssr|dLFy);7u?ha7yV266X~BMy_~Dwiz$ui`;vYI3-Gw3z0;=mmGfK0Z7hS^OcSQioKrfW zE%?^0{9%G%E!>#+W9xG}p}_o_?`j`i6qG-PzFXYIZB~U^?kBU7@dyFTTZ+S4qic=^ zROpdmhckr_3iV~Py@Z`5kNA%_vn)@^!Y`H)t6M4T%n^11hmG+FGy}M-1;(5(2W?h^ zjZ_g9pG!h}kr*KB(~dk;;^1XJR6bsyV!w%3Kt^EQI#gQUsom?1?TAh7ektK>(_XdS z0=N7!xhN7_sO!)30|Y*0v83Op>cH$a`>iiP20F`+O0mVd!*nEmiSPDd)bQ@_o86+~ z?Ew`@sU#~s?Cp7=3`_U-R>iHRj5V#;$91BAbB|5?XsF0K8`=D%_)HIr&!5{8X_t952g|{=Uc?0g%)-I+T@z9aRm=7o68lxYXgWficW@{-%R_5z5xgXInxsw7R+MN! zXerj!rV#9#psdr|Azbbn$7E}y`>*W=M9F8>CaVtFBvq`pp|<+$B0d^@;K^NWR;rHj zk}DP^=PZeDADyY~)0vKuDIHDKQ?QH}9aa`ScW@rHdt)Irl|hej6G9nM)NG%@XISeu zbs)s3Z3^X)Ji0hhOmIU;u8y$+`cb|Q(=n2FC}yan{{BD@r)!)iwoSVu))OMF?1u_- znzqt7PsJ&gm97|f9Yoi~Qm3Kuv%odOu9f}<^N}jl=;qS-Vt32VWj?&9{(vNxN40dd zZr}3}agB~gj(l^=S}0+8G8Q=Pzk|D*G9qL!bilF>zEn0#-7bO2+2Ir&4F_k_nqi}` zQXhJaQvoP3LH?QRuh@K9a&HrAX&AgTY9=PM<_y1(evhn#M-?bWRJp=Gvqa4v1#JCr z02GR~ZDL6kV@Q&l!+_F*qy*Q~pa$K(|FY?V`5PC$b@OBN?x>B=$UEf-e_#irS<0pU zwM1M0J)M$PNu+x@9UIqe;IO)F8kppJbL|18jlrp#eE*q;#@kY6j)&5FTPK?E(~mx8 z?mjm2%F!<@S47SRJjZ`CdDhjd3iG`)^4FCsyhj>%k9HLZ+12FTe>(Zp++QCNSFue< zzw}fRJ03WI^D4{#`e4n+Rg6S z@{5F8Y-r-E4!VPsykkUTo$zhjXYxAomMXv$gPc7svfb#e&vMOJa$3@?OG&jY&CI*o z695LR$Az^TxWBDITFha$^woV_ZJt(~stRM-iEIW=c@eER zCHm=1ZrC@bN-3RHxuqqp2XK@x3mP>O(j!6#gO;<+?rb5YTjMGtAy)dQMi_M zk_0POLZ@X=Eih5;Vfl8DWVAoF6^L={6#`rWL&~fpl$u^hNI$yaH5WQvzi3RApDI~e z0Z;zD^ti6bdlgeEwUMn)w(R|QeiV+zGw+&JN?UmeiYv_59<(-N}(I47*7!n zs}vQ-0K|m&@O4$sdc10`cki?>o;0H149J#X?P9Awrx-)U%19Q7hAaIE#~4U9T^)$} zPR{?a%Sf%bgbv|01O<(9bzbWsBxizi+H*A3OEVm$(EQ{)&n1qj$`ZDHD`pf%818Ema zPRlA*!4=8amt8MLav$l=&d}^qUmShC%MYvVy2RW>>b7MlpIrh};7w#?t#&;aH_~K= z4&NtKRqZbm392FHp%Bic;y_gFZtSEXFkR0k=H$21xJ~qG>ZLZ=xoOkC^&(v|(&wFa z?db{)e#JgpAp?zu74e>g+uIvf$uUiuVKox9PM%+}+3pR$O73 z^zjQL`xEZcw?(9p>^@TZ?!*@SlkR9Qx3Zgs8%tb{txR2Lm%EAx^bO`-0Q#p%(eyY% z&dV!@9Y0^p5AcWMP*i$LI6z;VrfF6)skFG|-DjG9Eps+%hp3p9LUo)-*d6_Os_Pyk z5H8)zb3zd5i^12-QC`aos69xc#G!uux?f@%`*zcfpU0IQs<)T!c3C*(T0O{b8)G5^ z(J*z1RRTLoAJl>em`0Lk^&XG8W#yY%%oy?re;tL+@&}Z%JGh(w(Sl&i{`M!6?`J0$ zC$hQXuz}w+p{gEJl~UW@Pp? z2BPE3ab0|r<@y9@;ji&}Tt7X!$zhU(M7%ue`KuU5eyiGRGc9tBlPwNwT9sq2fKg{a zlLOO#TQ;Q_DNtgEJRISO=NQHfOw|>;%N8`v5~Ox*!f4C>QM&OsF2-U^=B@A;Y{jp` zub05^`BjoC-Or&Ta0o<>%TW)Z^5zijKe|Mfh6aRfn9L2{uZro*S7E5%Zlaib&|J7# zg7#|th61Sk!sM`cSPD^=Tgb@?ms;ftXQ6>oHU8olPrfZz7bwTGha~H%Uc(U8E)kYC zSEs{zM-kS}W^2#?=T!UgSO@TP>a<%rVG7H3h=$c5ahkGFtoT2t+Fiw{r2Dx}wMRc| zg6bvi|LMjWTg0eTsWwxfL5a^;%ffc(!3RT~)6`ZDZrZ_EOsJlyPi= zN_@|n-n6vrBQY<%HUJ`vu_I~Q*1I8+MPKh&Fm~$%G|OU_qEKYicW5g6j<^AtEaTo` zPa(Bc3dDVg3XjT0qb@2%CsuP47$1mqUl~Z;kT7ifK{HPx169Zff8LcIw)_}%H!eys zSY@8FS#Y4*uFRKPjd|EliDofTd7zbkdM6^)3EWLir3{{t>NUA^E9cY=4F;9b&=h_p z$`cLZpO}4bZWnO&rg(Vb^|e6;>FnXY0~xSZ4QIQx2c46G{fV<#9{gFH8F=atRjzSb z=DnS6KzKcxFKQXkIsz^9+2Y_rR*H%>P>YMwMolR^i>q6FUe6!u(h`NI04wut*UQYU zjMyi}#?@a1*|!8>X3zU@cG(QZF@emQB;VK)0)j%j`a^-4f$kjY6=wyoTH8bo-}8!y z%RD|{a5sK&-3)^%GS2o$qtUioSKAWVx*LXgimKng5Hja1)cnFL+R=O z@A^Qis2WOw&o%jguvzBeasoE-9sjeU&o}Mup9Q9-ih$T6Odc(}x>6TYccsPbZEEQ5c%PQFqv)QOXnX4J4*90Z zIf}`bkAjnZhFv4=GI8|KzY?r2CF-@X*`Pg_N+0eKQyL@b@*H{c(bFi&(r8esb9vfS z;TPV04r%#AXZ1}HE`w7%`up>%i1UU3O#J@Z1+dR3zQqg8RV2)>^3K~&O=a*EhA3>* zW!IZ*`@Awn;G>51NhX=FaEq|Fy_}n0wVGg`#1*W#X0aT%SLNjPv$vk7)yLt=#-qx* zmYGFiqz8x|*29(mI7N^*qjw^1f2BPT<mH|tx#p-3XYOae%xHh~ z4fBazY6DDHwSp@M%t!^O!?1l-7ovag*(XTqxWX)4B78$g-BQcxC=Nl@%ws;ODCgy2 z&Fx`SWO~VR{j0O|YNbiMZi{~*(}CW{A?qqcxbo!0v8JpdA*$Q!c=NJ*w!K*`yP8=??P5yjz7Zafi_ zqK2)DA>EmtaTOW&Yx*w~9>;x0CGd%#V{1=NT%0P{q;(mQNeinL1j{d@zxX{|=GDs^ zxInh7W*jMXB>TQjG@2p@SiDFA(>RP`l^i2Et>TJ#tSD3*Ev!6NJOmdvq1-LDhJD_T z6z@U{@-sB(Gw1V)dmK7psuf9*KVzcH9;E$VoK-yP2mg%(gm09|LTh~2=n`KURjCmj zGX|xcal?O`$JRoHFY{W+V_9b&$IsrTTxgS7-j0W7tjA(^e|27~(`=y*rEo@br%AI% z_q#%+bQ?aWsUXyI4RHlqS1v?-Pv1VFF(14Ak^|jO34*jN)WomQ;nAw$l!AAgfUN` zib3JOStNpscKm)MXWy%X?@W%-yfGK5Q7ZL&9caI0X&AJ>OVBF!6P8UEbj)A#UIo^T zC7NelyS zc|l&ec4%L&-t6$5-@f%vzkB`Qw|{6muP~1AlV3cr&!g1nUX~pF zW|_eL@K68p`_~PyeD(;fo!|ZQAAbMO|MJ$q{0N|L|L*PIb%DP9*6;r5pMU?4Z`aB2 z$%>Vl9MCT5!U)4WUtAZXcM7K327?Lgb!Sam?6GuImO(cT^wZ?KX&EF^ubl06%j^2N z%D-QOX8W$m!CP&CT3gPp4)_7*wRT-+p!~RD(y9lxC*&Kt-Rk@nlGCJGf*C{4X`rnuGCK8nYXLF zF3%tE{I`uD-~||>*N^=>yJ2L!J$d87_SISwp(zN!2SZ;JsbpZT7Ri*@yb*Xk_~YpL zFyJ*w5v9PuxL;x5>QyQZSMox7X5LKb_9@C0+jm~yRGb6ny7WuL#QM=mO5*q`R}J z?1?zBKiaPd?7M~9tOic(QpKQlpzXfw!krbeBb(M78_BV$Pd9vP+Ct4eF-8c!VC-X5 zGxT#`Z$(UZjOQMPONN1m z0j{JPnFHO3Rleh*@TOcl6=>i7YYPn3g=veS#QAc%5vZO?qLYRhBF+nA(!SYX?mtFA^O@OtS_L zkk1+rldM~jnU>ac75?NFV zf6Kn4Qcx#oH)mDtO0Tn;yWxQ)%h03g?)k3?~McH{XM+f&1p@-#@&g^BM3xrOHtjiSr-N z9&iC5r2^X>H4pQ|GLl@?GO#l)4OVm-$Y{-E>VG=1WgnrnxEiBG|2hc2p^?pH)3#Rj zIroTy0COxh=BEuPG+cdG8Hi<%kKGo;-GXfomsCKnzdri7oI)s%%P-W%`+PaQIGpd? zl*1pK>+IG>D|h&nJvB0NHRCNi+bCA!t2|D%R(qC}cr7e$-)v6wT-60uGCfHY#YkaB zS94cgKha38^XS*2>Qmo6xzMm9+6_!vD<`*(an+%$8FQnH~;$NX_Be&2SlgcQK`m z7>O0Pg2==n_$eRb@o zUB>g%MDUfD@5dHJ$AN2i44t0yn;baGIf1XqcH14@JDY?P%!wfW#d$o4rj}Q z3%6MSYSsnD!=~fA($BITDb}YL14S*yy+<)LRI}@i*V`K7URoS2Im&yLo4W;K-yRdn zF|Tw*=xjoL1Fcy1mDLlgSl2x@l1z%l3>h=5N}B84lWk2`-Ipu=nf>}47d*;h@F-+; z(V<5^GATX#My~xGkeT;ghBX0M@2d!5KcbV^+c)=WUQ@Z|JcfmEvnNxh@VK>5!-VA#S!|8S*=}qdbv1B+^G+nU+o{_mYWHmVF6x zRJ7`B*?5=d^Rv$*%Z+WtzfYccMyoDeANqTRu|-w*=AAB2VU z-RBNvdbmG&cs%Lez+?{J#YN+>bq-nmRJ<7%Y8rR)k^DdV{jSBCqGro=m0r1V#pLu-~Rf~a?83m);dB+Q&ghvfI*f(aCA!XX57s$P$ zzm^_=dFLm&lylA@oB~y>I$R)FTaw-$x-eBvcZr1O;FkB*qB+)QKECc(U2ES}->n`1 zAa_6FL3=JKHyA3ybujYtNC}LMFDF((yc86HcHL5S60R{GMJ5w( z*>^W-H1pFcmDU&#xtmvgMxLhyvYX98yP0p5W&e*IAHQOeu}YV!sBOll2uaH2__EX3 zv?&EqTtd>F?a1CaXK5>ZqsYt-rYKHnB=mGe|1{59lZKM?ovV=zrdAfPD2RkJ18vc7 zD4SwIEy!0l08hC7(Nr_<%;J68uj`&mLqwutv7rtWFm(*Rg%f}|uNzE#+X>E(8Gs~H(lir8EOR{x{aI`AGsS zJsu)3pL#i|IQQ6Z(bGzsp(FNtFTu+4z-!bZ5a?=ZT^K!Fv4b^DyL~k8V@EXMOb{Y6YBM3 zDoziDNo257Qral2%y|dKfNDss#=e%&*AsS^I%zT;L(}$h0_ULFY6Vmu#p-jFW}BV1 zS1SlaRTuQvs$*0cw`>R;IN-l^x9Xfo&}d^WVtYgewRc+xbbnZkeAhfWV<|mV0T;7% z6q?OpuFY;?b=!`x{e5qb`A~j-PAam~_O$L$w3OWx4ioZC_BIzN4=x@&P&BleWKD5z z@%QIwl)^ON>U;#gb-A|-umNPcl z+0UVCa)O4dG)>#&&?KB~na|F>IsroZI$S+d1t|_!kZX4J*Qk0HQjxFsYt=tnkCT(y z4+omUi3wyU1(WchBE|}=4B))1St%+i(eWc0Y^rsYD|mxuii#P>b6nXR_J#a!s%jQK zX|+Jh5FS1IFV;7em9p6ljlNkJp=g_BM2*g*o!wo=t;m(i8RZj(^v4wTyfc-rtH8;!Sh{Y9Pd zz9L&-ZPHgn+5&r(eX zxE|$sg<3iu2JeoK6Bm}YMbOaW{Tzbv3lypB6COLVg3wq|s&xCE%(I@ext?_mr}R)| zo}AW3_9#4D*HbyDoLArV$2xHC;HD z{jc+TlZZPge!3<_S2hc3!p*au+9+!Rr7UGK`|m1^vJ^Mn+q;LUmlyhYYQ<956_b){ zA;*)np&CG%=ELcOiz8KX*i(TgF~ix#LLY?}R(;oOV*0M%BOg0&QZnk3UM6t=yVck2 z$Gvod{>Q7Y^|5hN(6Zvlb9<371`e$-Sg%NA8QyjK);3x{WN^LrNV2sxi%_MhSv0a5 zMUyCcK$eOgD~Fg@1CVq3DeSV^hM^l4-ZUDPv9w84#e+5oq;gyz#+r%(!T%Ho7p00mKPy8B%O8& zsxd&9ZUwuch?`Z2c&pMxc*n&y8^23(l^$nyOi(v8 zYJKO-gne<11>ko;%+5*or8+!WSV|1X_8M_EYewb*nWPlc;Yb@(bMD@JE{P;&uLP`V z)Qh?13V-3nw#KBAbNYO?Qct+dRtWCist(nurE*`9=zlR#=ju7*8mhOu**BF^J^!s8 zeWZIv*Dt1_l%_IH$(Jr9LXm>ijwlt^o8<% zsI##Z_cfSTVJp9c9pRwDJzHCMrGWwRi^YuO6T5pNa=dH@`jBIX(ZsSvzIsFfI4x-A zWA8uzV|i_Cl?LAX;ox@X%>ti?XXbnxNMlw2nEesa6Yv0VO;J2tF4IZ0F~4804drKfCV z5|Nbvv&EaEGy~}&boT=q+=;SKMPSI!hCR9e2!b?9-W`a&&))((B+s><@U(~POpeL zNYy0iYj&g?!ud0?69f@)CrX$px5UqLohr@jn7OBSdG{_B`cx@njz5xV@?beXCN)ew zk;~r;r>c9P*~Og#azv3AI78IlpRDB^I}dSfU>8L~dR^Apm%BrTti4r^?8&0e%45Kt!l;p}^`wVIgw+ZWg%52x3;MaBb@Mhd@P zS*L*c0*SoRUDkJtnaZ366N4^8ZHMMKE9Ex&rDNU{`D zA!71*?&VU4#%$AgSeGA3vC8&d8qaWK{PB`1<{K~>UEd%IQvyoas{8SmlTyXK^N=pt zI_^x_lpjxp-__km>}Lr?0=e5>E}d+4MpJutGy&Zq!^^P3PTeNp4sRPfN*9$y@jsXuuzJ4R`iwjIC>IiaT`8K}`{Dwd7) z+tE#BC{gn3fpTR{=U|gNpHsP#$R4E|B6rUKbb$rT{HKl;on*mH6od&ioOM4Nfvx*! z-E#-_!8~+nFF#?I+duL=2>vU@nR2N!+?kB-8?wsXoC)1DPd~m_X!e;EALLNBeY%`; z4x5}frZvDzkA#@#a~;kQxgK0#U+gfGo|v_K4|K~gfu^GzvaKx|1*{vr)WO+sT zp5vJ+ZXeDMEM-i}l2?xuEC==zv8?Q@-)LEHEf1z%Wt-&-58hfVsFle>9Rsu$cW>VM z+s)5Dy?5*1@7<-%GnUYY_dfZUYZ0XSTSe@fcklA&fm~X={o;;ZA`0v;+}3w)-Tmx~ zJAmPhbXLraiw8+IJu}k=$|>aqkF!$cl&&*@z_Z6JAXOW|9HQ_DCnW&jzeP^rgf8iX z{@}MU_2hP`O3OSP9A6v~UyNx+>p@v3G3l5k^Tpy=p6eDbFwP!$YncBy^>r2Ut*#5EPxXxj6*w@quS+1)|WVV;~+>mOwuiYv?+>iami)f*O;kkk*ZG*w>XwDzC$Dxu<{O%H!%xcof zX<`fgfW(4ps7baj>3sApt!Vkz#_Wq6a0)P{sYQXvzublO4cmKpDB3T=ePY+2u*p4~ z9m%%_S443>3&!>O&mnaP^Bj?6SL>p22(#e;tVX{|Uc$V>^kDeYG z`WjvdZy2xavyV8N*{t>WM~Wh2lw4uAH`l1dlFjEGRk>R;P3Z~iOjka9Zi-`>c+-|^ zp*QChW-7hFnqyu0D7CVOUX-D>QOTf>VM8Go#9bqufiejX*MFX%!fj3 z{DyMj9aC~r!JUp;`(UaJ0C8t@5B)XmvTew@^}FoE%Yv#>1K4}g-HffZHq^Mgn39>3 zAZw_U%*|3o>MQW9E=Uss7tb1UAEopI;t1@Q-^$(ZI=V57x@V7xC9lam=8_OSE$po= z#Z*c7H7`40C53K?*@Ucq@jSntP*4|3+(Fp3;wXo^JJgs{BMidnqz~m*ZA4jq+jjKl z9PtZ#DJ>Dp()BZp9s+iWiTnTAd$;X4k0amnUQbbkxVs71_|tdNuRtE^1Rd3o_)N+E$T=^+4JO@zBXN)tvx2=YTmezV|uWFV)Ha~A^dBlQ-y{lBSM02>d z5S7#xzPP%w^##4D!)0e1SUjWvaDY(~8rlHo#NJ45LF$k1z2@~WzP1wLn0fW7ikj%i zFAiwjr*H?OgMbDvbZvP1K+~UiJR`aS_now?rB^zf9R0X@X{hQ4$CGZq7yqCCyVL6O z{8lDTeT-rr3ZS%m*u>fo@d#m9@BnRQdh#rvkf8En^ZC)sFNr2rAx*>Bw>oo!t5;H* z!WCHgx;qJ7I*J&$^bfPe0X74QXTxL0Mp-S%t%qoj5p-y_)<{`!;N-Yoid#~3I z4>_|ue6$F{B{Hi2y50A=HB2!D4uyN>@W#0tXYf!6vL8+o>y`|osxatV^3xUeZ<4`e zyEpFJi5v^Y^v5Yd>;NoT0 zbHe^9lr=pC?5;KyFF7ZPlzLw8{6^K^bJ@eoFGXoMWq@k`bdNh0rZf&2JC~wk6+StU znNq;cN254Afb3th3NpAADrm(wC-#R<1&=&7Kqng46=+s4p=Ja}0I2%)T&~t)m8Z$o zmSq>g05r(stC_NuEWW+qq`bA)d$WFYwDlSvZV`6qc+gk~UL4Y)2|GzNqc0t~o+yGb z4cftrE)zyd+C8*w^V@?>^{VrVB2#$3-ka=i9ioed0t#7q6Miva3k60^j|$%nr=|(0 zcmF^~d_T*(Stq8e@!T@=+LSD5ad+R3*SBHL&^ui#48dyOz`h#2C6#0x+lg3L+c`mR8!z^Vbz%ho@4^=qFu0+Mk1eK3v1QckHGD?!>+$3Ho z`KdFQ&v7nelmVZ(PdCRT0X7KrPd5-^E8nP0il$V@q9ci))XMHLHOuE!oceQVvvKF! zWYaDo14qeUorwZF0aV9m5jRYy$wE_LcnT{iqik7$%xJRv{u+C{Fb>DtnfG{Q^k>}T zrK5lD@z}mb@$cK?+GH3sRlg4Il{&15x~>2li37yal1WcrM^Vtjj*Oi=vOqE2Z1ZYo zh#&B1XLxY*Y()`HTxf&w+DoRce1;Y%@5v&YS!%TlDAP1usX)c3oiGy25pF#yAu{63 zxy_`mdi_4OeGoOul{|&jYM-hheTCv;J=AV)d2QK?%(6T8G#X58bjB_nwAAdf5U2?S zCK|Y3y_fk_6wmNqt;;WDewv8$ZRgf*N9L)Hf#UJ3D~z-ZVrT~BGqSw$l?j;BSRQ?u zD$_8kugg*X7xTOp)X(5~<@3t(Y_JiP@UVY=ysukD4vx^I~XE zLQl%(7A9C;uuGu*5(7Kypz*jjxi;3Zpd)uBwAg>>7SJ3{RGq|Kf06j+u%f?>CThdn+0)%*wmcW4>Q+4Wp(8_DtfY=xOTR`etq8*ZX!XN*-P~< z6M;Z@sZTv(WOsOc;O@17YDK9FCo4i-_DL0$`U3lctW*jk8!+jcX4qkm>EznpCnA-v zvcRgN7%1^G_CG@~mPKDW-ev^~-PqRb*FR=_WG8)Z|94q^!p6#f%JO~(9nAZlI@&sHzinVn6*Z0B+CproB7cSTIch`~-NE;op$|Fp zMFflIkEv{v7 zGYTg!>+FJTZl4XW$zBWAV#IY6-XaJ^%irSP7h0%eWOIn8DYo9Ca@^W)v&F?pu|Ibn43(4x73HQOa&#W6F>v>nGE zPWz`nwq;m19i0}w*RbA9ossqNgRFp=fnhGCbe;%}5z|yyNlpGp$3dr=aC6`IDTU%J zm_UAL{ouu`zG#asF>|;-qYz3sv=jlQjEZHcG|0{-9!dc|1VbgbQeT%oiB-TxW`s7xEW3LASUB48`oe z?+i0ooV_Z5!Ygnl%t1v0$^m^9W-|}S!1$uwr*nnb*|1au3}GDYfZF1w5*TmO*}(Kl z&4z)aM_F_k`a)O-mspWT#9uTm_hRoa?tmg5E{9X9#ZfBGVQUQjTezY?PQ7B7QJLF= z)ekCJG2c^}mNTeHPuKOWw}52(ohWuSQJb!N+3oiJc}1K+OF z)9=07zi(I39KRk2$Re@Kv6=PfBZ8MLRWA9rgx$FYTJ2_TR8OpZ6V;>P=aIt^XrpHK zK@m#o;n%UQ!?l=@VY;*|AnbR&f0g9t_e%ta`DzI!KXZ_f!%i`);kQ__fcmR^DLpW4mfI}UKBhQ!q};r?N z!)3Qfjwxc7U98kEQ9;)aoIxN{(z6>(kSu2OPQDD;XI)@8Js5eEu47Q8qnOULLq7XE zsiS0H`T0pxh6GiUDw#odEG-%`ro)i?p`)qOR<`wI8Krr8nL?;_gb8wpLglhV5C5yl>t924$+7XOe zuWuy{?fC3WniPH4`MVNgGze3=$4gJUOmgbLj}cSxoUk?G%yV*6qAd0chMm`scQ##; zRp}ze-M)cgdH~lHL#hXb`fXv(Er9nOlcw!H!7^G9UH<;_IYo`To2J4!%I@Zt@)x?x zvGpDgnA5QW~pubfAWV3`emylak zvR!Z6fOQj`jS1v1wb@VFYT^O4^IU|yC)$xNjQ_p&J3XOMpo-+OC{?7p!B1I`sr_83 z+7wI0@tWHWE)YGiGz?v8cCC)9_s@hhpuEiei&wSBi7t7-NN z*_4x)tkUcz6g{wRTAsEJngdT5g9ij3!#ViPH{~nz$0xe}BSoJ;aBW~3?e%$V_dM5x z%UVi1`<_~z`?qC46Owp#A6wJfxV5Vt?o;N2p&aW80-ox-TGRZg?@ zxu=$W%Nq0)C4tPJ{?{JZQvzP|Wa{>BPOYxJgb^KWt(C1A9TVwWmfRA{mmRdzYK&(^ ze{GDdJ`o|x7_D|q2emSAwI~g=bQ~}piCQ{IC3#kb|CM}3ZW4+Cz3~&wI(Hq}QD%M8 zJ=BS!LmOCYexGU-%EOwI?7gQ7EC5-L=A}i1ngsQ>5k#DVt@w#O?Z{npcaO-`VrH{c zwn_@)+2e4HC~DBHpf5uJW_sCKQQppDBFZ=36U`|$O|1-z`AZP#MYheG5iMhdpsNJ8 zhZkB3DyJ#SU%-`BvOxsofnrU)roIKGcJxf80rSO>@jkYpwI?JX-0Fexb@kbagTA4aXCEoiHuwsHNS-fHw284K9E=$q@RDyv% zs7j^V;#(^ySCaMqsAB@5{px_h(3s(rsW8kY-;`4iEUUZ~@#wR4yO`}qBHDF3)urL( zi@7?O@5WRfHxkyDzGZAwLG1~{W6C^mFI!QKvE+X&UhLhzdG*pI;atl=r5#@?%nW&-Z!q(4`jg*q&YA1kWqVddj$%Hu70kS!%bK(9vZ zC;me2dfS_9?_1#Xgwk!msVFUeYUb=Dk0AkFtX<4m?8<{zEIB)SKgT%I|w>P?aj+`@- zMIxFnEX>;}fPoxp>eh$kQc1tg<Z?O1YjzCKO@Lhafyn1vZeopd>6j-q$+mrE)!OH zww$li$NtQK5$8Q%mgFx;bhTlo54%(jz+P*s8KO~}v-6PcQUR%(P`WCz`KttoL zWv*k>)94I-GbkV1zB7*&;Zx(mBjnh~$v13Ul7d9V2lH|8C8Wkwpey73;t0mja|!Ge zi+16Z*IN2C0UdF32FBQpX#`Sw17_}eVS1 zK>idG2kf!a#iD(sjLQ$O8kwfrqj2kC(AoBZWuCTEGs^@l$5LFk;R+hOy7mGJhBt8^ zh)|1b60WJPDLmNVNkEEvoDAnR=VV?S?L65*wnotlK35?%?Jo`+?C%I?o1w~(6-A=5 z&@?48*dSHdnI>=B?kqtWN;+c#BD=tLelJBLZ&UHwWK1;{i@ z%q(sM9ktRH&3Sam?;n}TeJ%ogJ{Sp9J8dN>J;3P^-tq$hK6osJ+gV`{PTn7;@-c_X zX@jRoLs@B+*VJia;sW*Y$Hr@fRVx}uT6At<(9$Tr`7IYD*?L;p8Zimm3f?`OI@xqJ zIZjQp9*xz#;jBIyL@yV8ZY0u^YAuNZjj%|q1n^Ppa&KMlMjepkk#{KQxk46Mh>C8# z#UEYJqx1F{9|h?XR+yrOG$cc^RCgE@8-UHbXZnJAIdOv1vwH_Ua>6tzW0`W`98oFP zA@i2zN{k|bcqCfN!j%V$sb^--I|ovps;gUPP4{FE~Ss}U!($dtt?y-~jWI`1FY(X3uoOhxywqKucH` z!rGGIqyxJ?hMnN10b)_O1iCctfl*}G@VqVGpj~R4ni>!5FgQ#VxW+jeK-e|B3k${{ z*lSsKG1X$B(a12<QO1y zt?qUz*~(B5XPwDEmhN+$hADCg-dWPdG=~uP?z}>-^^H&-Dww?I(d0c3&h~_ri85AD z1%}TK4xa7q*n$3VCBEf+y7FrLV!U#n)63pi%B@4?1m$(nif>ecYo6-$}fe87l~CMyQX`>_qg z<>u&Toa*g%a1#{TT2Pk zwx|PC5t(zWgfS#V7(S`a8gf|6xdktZOC;uaBvjRm!kb=(00H z&>TXqslbNnP30O6>*5I5RU$-E>#KbTzW{?x@fZtG7#TYV1N|r%z+R8&`<#KsYW3iZ zHDGJl2z_}Z%NmL4i(WZSNE^+uWAv{+{=&qbXI93ruC6@(qQ4NP4eHR?nO$pA5U?JE zs>x8pCaPYOh{=3LROPf{y!_djbn5aND>vG);!fab)Ut3X=*75)1}itn%V*C|W}MTk zQc_;(VrtijDTVD|LESOeT(Xl*=sj?jHA+&;N@i!E^ABq3n*wg;PiBCKaqAajwQJ-! z=V}G{Lwm-?UL*=znl;IqeIsYhMmde~2FVt(Cii6CQ^Wa^t5$n2_UXgxRWL(Mq<5PH zW_iUR{`niV%m3lVv+cA|2<$vQ^kJc-=?`P5b^ud4om(bB?VsXUSBpf#k`Zv^;+oCR zCZ$p~;o@*HqM?3J5fRMwQ3&T36_F{~AKYfGW2z+pi7%V=U4&Q3K}?fGZ4^I_tx7K@ zpYSC-)OJ)d6EFbEY5EjZ&@Gc%@k3|~V(v|-=)PMxkL`k}ULg!LYfbAdJIcFRLEA-# zW$bHqH0RUHrerBF} zTMyZ=Y=KdM^VUkam|ZQAsN6Va>AB8L*5MhYf z4rjOdyi0K$!fm#Ab%V4 zi2!U6QrE&63{7{)^!M$yiFN-yg_Sq#o)|}nq(9Z* z(^LU{gIYPREu$URaFl7$QQEkjJnT{EBMmfIb1BGU^^KP7WPrF>HkNP30xYphOFA*_ zKU-RY(7h#u-ck)r%=CkDlZs@y?epjr5S$Hdz>-F;tf@$V>j;gwDH;=OQ8X;(?_U=i zLY7O?z!l1%k+CCxlF`%J=fIua=aB8VSSM#6N@m!|Mf%MxFgpD8mTCccxI?**g?V9p z^-$7Wp)#|_J2q&}m_Q`u>an9PI&sb=md9y&8$l-p-TZ9AieX*n9R45Io>gn6-U1PC zNHQzajGp2Zh^Zq(^U+f9?WHA!Fsw^~0$;l6I;u3ADk|8qKD^yysi`(@I|{92Ey*V>~P1A^NRqKWXQ6)`?NU=QVLFi8P_o%mB}+B`j5w1uMO2 z@gP@RWw^V=+e3cuo3y~=!G)N*yVyxQTr7||0^WU)zESe5Oc);E@0PQe(6P$u64g~=>U&2CvAbR@tb082^!j6I;vBE`Cy+!JaDcmO{#OkmwJmP zjeQF(EGVA3#m}{C4qluz^rr_0osks#2e~LJSq;4h*Gv->J}{DREMPhABj#h?*kcFgnfnG2k7?k)d>rR@H2+=vR*IQW4eiR63E5i1exr-y%sFB`o01~W zyX;r!*CK8sXE)eE&1DMA?>RO)JDhstg)$vu_X-Wcs7qaLqa$izsh~vMCr#@)FAy!;3B3`rE{@_uGFhLQ6~9 z)<-*Ru@8`B;J!+*0)Jpu6kAMzj*$_8U??{V)br85hd?^7cpQRJZKP0A*t(!&WXMw$ za4(?q$QHKwoU{k|NrmB%u2_bPbLzV<0xtcY?>0roD^X_9kbOLr_<`2x}_Dr zA$1Uga_}01E1wsVdk=A1df(fDb?lEPd)hJxNS^=`6E`a(cP$CJ-YMyX#9h;)7+ZbLLS{aq;EL!`0#HN__SlPw2;9vT^yz zvI9w})H4}#pR_lSMxVWh)bjEs#a#j9$?(vcSPu~hv_eY*UA_p3C?twD<4O`0fD#wM zp*q%`k9L8K2rm7Vrfno5L4vZY#C23_6`}WyIco|suJ0b$jg2u1*5Dy1el~QTN2OHV z{&&+Zq!>)VQ~5Ad4V%pq2eKSM!Xae7A$GN*EjB_poa{Zdn_}Jc>vYzMpHx(70QD%>FwAjPB`QvKU+i^KHK26p znsfn37jE6YQ+MUHbQYQ;M-c;dO4nlArYzd&XcgPVBc^HdglxNZev3n z!wM~t`GQyy5le~A&|8BtBpP6_Am#W6Ra<1H2m4&a^5%&Ku{PDkyTxHRfNSyTX0`mr zl@Qt1zq%f_Ef`1pXJ~4Uxo=a``%9Z`&UjM35*1`TB_iOA(?Z37l z3=Cyy7pFo0yY?@CeR**FyPJhgl>O`BwXZEte$wLtpt=YSzaK2m!lQ={XW@%)&F5wR zv8`#DmO-ISXpC~0JUZrN!kbzVBk+eliZ{Il?WTpb-hy$Mg`y`dv|FRI&lYCU(Vs!b z_Y3#`c=yVUbKfuYzqmbt<9>lgif$x^37hfjAoSIjF{cF|(7PBwGqA4@9-lO<-U5LC zv@dK^a!$XnQVz>RC@F`lC6@M9IkQ8Smin9!U*R+xRui3?pie1B6`N|7NPoRO`-^sLVNLN%rA5dxw4@LpOi8ms z#k!7UyG=k#r2bu(A4nz)-5irXPWFLEN?|cZ+!NKVu=|kg2zT^EoF5#t0mJcMwhOt) zM8JM8qRuv+(8AHBcxoSW8^u$u)6__05{%nz;(Q-r)y8tGBD`gI{RaykS_--jP>sa8#@!>p2Px! zC80rDPQlD7QkppDXwvQgN2xbQ1!gQ#OHf~>a{H-IrjNYhJI+U%iyjwi6EpHz08vpi zj73)$0f#diC$IFL+Q^T&(mgfkO?j;*TVsy98WBpK^l6PtrvJLm?M%|C;4zSMGzpXg z<>R1G+z5of@79M@^h<0eS=%s|AhNb|a4mb6IG!@&J+0^PC1+Jd!HV~u6Q->cDo0cq zi;$br^;Ay>W~xfIX&9IE&8~-$i8rwNk}lR_my}@76|T{lP9D9qx@u{q$$afPg9I97 z5T(6jq8|#3RrdVotd+$R*2e*X51HV5i-JGkf_ia#46&1_EU-7{^eDEzZ@g2} zdBGnu&nnawK-?_ocE(s~>!mmYdsp&SHg+(*IhcGl~0SPvi0-(u^sNid`Fndx9;D&hkhw|B*ZW?+7EJHR*aXL(l*&~Xa+P~;HS~~rR zGubnFJT)RQd9ff6A*X<6xafEfx(Q5=c{q=Toy*)l4@T|by?~es2L8#Rs@A~%JrU5x zB*dHEx2|reR_Za9xWB9nn9m>@Xo(edY&RWhB_*Uw9tvVd(L`8Xyw--HNoi%yjlG(! z8T-tbY~R)?xY2hWTAMX$7UTq4Oa_ou6DuxR+L*A`fSF_jLI?uQC*XHt)?fIV>ht6Cf2=5AEam*dTf>{R^?ZGImvkk>6nlSf4a3hZPFVC zjxi{rtN2yn=2weYUEh+VIp9e4Jxv$4_q~T$d?`Ulq1*}K`D~WZQVTkp8+FHyv6?gh z8(LZP&%J{aV3bcKBIKq8+*3>QbUsvPqar@@xdVvzK9U~hk^>I28Qi&QXa_@!<&PzI zzk~-FNGa;w|C*TmAGXO6d~r|ckOwn^|3rD8X81}K&nArsyKYa^E-1~=a1 znwbX(3<*fk7#**}<89%(1Ox_O?qXw-0AQCT#W$?dds;WanR0WykD`h1Ro7cudbx39 zNwT08l>IY{!bUdwSGW5lx0rBh`w?FD2=MQ}?{0Z~J^i@?n7pw*`@ z)l4Nl9h@>UL`lwf>#}2wk?+cI>Kq!iATwSmQEz7-k}i}ujwj23p{ipQG3m^&8{{}m z^tZ=bL`Hy)f9@~i5NV?g9%mr9b1c-zdb5S)#HEcgW7%7Kh`#Lnc>W+!1|3gDDxjQO z?jIrb|GL(>li<~kPG!Qy(aZgP7tB%PqbXS7sI;}z&QLv%-qjv;Kwz&2uWTg1m-v!P z04Z-pI{s2UO7-dDLc~8PXomB!Eu5ciZNW`bPJLLlz$hX?U!UhZgeX#nY>s!v`!|n{ zxHa8s!n~L?HB9>(o@R618GYx1WRrE8as)&}CUCNSN`T#z0Usu0&j-*e=Kl#ccUZS{%5Mpu1Q$;>Z;nBP40v{dtP4K>oPq)snu#w}{(j`7z z`@9lC`o^-%{W{)RAFkiKyLt29Ha9qA z`l2c(Pd_R&WS3*td*u8fW>Q;NV9IdykWCCqJbF2+^I+a1(Q*Qq5(l|zHb$9eLwzklcT z$a0ExFjjJc%E)<4w$(X%vEh#+;rI-T3jcr?po^@#TPmr=(^e~6lSMlCUde{cDVjJD zpNmX4C%B|i?OYpA&;Rkf88ug34IPC%R!cNqI}tEUeG!cWMVrb*PxojSRb|J7kLZW| zK2A&?>)Jw)ytFhm^ziN`X!2Wa;Tx(MEJ^KH!Xe?Hm)twLv>5g8D#Kt>x)%~n9I?U% z=QGndvcP?#SxI)gI564hAj`2?T2pS9Qe-s2HWL!dXR9?&n3ybuxE|~GzK_UD&*e$; zf^r-|$ApystzyNAVd14^P^^bzF@WmWm8)(F6Sz*i7~V%Lj0C`__n-gqzxPIOT$_F8 ze^w(w#{N1A6r@z)V$mY*ZCl}DAW1~vGdGP-YimD>#M#mQ;P6(X*0i_$EX|B8H$C)e z1wQDY%P1%AX)?{{a#1>z0w1Nu%j|tLHvP}`s&ulZBPzKj zKC=JH{bEZtyiaWHzHXMnBq8DH~ON2!gHYs6bM^KXN1QZN7kV|o7C-B(k=FWDm1ONVC{qT{0e;l0r4pvBjI&!`xWkk;Jy6P1Jgkxs)m?OUz=W_w?Js3yI+0!nxjens+X3_$-7)KyV6kGLud{z+T0yB|~u z@GH<*1MSzRwRx7xe+Z&$W}O>!4rgmx1#bR9h%ip-?a=>=8Qkyl43uN|IsEPSdHwpY z$liXx@ed_C3!dgNw=(~K5VFd()L8$E#W&u(24%%xt*q{ zXj90}N!!Mn^B=9md_{OOE!Jkzk<+(XnQ~TCGN*o)y0Fhi39>oEk>^}ZGZ$!MI5ZE7 zJX&bKN^6%7A-?%=ZM4#Qqr>M2=IyK#HPSAm57ZRu$0zQ^Uwrh@IYy@sr;^&^D6!W) z42cG&S={uebH?;5ti<)nFA|+~W&rwotpkN_ex?-tyDdXIq+ekb>Z#)wZijk6Ija&= zSMWW%;pd;!{%)(#4(V4|g+{>+XuohZ8i0SVz40rYX*$c3%1q$$8AX1fHg-( zo@BE8r`NF6C;z|eH8d*z0H;_`$}iM=DwMM^_S49<)g}H(t^afTxPKRkV%)_+oKbMIi1O{4aPjuHR#KIo7iRNFxN<-B&TD*8_{{wEpFA>&_mya?(& z>)9gr&OCj#(b@k=s{el=)fJTtidc_rPrk(Ps*GTMO0XNTZi*xeLW`gr8Z;IiZ&4rA zM&Z2;81Ywxm=W=#YOb9)@FuWrheXGJCBTp{Jk`diA#NJk?p?)!Un78$#6qP|4XjPZ zwK3p_PiV1wU9T2w>_2Qxepu*T@J|;X@o|aA?1uRjH;{ccXvWbA_R}Re_A}KPX!yY< zy0d*!f9AHV6Dl2647R;`>+J2MZmr8x=6F({u_o{BP=SIr;V>XGYYi!`Znl%rQt#Zk zbCw)r!NRI^o+$+c;ZeS0{3Fq#q+>*KEUigUSB`pKDojoNxRds)a_#Q;|?Q$~079PTUDnvM`<#5cMf#61^Eo4L#LxAmDcv772{| z6T4_-LbVAbj^kn3Rq3bcy$XEbUr|HqcJ=)>6SdL9sa7EJJNNby3Mc z6b4e%a$tix2T!R7MYfWa0$BMdcLmw|z8v=>K_N2u{&|%NxoyX_JOx^{8Z& zZ`eUNPCPomm2|B>Vp1m@cs6M#TDv>?K~M& zPB4f*DNyy}n1pfy3%SVZ4V8|FFFabOMB*`5(evoxqs51p9;qf_{5(GRi5SUiy_K)^ z%gT5tTn)|wufoV_0;Wv);p!tFLT$#xw-1i)Q_Ot))AUoT$){ob`{2&O-`>93dHiC0 z{C01$IQa6~!}aAqKU!R=pFBR;e!X%0n#}EMrIz$i4|{|j=V0ss+0S@q2(6{8FxmzKI#ARRTDcxm>M;>hQ;@px$iMjwt4o4PNkzGR)=l+{5d zHAv$V`xM+JYt$-EHEI8((3Q$l4^}VsE-g~5=DR~Uh6#v8#KOFmmr8K7KtHBl(u>+x z=t$H|h!I*=N(-hPeEXcC5Bh(!RlUb`X{43(r%=Sw^?lj<*)CXc`by zKIn9Pq1WFmENZHCnQgQ9jMcg*kEXs6UC;Eeo}6u}af*icdm3e z=@3EN?iyld!%{E?g}jE2wmQc$DHVDv4EK~z%iznGzS1m!Ep*7gq)XBe*JC28jTzEp zc=&Sid_$S-exU>DU?mAK?v+)VgWcQ}b%=HQmi+*6q8q`Z6u0G!N_?fDQUMKe%c`fp z#}|>TXXPnXjulT<4)Bvz52dz}m3r5dEVrGFPM(JqMQt!yNA`YXa9>z$&dv5R zGe;pDGDV0y@j95JbEYb5hC|v)A z>+QL8W%-Y*mp+evV{O*7SyKGudO_b)k1BPDNq0wOPfQRM!Bo4v&~~{sxyjZ(UTgGN z{oQgMzPx?&w^a$C@ST;x=)2@4{U7lUexJU449;}*421QHAb~AbN6eebRs@3E;~-(x zt5lw2Oq@936~J(}4L7ISo!(aMS&M7JT_{xMD@DT-rU`Tg%>@* zBdBirRiA@C4Kh_%y^wn$3hKh;^FDXYAtGZz_bEapxG9-91SB&kCz&~LvU$<*o=gtc zdi;m-FF{PLq+07pti&CEND~n%i*nNF#yI-&D7wgszRB?=v#&SM#?L60; z*>l^rC4J`$VT|fmOQwQ*l5(7A{E1~KXC2Q6ehVaT=4qzT&jXM?V5F)% zs?ytf*nXj%LE-UZE+?SGeWG*}MQ*chk;Q}U_Xd2eNtB>4E5$}-gX8Cv0*@P?^FBHC zbQxv^7h(lekuJI~2O8Ktr`;Vc3beM8qz2|Ck5n8QlYxfEwtmwj*?*^X#Hx(2my>K%%Lr>#>8YQV#?{=FK|$p z@$uH~eJ}hT^8&Sc*xRC(ETWuM&%*F!m@x^e_t*^qx#LXSkRwy5>ilM0-WZ^nhBo8T z{Nr+huN8qyvEaXE@r};;x$^KRx2brz{} zl2uEdX?OWOp5!L`#g3wVOIS8?KvU4ZFa=lzY#Xgv3Pic6({q>-Udk zVtwRWDf`)LLWdM$iX}@6+oRp}Bz8jaO|wJ}YfVp7C5$PQ{mJor!LLj_tpK&#!?5bY z{9HM@h+F8$bFRn%qYXvl7$>Pqg#m;u?UfOlV4Y^u+XqF^rc{k(KHIE{IDnW>@b=vWLdsVJmaF#PV`ZT9_`A8?w#!E8L@?zb^bK+CO}0w6C&&POU@f6Xigz zLC5?$4VwO$stwt>UBSu}pR~7JjyySRha;*ucN))B|4|gEqby>Hp`6dwwix*>WS>q{ zQ($>kUkxsq)=RE(v>c>0R&5<#&rsH6iOktXpHlaHocyKQ<}y(BLDDQ3WsO z|H?HND)8#FOUx8ghB`RQqC%&ufxW=^)K`KW+H*nfd1NAE_FJegj!2R6ZO5{?+UYHZ`pxcSrJpg;Kc zx8Hw1Su`7p-8yvZ;K)23hfPGXoDls1?P&Y|(ZhPnSg_u7;OX<9GmHjEEm2bk zTc3qgiavaDAHWIkP*ZO=_h{ifbL7C;_#n5JF6-hjFQ^*qP<8vL3|dm_D$@QD*r1QD zj_H2{6AZ-9XK=nmzlgnI$i~m=%t;JP%7%Era{Rvk?ECN6`YqcE?$QvXq`u*)-gU-tUf`aQ0NUAk5rd(Jqx8VAJz z@qo4Up%_K>_wewM7=x{no=^9|y9Hw`MYgK>!lNnp!9g{q_;rW{@96bL^t;Z5COL*i zuhhQJPh;lY9Uj{++f?R~Y$Y_#v*{+toIiwHEJ)(CEosq9atlbT@@d}kU}e=z3Bw4$ z<)c*Z#G;A~VgG>B`V%kJ8v8lni%&@t(S5I2DNLJC?dNT@~^_xl}2T&bVYUkZ#yr zyMe%h$2kJ$Iwx|s0L#`arcu$9opXtnuiOsNy=2%BObXVkJ4gGb6SD z$1r9QTnF6ZH^)=)cRu#m5cBZ(>1*u8`*#oSQMQ=k);ef}J(7zRVk%Rl9^0YWLc;#c zv2xRA{&P>1ZeTs{{}i+Jw+wN2=jg+ZnV4Up8ChZZXBw37VknhNz>u`VH3XPMZ@D}CeN7GuESutJo=ljqrc?=ky?D>os%h#1wm*Xl<`-o7mBrFBy`U>ZrYXnU6@ z>e%qjTs7995sPEgAylL!E`__sF=U>V;ya-Bwv~HMmlB4Q11^HkOBw^mV);x2jZN+r zr9;v}v(t;*Xt`l@KZINpadV9P7(|{S?sKcPBPO&!h23#66gaU>FWS)SxQE`5Dq-gI zSjvUG@cmR3?G<*E%9acVu?=ko4+BGTZFq*y%}YbHoNzlYn#)GTN*BDgaNP!Fxi zHA4Ds7~!B}aB1x>?kZIvsmLl{R@d6Y@&1noFLd4N?(1uEMLv=Nfn6zCH!`0;&fgbf zO6R&(jvpc&zmPgdc;;`lb_>>`jJ*SP)JTZC_oI@?u#sVAZu|JWF8+Gm^MBs?zAnft zV;>HOOU(Jc>P+OV*0{}zk5#+f$R~F~L2?7jcP<5RVchQFi(gJ4mf}au4aiQz)q``1 zVuYJefb#$aqBeMl?K4Yz!iRX9XlI&78>`w{Y{rU_7#-?y^aF~xejs-4yl6;xycG`7*uQxwk>|H70 z72X;u=_F@V*=Fch&jqC?<(V*Ug zs>MdplSU+~-eAi9)4(y4`cCuB9Qn`Zxk{-ZYJA~jnHr&mKV=7#hk=(NrskY{IhG1o z5PUch%L**^nhoxIy3tXCR2fx#KBpJxq4b!eufr;@lsA!&3%J--0oA`|sNUHeO{cBt zKcnb;?BXzYcK$oZIM1ioO~%5TddFK6^peTs;K|rZQroV#?H$8HCF#UK zxOxY+5KWSIls=36GHCi%>yN}J+^sZCv2)*f985ET#*^SZ=ogs#ZD6^?RRt?xo4P&4 z^!y+!@gqqNlpPPQv3aAs__fupj`Ut5Ql!PG%u~esSRiB>t$dEsP8vxU+P_m>=p-z5 z*=RAHE{n@K;yaFCTgrts7Gm+6gnggZhjZyYJy-o4V`~b9IdZsp4}>J(>JIC0k136- z9dg;ZX}<{Cj(|LkKM#BHCbovU%w(7qU2MhmS0=1pPIP{T+*}EF-I>@xc~C&m?%rx*GCFUDA#9ElGlP7GER)E+lg*b(1j6JXjo5(Tp?0(jBy0;EH}ws zh!A24I7{zXhitH`NS;6t#1}GN{D!>EKidZr1 z>pDAhinxW<6%zi|2!uPP!IU*7clkKvSg+wnIv8SOxbN7#%bJL-22l*VL7EF&3lOEg z@PcjMVa(vl?W5fXA=KhjyiS5 zix;_VN^RG^1M3mpR~zkd@uyTj#R~zEt7^HvPtZkCGshG^ z_Cl18*#sQytW|VvA%Z`J;9%6vy}4!O1UMEI?{Dc@Lu>XQr*qC9$Al>GU*#=c6ta#F z@E-FU8JYZd>-f3e1O+o}4Y^*zdN=~}!66~nychmJyzIywT=B;7VmyO!A02>i zJMg~3Z>=%QW&~#3Vb6Bh*m_DJbnnuIi#;-sINfa7@Ap{Ht=?}gT;%L@`~*x>QeK}c zs)W>mSFc{7USaat8Uk>Iv9L>!GAl~7vrB_i<$K*2(M_jEyE_{Yf^s5}-oB~V%>`%E zzuMO~dtY4ZeQpT5N-Xtip%riywBalUB>|#!d`+#4vgXFSY_%X{J8ubkuq0g<*<9!> zb1~ONY#aU{Wx2$SrW7R!W7Nqm#I(q*bi7Soo0>SICV~y`IF}Oxd|(mge4~4Zy?t-X zb~Jl_;pxG_f+;Les5Iyx85$Tl*_tFxTafK=u}8R`;J-RJLOmj~&TJd(26%M@&1if~$D ztL-1}60#gQ5M~Hsz10Dt&FO2byWWXZy~9H19)pZx5t9PV%5-F0gs!ahWPeO18u=sw z7h4I#>5~__-Q+2GjkcS%RzCU7<=1eF6SX z*K-}e%tEpE6XLXV8feUlQ-Vg?gRZnkY}|1+rp(t4_Ux%}JJ%bhX)1*tJ1TYsC7p`F)8 zI&~d!v6w!$On;MQ9cq>#%;jykH9!Ps`ZDbrAwKQn(Vk}wrT-Zd)Q;;M(uy3GunJvL zzZR1G$~9;VLvc+J0TU!5o4l@~-o+RDh%dR_Os6l1EBAM=_ZI5l!Xk)F@=|}_;G&YF zvBg>Pckiv^=k1i#nErb?+x1L+(U==mu=RQ-2D4vBTQ(t(`*bnXLj`0Lzc-OHwwp zm81r8s^8*ZOvawSt8@Mijgy}OKVq$-3x^-iAcd_xb}>0K()XE|d8TAzg(bYGqnh(u zfiK@`eIMi3Gbh0ox;34=-g|to8>?KDDu+;KFY?GXHt*7fw{gWwdqQga!rDS-SiijbLF#-|@dDLx9bex;nr50b2UJ(V408W=Ua921*6X6E-KOyP?T) zCfb3I##Tcr8Kax8F@fq=&;3qS9UL`i9Ui4=OOt&C+eNP1Ve$4&H#jh=`}HUyH_>`V zG7J_pO0*9B6NlqE?)ED^wL|bn^m!V@zFHE25fEw3__`lxJ9tc`$<3qP@5CG#KVF2V z${buy&dztIaZ?mxag?yRsmHacu1pPaGi2_;nI`#y_>Jy3ixP&(!ZHE}D{JRh2rlU_ zD#{~#irRZKF!j*8^{q40Aa>MDm;StV`0w9;Iol(Y@eU_gDHELq0R+{KO#lgy|K9z)Y`A z>`_`_vcVo{mPkLKadd(-j5kRfnS3HOdglnnWr4cTokBI?jr@_EV>pTEm@uz6AE zNe4l(kFSg$mMpClbJ6p6@YPKqFz#f!IVO{K&hAVJnmMWpI*JuKxt~BZ2?y_TxQNzb zKEx>>ld1_?%+2i+s9=(wF~j%FtjpSNPd51U-q9F7IH)tLY%WG<{)P=t*Ke9F`ld<- z*}P$0>tEt5v6qP_(V?sCJtLQ58>x@~A9>Tlqg1Q zCk<^Q$tP40W!e{-9PK~5j!Wyss3v5kAqXR#Y+4%NV^sTBa^@)IJa42lVN5qD+U8wV z7v$0EAV;gn`cnL+*&aO(3Z$1ReSzz(qx0+Kk=pmUEeyQz zYdNRh|v+Cs%fo!P<{ z>wmcUVDsvVw=UmbU18u!Ju4!g{G%ZyDK($e@pg43 z_9<9wb^G&wWIG1^}By`V{1%L2jOn&YbDYfDlUrFv+Rf^&W z;<3Hy1PU&pKBR_{IZEjh663|oVI0fhV=7DhST(OS15SdhlB7oc?9~*Q?3tJJ)G|z+`f)|+w8LgbgCrCHd-K5i|zRzIJcM= z9T49EHQF!)bJE9)98L*S(5xJ3mOM)=nBgDM&i|BD;nfZunl*Nz0kK4#4;2Jkaq7?#9le=1V08`<9~us1>(*vL!)d4-%J7X1`oHVd&0E`)U`Xe} zqSe6|D8$;2G4C~?OSt{`!i750>|G|-6&)rSmI&yo%FM6Ci z-f$B2yiXIgTt2Par-fZVNBd|^86?km{sE0^p()nEaF1}B_IT%Dpiu&HPR<@nx7eSzA_i6*48YU_Ll(bCx43^1A87D zujyAb;RnDjV;Y_x?~BPnBq%q@gOml*6nE&bvQxNx7j!WB)CzqUJ$db^e#+h^W$+`_ zNZFZsgly&zI`!}`lY{-KN4xl`jyDgcpJp}GsplTMIQ8)02x;^6^q8=ydqLHy*6{Z{ zKY!)n%BTr4(YU}e@;d+2MxR)kBd_$x0duH^=Kk^$>Q5et@5~~0OS(JzhD30kN-(8j zl;e+5dx4!JOkujjG4FP00l#695T=&jw#BuOK>(0ziVuKo#9kt=!9Mo$hE?@sr%};D z5w>Xkyf>YQG_DBWtMLK!v9*tN*Bq{P$S5ZPbIKx9=|Kk%0n`yr`^r4}vgwwt6LKC2 zOwD`()lRN0nC{BS3=NiKvLpG|rHL)|mX_|~xnEmKBpR0@=s;NHB*yl~v6zRu2oJ8O z4@$dmNFzRf4Bj}z$>+jJe^i#7c>em3 z;0-X#^tTU=fv(jxBe?jB76GkIKFwES#T!%bLx5ETOug`eKy_cx@NcRuejxJ#J)tx! zMM=hg^LlxM(cWu}E*n&HWcPB6bc*_Egz1{F3i$pJCl!`Jpri2*s{QD#fAEfIZZk|h z+0>uWX!IBR%ow!8Wig*Y8I(k$D}ij3j61LI*r{!BK6V2KAP1kD!1$rQF^C@70TrZ{ z1}3&SGZO^_d>!{AzN|NJ)vmd01Y4az|?Z$1xx1dkq2=k*btdplfXy;-N z+R4yOuy~iB;sVqAG>6t5P!80EFUdtaIBbRW2}T1pbXi^vaaw=VL9SU#HIew7VM5yO z)Fjegr{Ij0>c#lY!$pzrjP%x^G72pt4Zy=#bsCG_spEH(Mp4??plEycE0vONF`WEj%Omi1AG-!6hBat#1r9c>lAPaD1I%wMTqL6QqELQmscP zHyF10#(UqWxi;yHtPggjp?_t(BNoRV5FCQZE+nNrnL4CK&n6S>2r7~2^EO+MGI6o+ znO(t!xoC)%M;eSEim-jV?)FGvIo|roW)X$A+(s|GSHi|z|N1C@-n?l{aJ`3b16x06 zA`jOv4D&At`oY-gqaIY#d(?ZUttBXF!uP|{JKr03`6Q3Rf!;)bmIvl>Bz42S4^Hyt zR$z#19A-21m9-2D!$%CfSOqo6YYTzyg<>T1&%+LtW}5dJ3Fnxy?re?suOA=nCJgoc z{K^;L%q`?wyPIN8@7`Tq;jxBhKhegAv9mp|O$t`EPeY1--;UF*ZL&Tk@M*(kXR7S^ zYPjs!EOR0)S13kFhhe+f$KMNkWM`5X5uVE?+1MhZS!bRYEd1|5zo<_AMcoM}vvLcu z99v4cf<%Pjq*|1;<<8%-eVU3x_jD5Kg$^f$(55~pI*3nGwu4~d%*$cBi6jE@wUwW7 z>WSbQEzQ*K&Y^sq@;TbrmMKoHv=kX%IAvpyy@W1-B5#%@ya#4Xa!g9~#}@DK8Hjd> z6?&5z*=!f};aa91+J^OmMAOD~ca(9M2U99A&!Axo1N!E_Sj~=Zg}cAEt{q+d-4yPC z{~oP7T2&4K;W?Wm7AWcIK`4bt1Sb+$zAF?)N!TK`W{8O6OzafP;FMzqIx8d)ku6Ei zvyg*klnPO{S+=$tMo>9i2~J*O7Nm)f+3z69H*Tp+`cCVm=nK(jRcJ)bjSk~YFN*Lh z3|hO6`H;s-zA3}uZ$7q{vwTJ(NO2GGG0F%(Q?*^9NjXl$%xo5%5uAC{2?q=y$=srY zbWzEgVVM!uUe+rjT>Cp9#kyd1P}I+yY7RK0q~o&WO66D+lvPI*{>nfD2N-%7plmo& z(9iZ`ZI{AW!*^I0&FESUHq8YHt&;o}v>R@xKRlz6i%I~GmnJ5CsfvI;!uFc=mdb2f} zQk}g#i%eE#z_7SsN`&p9?2>2J8(B#wW7+jMGX(&E6FqNT8WRjyoRfje)SXkA+0kr` zb~k}0j7wfABLD+O`?w|%Ki+H8k2o?w1PQO489eS^LuD`px3^I7 zLaXhK-iYAW7VZ!{c=#L##oEH9g?FQ7R)(_R>`c%JQc)Ko@I-_gn{?wqqKW zP=o|}vGZ|^nI_g{x6P#mRzK~S3BP<{+jDfDPaN5XmH}HyYyal_n)~wKVPynYSvxog zAqkI47&CA~=?I*IAgd#M()vT=Te_4%4q)_Kg{#n=t+8F`l;Hg?8%^Cw(UzWy>akbE z0-TjRhF-{y`w{=pnQ1CJIf1l{K<6xVZ{ggX4_M(as?S^69Dt0VL2$9km0u{&OAJTb z5pD-Xkgk|HXGU6%nJyXIl%zN8%Irbxj*=muF%0$g3KP$GYd8BBIea)w6@9@EaWw4R z96lTB%;Tgjy0(C)0^YYs?~SiMT&K0Y~@?HxXQRN7j)vDN<3tEMp{>_Z&pYi2rW=VZ!k7kyEzEWFqY7*2|f;v zjfrza5Jv?a6Q5bmtqmpHZvxWt^5NT-7S4#udfCpkLLr{4CNC_+ramfbPJVArJxwDi zG{tRBcEG`bs&H156FcJ0_TpRl0pAwaDe(nL!^0#EE)=m4zd8p@fj8dIv1h!hb_T}~ zo4T1OL8mQXZ(vG-UIcHiVtdipr4OlXoxt@`u&l5bIu$gfQp{zBvxV+-%%X5YPW?1t zelj{nk+b7z)7h>FRP=s>)j_K%wGhSW!C|}7F%iV+tA2{y?bUJ(sp$RVk{z) zdWNh=xl?wT!P3<{&Qr)oSEvSLpgK-;PvitXQ7OpB2OFl$jWUPK(-cQHP^2;(cVeDE z0sCr>2{!DKt&U6H37+29pj;}2|#r~^|d_oJH$0uudO{o9rr=Kogy8N5Z`sFqp zTkg642>^HCrpSf>@cHWM^4GV&S-!LW;7=a{gv7oIM5FlR%H>NR0APK4Yp)C7)6ahM z`3C^_{Y!MnDt#2VylOF)Uu;-K$F+>ktPz=>P9X!f zKJ~`sTdUQF+x*%>ZT7$fMYUJc&(-6jFRmUx|Kcu+#nlyl(I5Av^ZH*ayib_cS}~nu zjBxK}l8Us`Z#y*KBU%e@_$=XqB9P%ljzBbu2;d{f88ABqnz zFs?pt-Z@&<_g|lgz~T9dzTVZxGv5j|rfr?H0yd8dV-5&I=;<(Qo~Hu2DNe52lsaL$ z=BFiYwGGvEHhTiFX~KYO{e9>Hz^9PLS`PB0mFM%b5Qv(6FpV_649E=)BLmdYn9=>- zA61Orq2r>ws<(_^ib%vWQx2)Tw5dw=V#YF>${@ksyNW6H9Yq)crcvyIcKKxNDFyjb z(P3{t-x*dEb&SwxZl^%WNrPnY51tH>>}Ien<9fA?0y@=@DyHrrezk3vv%paX<{G{u z)u=laA{EW76n$W^Z2xTjz?_*&+j!ZXFCgZR4pf&7!virrx^>4&sJN~ttuPLSE?Z%j zW&E9?o2SUwqq*@)f#4=gyD}nB=7wM!dVNj|H6UsXHLshOHMD!L4ZoaS{K3P1$hrO< z7gc?eIFHCW@TJuEiIPqqXB+@Bx1GTZ`7wexh4o!jb-Rug(-P$Y;es&&02bRix1_YU;IR!)eFqtlrYy-GbJ@-3%)&0b=t*%Z)ti7z5 zbv(7C=e&D5`2Yf&OOvKHy%)6&Pd+JQ!P&ztv&~0XdYnrNd$6Nk_wtCk6v;c}`J%$% zy3ELbV6Rehkl&grhiYKYh!D0rk@8FJp*#xdn`9{OAZw`MO>Qg{dP;Yf`xkxSc-s3| zLJTm}K(3ODh&b<)(*f)!I~+o`?XDf#_`pgp2Ht}7-9-nwIs7XhZBuvhT~jG>{dVgh z0&&}04jhUortIBYQKnH3?HIi7Clz+qee6-eC?+st%o`0X^-)n`*U$EI3HqFchP!9mUE@y%+cM&tmxAZ!otC zue9Yt+tQXK&9pAvQngDDa=KriHMmpWL>fq_2OtUC#d@>RI`?)*m4iBzSwalbh!^Xk zP){n=C2nz385QKvIgGG4lGPzvw+LmWm zVLC@SbxWrjr<1x;kX8ER78O&Jn#Wqx84Bl_HgrY1#r=x}l7`z?&d?`<6uUau#jW)3 z*4Bk()JKdrcfzcBq%a79Y%j%ivqu4^{lg;MrQm^G{9cUZ`X#Liqhfv|h%$bX9mH`dP723ZB2l*}PVY#MT^4AViupLL#+*(A z(gkr67xgnpfNSP#TrRh%xjb^PzChK|{oa0vCcv#|DEcG!hweC993kRF4)7%L>~C%I zYMjeKV|Rp^ zGur@Xx1guyZIB5d8xl}5CBoB4WOmstUhAYSU}7_8FeP@nS`}CbuGjvSdwb5Np`3>C zg5KH(Y{`~;bR>4tK;0P5)S300GA=nj5_kDQ`@X2zw)+1{4w31x_Lre4*GZVrS~Ydk z6CPigm~G{K`>xv`5nP~#8dODo3v?)U`qhWzG~sGGfgU3~IoGs^zia`hu!^y^c8{z)gAIP4l-nYuEeD z%_JK{39_>%X9))5KnmT#+arq21SMWPr)CGN8kpHU`8@0 zR3}Z+0Sm2Fty5umtNNxf#A{*EKRLEa%9wTeLeVhk(M!*^$I=l==9j47&TLJes9H}& zl2H^rI=MbICi<+&iHdk3%%Nn2bRc=BKzb?@Gl%vK6_C99(nb8&0o9P%M@UYAT@2m7)2*{BD%j0&-4;7YG3QU^=)sJ)GGjgY%2{y2w!7H}_xSGpi&n;D3wx zzAfL%!KN?1Xq{JxB6me6h?dX?-)-DDp(FolZa-@a`fQ4huTTcY&>o6CdRw4QAhk$Gs;8eh$Hc(Hno*zau_IzYXnTjf8l!R4j z&S4hUw?mGV`R?d)Fb56>QUALXPWGf~vN=80#;bcu8}7)e5;bXCls%(j=`1j zWb$%nvhvC2mn!w9fNdB@Ra)k_JbVKRgR{P$SqDjNU5)a@U|jj6LGpX4Aw^VNN;q~txJh*xH`k#K-_|qMy%s59(gYI;n{d2Nx zM%945zrMM7^TFMXhnF4=Q9N$Zssr7R=Ta<{H&?8b#Bk&Cg;_?GKHEL1mxe@QYwNpO z-;KkGX+CAEk)dLlR>zkO%@5Am>>rvj>) zpHdw4`z}MVn_fG&b(}$Gc3E$F)z8(Kk8#Y0erDIV6Fca2M$mF+(5*OAk3h6i zC2f4a265ZNF3b0%b4!x#^ai*6x7RDn`J1j!*}+z0EncT0-2c!2_5Z^Du96{2*m5O% z2CfXPRqNmHS#kf2`k(rkaT$J$-}l})#@?o;>VKxbjH2z!+flK(9ZTADd}G(=HEWyS zzDL)Nj_mr@KokQNj+slIKZFv`M$cX1dN<8<-qh8K>>uLzggW1$c_<-9-n-CbeG+!k ziyQ~5b7@}@p_swMspvbOs%y)#UU3Y}X!dvgU}0wn1_Q$4fN_79;w7@P5p^EF_Wtuf z{*R0Q`5*sh&u=@laAs2Bj;M)3anwR|U!8U$@Hshi{nbwebAbPsoDA%|oX3LSeE!=; zz+*J{bx#H!s&-SAqJuzYW7hf%s9&P}y4v~;KM*%0)hN*%^tCgJmdPnVb9);-6@9r2 z5)V|8_auN#eb}hlQ=cm1M*+3oas7I^?RV{y(sT0NzniA+TP?;j`9L*&3VrjG^i-%n ze~()Bm>^snc>}FwS%9_Gxtf_^wz~8@HLt*%!t7jt%Q?#5{I(gUw5P;>bGCVTx{f}p zsfs$!sMJQ&s?lD#@|#bFSFT)XhBa@tIy0SNF|J%Z8@PhJGc1O|e9!O-yfZCE86~Tq ztmO=v>_;Ct2F|F-wvB%sJ=P)4>a9jYKS%#_fS4xPo?ZRV-z0Hjsq}4p*VtLe`>NL! z{cn|kBX2nwzDNHnup7Nkzb5CCnXXaur29AOBZ_fR(xp3G~IPA*c;rH9$4|XWcAAu(O<>6(O zne6qK`@)<*y7H*^MTfcw`Ms3=HtS}qh?>z2E}KH0&m@^g7lG9~B5Q;l{^sD~T=P+m zLbFez`~!+ECGZ1fULCdB0E?Uh6_~-z5n1xoWeI#B6TPrUw|Y2(;BXQeb;O%0EtemS zul1C*-!*66_A!IIBMQg1Gw@%wexlO8B@FA~ExN9(irL`7F0cLk8p{{QV+O7gsW@ZY z0Phs6q`ltnH_XZyd;FX-P2(qCiB;Tj ze{x8kpR%Dnnu}*?dpgs7PqncA%7ZN3zw(XM;Qzr{#$-j9Sh4XNUVRRr>Vo6Q-V83p z4yFtk1TLjyQQ_x1ib-ivj7*=?q8MX?Ls~~I<%n!7zQuc|P_~uUZHdPTS08b+ISw0k zeNYM|mHlNtXx}Bth1#O;DMNgCAP%ugc2)fB8oT9LuJ`UUjkPwIes8Y>s7TQU6=bbj z`UU~61?vMQJ^7Xvft|7oNem^jtfl2u@CZt*bimgK48imx6_=Of=!@(pEJp| zfE%7Pl@4p0Gm*5ZPPdyoiMpA+c_AzlC2r>N^l6e!-659?eYLbT$}Y&xc0I<{Ukx{V z^rLy_dwr$V>in&si-pyNDNzNast7c@E+TGJgSmxb3)B$^GyPHzT7AcczuHQc4&G8S zv$JoFf7;pZjJ^;;;Ty=`$<8hDwm}P~aLz`)_8JCp3g!pr zd|CD^wIl8mrngoeK!!Z1o7gscJE*BwCqdnK`Lqj_2R5HjvwUEGfsMn(c)@6kmd7=9 zcZ&*&GAA<$@q#eXh@cZoV&v?0X=^UnKn$Cw;KW}`H}IXR*VlT>{G-1`?EWNKsGbJJ z@}d%}cfOddSFKK}0}*x9F(p8K?UAM8{|RV0W??8$?|}vllftV42nH$&e??YBdgESm&NyOHF*f6M-Oe5CY9fHXQrFP|4h9>Ro);C$VC; z|Hxsk^gdff31nd}*jz(fuz$M1?AT-g|66`z1E>TLn^PgNqbiP$4X$je2fy(n;}I(Ct3U4Sytqe|XqDQR3Ql398{pOeT}07Q zfq8k0Z*0BJEdkt5TDUoc-r&L|8G)()!d1F{yZ0pn`>DHI`0&!D_RFPx{0&RJ4uILO z*&Z#u%notDz6Js9RJi5%6Rqi|ER41noM)=Z6t`uHIgHKc~TT)%Vw&W7%7Nt4nf9$kXNwQEPI z?KAgP39Sc_iv?wOHy^A|^=40|JL9g@XE%SX4)3ntxjEaZKaGyXYHqA=-b}AG3;za$ zzvhQ9TyPsx@8`_0n|~7YbxM=V#+@u!IOyeMa72{T;~jpy$0{QGwmixV0#3+XK0Xm76z=?;;_TrSm)<-`^_nhCC-b~GDYHAIDw7RHG!5{5W{ ztFE^0H!

    zc`QNPd3KI*!-^_hB{~=F1Z0RGo@ki5)WZ!rMC+-fmxb`|X9d&o8{)yYO~$;qBJj zKfnFv!rNCD78eJ@rNtE=c0|~0Y(BVs_Z#)~@82(fi2?Tf3L}b3QlmDshw@rHfyFF~ zg6*%fL|^nGE|y#peK#`2DWeu1`2o=+Z(oYOaT$?{2l7(}c10BUmq!ecPJ z_`8TU9BNG+cAtYp8WjpTwjfAStTk#rJ_Cy^{P~m26wTfiS+tVQ6&~M!;W} zS1+MweqsN{MH~)PATOT^Qf5-=2`8ywe3PZTzXFrHt0c) z+M!+g?QaE}e;R0#4+3cXT&7r`bg0eCH^`ip^P~I4{14Q)({83&GxJMgrXn1bejfGb zjbWsxHhBKLZLxl5<^G)p+7xo;wPng39PjN3 zpo=OE?>WP4Ag(Td+7iZ`#u{R$&152oF1Tz}Obnh3b8hoFP_11f5d_<1LknA*rycQ@ z24i@_A$0V@FQRht`m5}0(yXvps(1qN&gTLV?VMwgK?_=)F>fJcNk3@wL zpg5p;tQ~KqWq-(eF~izf!3gAZ0G)eI#+N?d_ly;8ii(@Ju;@?T;U0<(#e1j|I(}*7 zF4YNROw?F~E8V%%qp%M(*`#*fQ5y>##aW9xSe&^m5G+K#=OPAMH zKV4h>ym$XjgD5i=2~#t@t!%Hn_P(Y%%Cs9t{BKvTtR(a<=%<{=Z%Cz{16>U7q8$fp zN}Y+!oe33~jDayD(m;^`Ij?3eTIiEHlw>)vtBS1?Vf(V20{slY=M34A2TOC7JsR zT(G9pWGkjF)z5G6BaXENLl&WRC|5Sly5Y_cb)G{++s1sxe8vvqX1}O6>6>Gujt~0% zC!pkobs2m8E8GrSd%ZUUt^Hff?oB}JJ3EM(4N&89jkC9dhZ(A;Qmj6S;-}{n;W) z@qz@OG5Td#x>|~4w~1evE@ig;_|I^y@<`_}{dMP#!QR^gs+QuZ(u0b;8A?()BEiJTv8l#3Qad2OC^j z#kGxo4-hlVk#f4sfpKb)*y)Wbj~Hn4Wmd~;{h)`7`K-`YP^J!cc`_K*d(t_HXWP_2%YU$zeNwkmq0{)N@Js^7S- zVfMBFA0fdK(ic`gxv~mR!Xzq{4VYI}RRc*D2c@^#9ROODZ@3wK|J9h-n!O#E_jqeR zIF&DTi@>sqq3YP*nF(ZNURlhFPB;C{&2KClz(7RcJAo*c`x&t)1acfa+s8ml(N@Zk zvkg{!7l|@7;dv3zXDzd8DS4F7+&|b~R+yj_t$g$5(&f)TzjFD?XP2+6u6{;5sCr#X zSzn@KYuO*j$+G(h#68=mZCtMB1)g;f&Cbl7-up9!y(3w$9nMb7^A@!=Bk&By2M=jJeV%EA8rb*C`hUjRYewdy>h7>UQg^S+_&;8|Lpz`RC>MF-`n@_IIs)smsxkkZf?0 zr|szpaL%dQu3fu!t$nHDi}>r8@z<}4;;#G!j?kYBX!SKN7aVPg&bZxw1X7v;=}Vu4 z!4Y-uK>JA-3i%WC(T&!;Wi#R>?s6W{Mep>|zR6T3A`s*%6ND}ZDSl-RlZ(uu|A zVK}4yW^bg#!Y44CYJXR6CecLrn!`k*!U-R*#*f`8F490#{PAxn!AS)uls~wI9xfLE zUDK~_zl@1;IZJeaPTzkn-oEh3Shg`arwU7yKE9KFj3K4p(pNLB_zU|s{RY-z^X^s4 zGR{Wsg|=|BLEjal5lY%Bz;87hlkQRGBBV=3E%J*-z;t>baRT*tyk z7N*>wO?P|qNwDkg=odmI{Z+?EcI^&zp{oOycNrNbbbV$% z$pcQyJ^!s%b(Pd|RTVLU#_LxW2FJ1~m$}=ev@& z<`t!CI^8;3ZF832j7jJwL585>9D-7I%XVY%m3CCv|^ff2HYZqAJrCWJ~aH4>WqWgI}TdiVJ@(EayiPGbvBFV1G$2_zy+&V);Ip7~V9d3cIXMu_4nDNg1?z8};HDJ3W=h*L@3KNX>|QvugC~fn-FWLG zU@G$Qan<21aCjo1q2$N47->%rDmk)-a*3J_F@uW~Ph*~_J%|8oMhW+|qh=$`dGKoZ|0`NWdr|IfAV9W$QXq>lEh;G@CE1F-jHL z%irSoMuw96v{5eJw&9g%Hjr8BSo^$G%cY)K*~{)LzrG9HplQfsG#^aY|gcwoPCr$Y_noer-;r^A!6 zPKP(_^mKaYUf{07*ZzY~@bSDZ8D-H!CZ!V-Q#X<5!O1cA#-uUQ$ zu{9=Y9<_c$D57N5Fq4Pu2e<~frxioThS0_JRc?Px?}r61y9vZvM1FnnMd-$^+~e7ZjSk zTK63Gow?)V^vM8885^(>kiF(VjMzy8JAl$8nN`is8?vG7#tBmgsC1TAY?3(Nd;Mb= zcZA{D%BFs8dn(%WsTgaM!znd7fhnvxA4t-wP{+sOh6XUu5zbyb|~g$J}_{EjZOWH~jZ#~9tCL{(|t z6nD4co1mT?P^n4=8u(_R{A|cb2|b`f};3rMqxo=Yk3U zt`D)4I$%%+Yq3bJwYvueXaAs!c$)ATfALS@FY#2f31Az){rMeSws-q;+s{J*`xsq$ z%oO^l`1XYAq~(h~3T;+@cqQp}ve9e1=azYDh~vkopBiakP*J{Qw%qlaPC*U(O6PbT zS48t}yrX`*b11K*vh?=5@*RDs?fCw)lM#|dnXrVbF*I+V+23^?Z}-;%foXa>4yrdQ z$Z!3ViSa?$Y`@1Kw1&CHVU5Z-oZaF$k_z<%FzZkPXS~m7LM8K!2*qqlbX1`loQMv| z_Lv~L7d@5bqSVjl>2fm~Q7d(Z*c2(b?vBIBy=VRfP8DHEiar}x;^e}~JdKslM>?gB z{KK(&NV$%MPf{eA9On?+erS1qh6$l34oj_ocg4j@uBd8 z)a{Zc$*&~rBRVU_MaMPWC9#jI(LcV2)sZyT;#m}6>bfX1NrF!u-?vgG&?)6RlR zpyx5IEyGt1aci0I4ZUlIO#PqKm@t?o@RBdhhfQv$TfWT(fj-e8Y654WYZ5M=%w;)O zZN(=so!4^8X7c42i&fS)_SMuX!(?34&C-fg=A2e_&Oc9OeGaEhxh`RB;XA5>B|Id< z&nujVA)%&SP+1_uv<{L4fhVEN<#ncPnQ#zuUg|kV`K|S)dxSIv3}Tg2R#ej`@XeRs5lL!JCC#-$BYcBfmIC9NA3;G|%&~ut zPzU5(2Li0~02G>&f__-9;fH>Y(NtJJ{Ba+F)i6Zzl48eL(Y8_?EkEetfBPqgIBrIY zRJI>qQ>_%*fD%dTClDI3n2s9&}*`$;g&Df!+^#HVyKPG*SQ)cFb+&;7oI~*JnDhoU~>6)x#q~SII1%PJPLuj1WYy(3E`h8qpyuJTzgfgcI?wa|n!h zoY`=^fplT-(C37!Wyvd3tIz-)!?Hmi&FTKoBI)(>GZ~uAc7^cJ}(ogpcIw-X`-JDq6U??c|X+}x8 zQU_4ah(%ilq)T&Q8Q+7qWJpaLz69fN|H4;nPeW2#SgB=dO3FIY6QHY)0$48sf!1r% z?6+qdmwgphUhfC7D!dwWvBH7JnZ}0U`oEoXF5|U@fAkM}=*#f|cCNLBJ9q9N?s)YU zo`Ak6eEcR-aEv-DeE2Qh08HQ-8wcUPGh)K@(!ft0M)?p|U2%9{GFxQPnwg(e8DvRw8 zcKo9p`Y4A)=-w*JpI~AdrPtV(>kegsri9;1UB`hu6vOfSWk3KbE^-`>&Y*m# zVV7>UD|^FXDzzHaJ%k8rdP&ZCS~vA&9CDCn^2Mz?ySGw0D?T9oh;_i_SM;xo>)NZV z3lW&?Z;+Sw+TGWb$fma+b_VM;(?=evDvw9$aPEO-_o>KHkqq<$Ezi%xUvJ<3Eyy>% zus(}%Gw}e0Bsv(Zgsv3DPI0eQz;yL$y(TvCJs>^5t=B@m>kA9D`zJkB=I*Vu?iVj3 zE$_YKt`}?2DX;8;%pdL#!G^Q2ShJn7m2}<8!i5nBH{E!{yvtZ9o|B;n8*6O`9(Txce_Z{Pzs?9z#!=no(UIpNwN#-jp`nC2GV`ZysoKi0o+ zl{zI*^ZF~fl@YiUU=S!af?v4#lq(fixkS6VH=n#p*o%<_y(SW%1CK=vnXK(p}YYcrSb-Hgz|SM zmsgadRNjydFMn%wVtIo)O63ji@bb6sOf2tsM?QXoJiPoZ^gkhA27wr%WnM5VVJ5@o z7uRsORRi_n-`Et{-1^DE<_=hlqouK`bgDC*KkZIkkq8q`u}C-;_$tUw{VShXKh#d0 z-x`c9W0+qWoPAusE*~h{nvF70MDSJk@IwXvVQfUtX!T<`p|hBUVQ_vxbJt_ANL>mu z!qsY(zZ2tYFd}EwGa@!`5L2|1ee&{eHn(gud*io6xbbzoA^^@(T>8w_8D@(9eL(sV z0LP0v%-1}xK1`+#-NpjP8A2`sgQzncwsyLy(}d`mrPQ{wb&3$%e2f9%z#>?>lKXVtX$Pa4ZEfN9T5t;0JzAlmUF3+52P6jkBz`_U>v0qZhi?|L;A#? zhv%`0q#2Mdu$$BrEd%s&vCv@eWFiqfgx6$=g-?g^rc|!KM*4);xWmB5M8-E$BD@s5 zQrd>lo<@DXS%>M;LLU&w^mwW{Z;=h4%^9cc?si|Zl z7{JKcpI`G95p2oYqIDvdTNg15XC)394PZjS9ry(aIHfeRK0kL32e8#vtL5UB;mqfuL1%TQ7%{|3T zReOE->Hy4P&I$Z8?vX8s#LIaCOXvreEIIn^txQ36#k;>0D9 zvRM#1(x~f5LJ7EWk}M)!a>7P!Ak|8$bP}Q8YC}l{3PMTX?{UobfexLQ7vc-~BYu*o zAy7Z`%X{Iwu}wvnPs#f-C^D!)IwKXxZ~3OArHv|4&v={N)q^b00Q10xuaP0hf71?g zJjv!A-}-pM6Y$%)Ffo0Gd%r=zdrk7x$d1j`AH$kMmO-vU%Nc* zIRwJT*dQ>Gx$9_nDV{V$D2kT+8d}@HpYnt|(4Z@>UHtn=A2%?;rYzFOgf@I`u*AF2 zLv8sIi-d#Ys71d`k*?Y2dLt&KF?RFUj1|F!Ebud8{S<1n?;!LT!)A~XzY||1$4(^^ zjK(rE+X+0cwKqru3%@?53V@`Llbgs4A@ndNop1K`AJS^njPzu~yb%T{a3K{t$jcnQ zTH64-o;p1q1F3-w!gZBxq+MdVXQH_9f2=Z0;Xap912e2RTf!Az22d|m(>ZOE0@T#bN$Vaarr(LC6IRD*KPc;w7$e9#c0 z(&JnHdPDB}9(48(gIEpqi5CF|s6LkQyMh<)Y^rY-Yr*6N=Q()UVq?NVxh10!4rukx zko_9@;@W+_JpgTO1*kG+g>hY0qlXCBr(nih463Hrg0NE-4?45-Wb3EDKiJSdN(__q z!1tA$lhkz%2XUsfCZjC`GAu-X1Dn}D$~LKi$>em$)bq1-nVao#eSx1)ITjsZ$F?qZ ztJgikp}(yqUoI41hnl?w{M0_INhLULXl=f&Al6KW)<9kpU8CjP7jAD=|)vArRm+-aJ2tK6LQ*EtD+sYgy{h;h8mxhdG&ryk6`>oKd2|R5W1B z(~r*|^F+Z1;5i5hPLa6y?RIc57aNnej^>~RQNF;-9kp0$E-9S!#yTlCR9VV%k?D=% zM;sX;SIu+UimU9iLZP4Tu8nloNNmD!P-~Q@%$y}8fQ!8C8Li^;o1fzzrvcox1r>vg zB+W}Aa@aq7Es|d(cOT}sqbQS|BBx01fx(?(UKn4hva#8uh+{W`lqAr#wz6`1dfM0@ zv|hstbAU71(Te`M;r|+ZUC6CrgPcS0b0o(#_Z{DZ~XIOZo`!>!? zqVUh1z}&GQwcd#Go!cByKtf_b0#8*Sd|NA4?jwgZ{u{&}n4sHUudye~$ZfzOu$1(8 zUGrRF|6A3$FJ$s@JvzSTCc+?9-F_FRRC`OS&D}&)jYQT7tNE6Ah|F2@Z87&NH-Sx& zv-ma=gIkTa(;Bsx*QRyz^Q4<%%zg95ya~jw#XJ0Y?Y{1)Y4x*`;tp!Gx+^QclUI&C zgQT9;>n{=#gnW8RfwY6Bqq!30(5D+i$YWrd#F9;@no$)HL$C|VNrVnD{xGq3CSjz^ zn@Kg%8A$x&sfH-|)m2_t%vC(0YPyf+Td1vYrVC&yHRV!l@D1V5e2YUg1O!k$DI!@q zlE8SJM<4hSOdgN=7I40rggAm6;}zz8$gAV9*t1ce(f4Uh0bM7J--%l4|8M8j#BzEu zu@L@yMZ`)2i>DJy`f%yQ5+@MJqEtYoQq}_B33r7kx+$DB#w}rT5z;Q#EhoGZCl?We z%vk?o1+wNk6TJsX8WhBgTcxtVt;xsG+#e7);s%bp=NXtlFA`SlPa$bJ3V!6yEUWH9^iBg-MTMOHMJ4mXo#Y_`lgZg+zXwyz@OpRk+WAgmiWh3 z4`%kE-n;qZ;INJbfa7DV19MZZCRBuXmOnh9Cl`tTi@GYGyj?2pAm=lZsmi$zoAJpZ z0verU7%3;^>QL zwL4cvHPk#K)uazos3yQU6$hau4^47SkynwQ%G+8w!3LJflua;ZHTYuY z;p590B;psd$U~{>&nXXG>J&kS{(<69i5a_;9^CnK24R@ZZxp4e&R24RnFRpY8tn1R z_s!Lv{}J>$*h@}Jf+gXo!DdhUgWrllcmDtuIvzW1FVf@ms}4O};ow0gzd zi)Q|E3@m*P)`&~xVN^Xc8yB~5GQJ{Ce*b>FD?g*?k&F~eV0z*E z9FyfE0l1QB@0bav*|w@vMz-tF9e7i?m9=CS-6m2q{>tRWyqvLU(t4-8ZWbK^06^;i zodU}poQw|69EE$J3L_FH#NOes)Wa3v!y!V9fsxS;#3Kz1Lb$&d*CgUE&Dzih1W419 zwaFbI4u~BNSX_hm8NhN6!*>6a#wG{*PUUzJFlVT-BUISw3B7qS{6jcn9CcQ{gPrJA z{|zg3H5f1Zhw$wzHaEg8?|@4K@Oo`|xuA!k2FTNE45vJA7lu2?U8g?2VW%)MhT;px z3b1&2StPs179is`78tHfF}eb=6K4&gG&g|jSl_+Q_1gJ){Fs257reKkpK9$Z2sazs zK`;gQpVOX%{eJt&V^{9YM#l_xb|AnV#&F}beOjg&b_(G0@Izo>0e}df3jO;1!wyIh zCI^ACC)m<~*2mc^>X#iq3Y z)J>scVfX^5+KKs42~-gt8>cnX$*)_aZp#yifhx`;o6}a} zBEap*Gf8w=c97X{>V=%aKVKN>dJP<|S~@cqVK;<~#K(S8MS19Ovz$L3l5yX4!-LfI z?agLu^6myVCAB6-I{9{jEzG(Bi>1@R*Y8s#(!$V?$5X()xOq8Xg^da{5Qz@%?SKjc zJ*ODSd;3qAUYZ-F{L*9`iX_{T3TeKAl$0xuPvA38)Ek?FTa3ILpMLsj@$%auL?GqwD*Lio#VemnekU?N zSXM+Em;a3KA#(7Tvm;k7#ltM(fKFBBJ|A!P2TA2ewSqkEc| z_Wt)Bpsm;Lt=OL?uahstDRCe7qUf&R{aCO0Z?*e>=UV`8!-{&4hDrKxMLU63Uc?^E zvkg#vmXVE1e;?dj(myRUllY&b1Me^OpZ&1C`Ru81aV6}u<-BqwV&7?VvDm*bD5tmo z>{#8m|IFGu(nI(DBcweiV`fQDs{E;?e3C+0grEt07hjoYZl%As-w`KgVFE0o6Bb7& zhodg=qZvd!X*5a97x$3xzSTtlG9ecGUDS1!LTY3wn@Dj;`r*kDyz0;HZ^37N<$D_b zn6K8K#&40JNb8P+U7;Ux{PUf>l2b=pQ{36h$%1+U)?%F-m(^0+Wb=Rn+jIaFYYCDl zv3-=N5Yq3{__&NtVtkMSGa+W??xUK8VvEJ2jqL}UkGCev>1XKtB_J#nsyWGWv3zC# zSa1J<8_OO5z=XNef=KUmiWEcY9tx758HvY<7CIHXh=JrZ$p)gc^JM->MOnr23g( zKakMNJo`W)hu6k+09ticrlY=gO{}rz6sh(l2|O0!hvq=+fI~m^r%1QCzr29EUA#J} zg$3!f|6PxT(!q-3bctMu>kmg+i_Hy%eSlMmBr$iL9xfrFK{i-B+<}bN+|GazHfnEi zLyOpF2}DcAp#)qQujQHz`ApF;G>+@3Z@ zQ@@9udczhlppioo zAqv?d%bSiu_@uYbTMXWTQ8G~OJ%4YS8U_Pk0f+8hAdQwLuHgq6g~i_$xbmv5V9emp9n*xF|sN!T}3kL zXlzfHXUWmI z(-xRZ@b-L*?C#wqMxWybjh~R7)&Oy#Hr7v8!DWP(=L^HSltj3@$Y+O@_xRr(e#l8k zS&2gt#usngC0YHn#a^vO?dmb0w%jAvkAa@>)m<(Zg>&I`OY;JEuTX^{R!PXWkZ@0HPqo1H{w2@Na30!3Q zZDhlNhaV0onx`YJ0!xM)+;tSQH27=K%=^bwYp!2MJT>SMUs&7E)5r3qdga9ry#~ip@}$u3f(;E14)KY>F}Y0O;p+&lb3q>=f=1*0q_k}Kj~dtc2vzb&MamhPpyZ?{pJ6*XYRGJaD+KUTPlC>s=XR=kTU>{l zB_l)vPB>hGXTW;M%>lmUVMwGrFJohd11QvFGd571AV%>yg-1+*feZ4q zGi1NvqBytVK19^TT&a@ul__u~r$W*PYhOI;ERES%H~3AlkHA;BQ!|BztN;>R`tv!&bf-V{T^A-<@r8p)k>$SP zg2bnX$c$TkajRc|7}nURwEQ;N+aT#pq~N+6fgSq;sj}NUttSvQ@_=hwwkWCC!K{f0q`=ya0=B5ep zfjk4Y2O|#?6LkZ{!X+L$2rF!C0LG%{vc?=NtHpTOWauUKR3(-;VV@n_-D^CLq6g>@ z$H8C|I9zM=4#P}1hL+G2@8PA5Jr?05V+~L^aBPLq1!4pxnRivDW1Rk6QDr0!p9?{drlf)BA ^*norf?J}xut zp=6hnq1_{c%+h{ zC^>SCf&>D*hf@LeO}SKA?i9|{ea@#Lj(tuETv~6~u)f9V0++MzOCC5Rl3a$Y!h*#vD{}}bb*oKYcli`7Xs=JFKIQD^-jv|MW zY$tn1_{kn{A5_c++cbU$#c;YscDPRQ;D^mMFuhR5M5z_RcPbw9V|T?w;N03deTwbP zyF>j1QImWWJE1+6_H`uEW%~@Bh55x=_G${iK8LuXQ~I&vU&g^`2Y0OTvGHcqKtJp| zmNzoouzhgO?OH1$P3Q?$?%DW)%7BrIsdUm4 zK+5R{B&m|eE}FKi7O1bzi86Vzqbiq~@{w$-(AiFiJ|>LiEScaq2}Y?0U}#f@V>yO} z29kzkgOF}@oBjma8p-&Ue7)ELtJvkhozN1E(&^KYw@y%k(WAH@3X3kKa zI)zcZH|c(n>Uk1~p|{XM3b!P0D)lru!blCto(s{7rl7zkD57NW#pwvZBLKy4Ub=4E z(VD}ZdW^z|lB~X(PL@{_DOMY3hr^LC0X=3h)iBnH7TEFcjgJj&=QpubG4?UayJ$xJ zp=>FywzelOK`0<8j^&SMuY8KxIbA?pL|mfwHP+zrYT5(l!A6SYbPvf3JAQ8_Fr^W0 z`22uW%8drzp_H>ZhHPeh@Ep1f(C=gc0dU>MxvUM+#`cX#vzCoIp6YOIO*lX+Mf|kB z7S8Qxf@0;pmewO;q_eFn%0{XjEk#=NP(Eo%(JFvr9MvmTRIqGBSs@-RC*}pcBNd7Y zf(p%EQEEc^rR~s8t>v`XVt!JaYXz&2N1HPEbm#GTb6O)eI|Csf@-o*5qx|rEb8CC^ z>4w@BY#D?i)D!dXA8kJ0{%7{F_P~JyhX;H|Nsxo&a*W6i;$S0vSCyRd^?k%E^e@5Q z=VJqcd7-BQ(9FyWO4ZrfA#JM66QK)o%EJ^Kcs0XZbdG$mBo z>Wl#AWc0SUmmK4(+87vGgwF=ySSB4JH9SuNoIJ}XK#B;)U#WfQ*C7l8s1 z*K&5Q0I(<*QEq+^BN_Q69!F6tGH>^hkHa`XCu53^!9jB-$(cy>rA6nIh^19vl}r?i zfmzWkn70e-iGT=s>mny(k8Dv)=HXDQGqY4(9utwUagGMrgh9EKND%FiSClT=lrj

    CMKDNBm!bfA^Q)+HvkUW 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πfq8=l;_5?uS3_bR(2oMVKafiQv0f9kJb)M>~^ zc_lU;I+#JUBj+J}7SxBPL9#>-2k2k$8o}zR$#N<6)ovkA>y{hu>3t5j9!zY!r`4K# z4?l^t8P?{ip8HMY@8@pFD3K45?Id#{F0fVY;gXc@YxgT)q2k_Xbf1*R@%$V&c}tv} zOa(m?@Gif)-3nCL?xlRi^VzGp&}ZX<-b{1ZxTxry9vcv7`=EaU7!zCn>|P%z$!)93d%|B$^qmMjA0M!JPUz&P{tuiS zXtLNpnSy=dctsNCLOm>! z9*op-478MRvv_MWI>_%^H+N?Xl|-s*n1r&K7>6!k|ZP_L=oG7JLBE$xWf$pWD5@>gHnT=fQ}8SQIPKf}M}Cr_5!?L`SF z1sBSG0VnWVH*eluzPY-5^9y9u#7=}<@wg*i^30GT6dAbvq#O*Ij1bx@wNr6kV!(^X zZNV)Xh=ZlkfZ*gk^u-<%Je%&#cn_++-eX-EGAc~8!1_31s4ZQ*{&8d=WCi_KbQn=z zlL_4hiABOGnOcVue*|i^ibtfm9}&e>{j^)w&8u?p2}{UQEt;&OX_X*>HR%i2aY+!^ zq<7Q>K#kXhfa>BzLXInvy z&{aGA8JCntl_QhygL0B1^V%*E=d7$82pKUd9WOz*SzxcQJmJQn0e6^pDeRHkwvJmq zE6QV7!zvz>JF<1_L>(VL5|pQ1M7r`+ZmDuM2E!&@#8sr=WrgT8-Fe{Es=0(B0^xN@!%D7TDDM|^1x(3p+jA4T_-!N%4`LXYEuDSwP$Z&;6=*l~T3Nv5|SPLg` zGbGT*rs}tDuHIfMaL>}MTe)W+RA4u^t1guy2V=Ow45&dqGJ=An4gEW^^Qxi;+?&IJ zUZ$pY{|AN>BHtWJaWi7i*Y1s<-!pW9AJ^nYQPW4Xu8Z&np;Apb%QZ=j3senZy%zNy zpj2Ie5A2R;IjeZkdSee(Z^7=JU=b_n0s8`=VeaF<3&4z?+Wo0O!`uxCRnw7ZBfy1& zvdB+nM;V0P8O)$hewW!^D^haLjvAm2;L`*z{!_t+40*_4hg7u9jydqu?{k%$`a`^j zpZh1zUIs*1buvj+)m2Q}Sb04bOamdLGkN?7{9i1&4x)SG@K+FI)<*tms4Bq>m7TJ{ z=P1e(JMAxW`wSFk2BQ7e>z^X#R?c7AB?rrc6hTQM>lk#m4|7F0@YLy=?Cv)E2w*+g z6+au>N)UqRkvzEYafsv1%AGH6CHFRZOaT4eM7;6npSu}Kr`4FEQ)BA1D;-o>&^KuL zc-_U?g|~vKgR-lhGRBnwKFL6GxaWeXroeKz3?-#w>}7d?23;8gOe!_!*v9az*#<|q zHg49Fk*qjA%*P$w-zW9CJW{H0u+G;flIAi7Da$jL>?^kZY=c&mi~BK9F1^y|5&jTK zL9DC3An%a=GdkoYwx(F(ht>f0%zFA6OkPxkK);12Px#+`~xj}M3_q_Gh_Uh+rcfMS^d9$hV+zEIE zP!^{^wvVesveNzsaOetftVwCqQrzm2U@RX}4m-UUh;@}1Rz=+(0>ZkXiWn;@|gylX1jH8%w1EsSAZQ;@E?8_5>gSW6eeT_uki zy3^RPC-JAzClx?foPtWki?vlB^k#><#_O2h(I%;5E-#z3-21uMq###%5=tdq#84zP z6RpVWwfHd1tszoy-^>uD*#WLNYY9?iwZ0?HC5Vd{zq39;Aa{^G!}bV8R8o}doiVO= zMYty7Tkni*U5ISGAFf5hUJj}?Bc|nP!Wth8(YhGV3TRdW0nLGBO$K@b{DGaVd>Bn3 zlvu-@ct{RtC5TTlk~zSv2=!F=t_<%?2D09HL?sw&mLXjPVZ~8J0Bif!?X^31v4zhz z&@hqJpU*jK6=M|jHt~tfy|m0t%lBecex^ZLK`n-UO0cRNuITVoC9*a4aTUY`pzHhZ z33nYKOAazU$hF)<{D|0B0(^xnp}|iS1)DXR5Zd1KXhMPU)Srywz9hu!4*vz~N%`?w2@b&^s(ZbA`mruzX$L@*J{MeEK7#e91;|ZNC2b!SQmy zva(tb~?*FtE&VvagV|k-iFdj*rG&zcQ?hpl2zCuZdf;(dBv@Ahb)|wSf?8LC zbcK2P2yY=bL}!3FjgRma5AgW+p9ydIQS?&Kk&l=bQu)k*Y5nPdtW+vzj#w6K2(@Gq zcE!yWs$r71Y9dmVeglB&0x$~i)lVn^pk{Z&f`Rh4d7Q8K{c``+GC-8&Gv3!BCp8Vf z84qzJ+(PtZ_E5(Zn_^oU7&u>~^VK z4~P6%xKR0+`qA0S<9;<>Fol1rIseb(T{UM9!`W<0(wzC9v&1waDwPR#EVOYV4K5o3 z`Vdiqmk0u(yE(Kf>E$jF1yXukraKi`XfhJSw;2+YrR*4og32j}%2-fR-=6^sqU(|5 z#lC$Z05p~{=yD;TEXL14ACL9>L{Ay~uR%TCb}2?s?!#QKk-it^6cR+N9OH+&Gmof$ z;@>iM`rrlyr|O??->N7UWBz`=bE`VyZ!B2xFX$2_r2Qa>kSbZHr?qhugdFhE{mIrt z0tsc=PCg(g6sGDUDD)8&D#h{rXM#f9QgIMm{Rj$4JZAY0zX~THlV%frx8?wa7^ydr z_GLG&KZkb{x7A6wki1(elI-ZnzlrZP9uNLUE`I0pEjmJY;=#<$Me_A@C}(B}Cq;0y zUWu5#QV556rZ8T{$szhLMA20sIFhXD{{^QV&upxoOm=jIKcIU!$xYmzNM5KT`G}Dl z1bM(D={2x9Ev&aqs{<8l=#IEtF^}piHC~f?hv-N2c_Oy?(QW9DO{ssSZbLfNY0O*o zdiz7%hO~2%r!Be-&DTFii9Wgwwc2SG{L2ZzyK2Db2Ba121js=)LjrE)mNcDI$!$nD zXEItOuQRwPJ&KK^MHe^@rPcj;&?01vTD=f0x*B((3q$L4WjkzCMqMtzj->GX;8BJe zi9+_|Nd%3U87hyLt3-&V;X!i;uernuu}xe9(^5{)-GY)T2ZK`QAbDR-0+k2F5ylZ9 z4)Ino$Fx2v$HY|vL6?97jaM;u6kJlpJV9`2vG06hNEejiy$Mh!86{fso$qocvZx8GX@9H^6m#r z{WwJ#M0eW5?Lb4jwgYMTaCyfvt{3egS)Xb_Qv$G<5f4$}u^+Q1@xD=fixl8!h>5cS zF5yOSTsXpePc;J=f5l~ECr7(THx^t7`X~Db$cK*He;j^Dnl0gMYxwxp(dcbT0i@d- zN}4C!@yrCMie&M^W_ndI?YHLnAfj{7KP5JU_IcY^flK0$=S=SXBON}7DCJs2GwHu$b_3KE{~H~NG96}fAGSEa9Tu)_vF`c&z-3xTDWsHe)_VTr_|zvO`ddwAslH}gE@4Y?4`l3X?4 z8u>O~adP$cIGf;*`daV7GIW#EZ1LENqzyXEUoX?I8ZWw4O5ZL^{f1q)bkxD+0Qxzv zq+78mm9or_58lUtp}(rm9Z+f1PN#Dr&&Nblv@Vr)&fMw$ty)=YeLC7ne;hkmA&aCzlS})CH!M@fDx**`b!7I8%QuMvGV)d5M zOS-}TBoV&yEQa~=&k}YokEn&))d`w<3^@7zGEX_${q@?|h;sDVu7-RnN1?U6Ls|H) z(h=29zZX)*R^g0^-eQYhuX&QXyLThrp3Yy{HXx(KHHgJu^7=<3S~@@us30Z}N+JE2 zeo=rJ6M@$pVr5H7@-6#k)*~I|k zas-dUR|GEsS)v3%RUme0K#xaAWZuLB~R#ycJ)E8{iMWB-yje$PMbnxgx%Q9aQWih}3REN)1Q2 z^zthGnN&)A1d$ve$LinX`a8ibt^%hI)zwrU;l9>aDhVK?a78Tcw(RYX4h(3|0ceoa zt~a*TF?aB6zsM;|-0f)m0X@$;+EG(4?4FKzhBw`0bmp_6?A3-GS z%{Opf`v@Xoo&9kj5;PX*2}lrHg&^VORl!HG>JNq;p-CR_DVOqpysc=hSYURewUw3q zet-Y4!+Yr#%AfvmI1<#?X&@4YHW5L>y9P&CjSCe9RHZ|m=A22&&FwzvDp(GYv8v}V z+jepLdKFOf4h@kG5q)3-_!mJTysl~}s=8VL4Fgb-JFMud=>(hsLeazEI0lnGpS_yD zHWrj(WCksPk^-?^yJq(}#OD*Ja+QFRO|WOE-#u%D%MX0YKQNS(HJhx+1d@3-6p2Hf zaQou8)GMJF5u%s~vHW>3rG#h!Tp1s{VJpf2lOdUj<9!cEiLPCkW^8(X)* znGmJj{u_3`YSe;BOqlZt{SVSF$xu(AsH5&yB3Km~;t19_j&}ovI!CSUoUo7-aX5o_ zwkE)kyqgRSk>u`8C!dmBxV5a^=IQ1#P$3=96kJGqZ!H2lx)O+}sN;s!22d$(sp^S0 z>K`v3c3yXIxndtQ?;!}3AQNCDrNLw@NzQ8@VI)Jla0GW9=A$ptM;M8hMvueK0c$zz z_x1taVv*Z2gS>&$oIyNfpb?j6j?@T>((CNQTl6(^VX#p;R zfuI-r%R_{Etk?33AajqEap>nFfax6?Q?iVKOexGHpHu-&q={Qq{jh~+DcBV0Isp+u zxl3|Bs;cOnAg8RNaqw%p15#c%pU_IM$QALK=wkqrP_?o)c{8c1GWvw+qXSc%{50Lc zy#7p6;HSt09~gitHJq&6tAwCRlJc*NKgCu3=Y^kSk}nB>dh_Ow0ibjYYlZxLHxO#j zYIpn7eUli+SIBq8?#XBb)JaYwdL+q>^q1)m^H$vke(T6~`8TY51CTG&z%46xMXiB~C9qJ)sZg_Ic@VsHsRM!B3 z(oQ@?udRQ$rOePH5OD^hVCfF zl=bFrzYllF9%i!H8Vp)z*_7JiG1ZuV;a@4TK{`J9G$F6A>NJs7{=rTYd;LQoK9#2l zGCYjayI4sV+M|oY?naZ)!d5ijdCp=*OAtf@?0uff<{J|{fyw9`uc+;VSsklblTF0DMz zq-Un79l#kzh`L@&r>ESRzmwb_qC3_XGFG_{-{RS9UBJ;L@a}n}cJX`huVKG8L9ZTD ztJ95X0+pKF*M_zkcSoJ01-R33dm$tS!AE(geA?jJoy3#m1=rP`&r+Dka7Yf`^?WxJ5Ij zzYZg}ERFg?))MW6^_z>0y~FO_Z**gyw_&WR+>S~Ydt0IxF-AY?T$6KTesDMYCE0LNlGhDW0hnDK#28@_Y}yNQaPiZ(TyWRTp%C zld+3(9$euNqRR-x^&>of`fMTZH)ORcIpfL?wt5|@;Al=3VF)9^gzaANN-274Qqfxz zik3BnKX~U3NhhUkA); zW@AeAmjZ6Z-FCavV;Eh(e@wx+pjcA+1PP3ex})?7T$4K40|L+X!6%THpSb&&0WjaT zhMjh3xxP0V9I9U#e`{Q)(KM!-Kk)t_w}w18vY5oeW@lks{sU#?kTU%)j{B z)ay0<39WNWQh#aCBh|gPNv8;I$KD8fwB&4naG23(uq4ea;l$eOzIxTc-`6c=l=fy9 z1A6BgsC%kTQAL-$tMAp2xRX<55ueDKhX_5URU3}Fhlc=;;E_)s5kZiSI_)l_3&movdm_}r08!aNADAEYyTdL3 zoF1G`PI{;yYk`r7{a%O4E=oLMO10K*|74VX1Rt^9Xt-AR4Zm$VjrET^0~{CrjUKfm zOIfG4{NvUN)3dGo+}T}u@WbZH!#I`=)`3=l71gi#v^J2kZP4$woyGJ3B;&{M)(cs- zcHS_OHTuXZna~J_s=+8dRJD;^-s>xT7*ZQ$o}N2Gi0_0-JH2*VWp#DdIh6)ZVvq9G z6AqYOrMkc7m`-|ooZNcnwbx6U@MZwe-5&w0F@|rnJ6He>c;)SN4#Q`DezIbyw|8=Q zXrn`;N@$}~Z+{UUYFxegK}EnkH|e@2jgtY%lyet)UHtcd80(DX4X+WRGLzx8_4TA2hf}}C{xo)};j#dQR-5vn}wOBmogTRn{Wcsl@p1!ZS_>Q*SFU(Nk|ORNV#BA_^A{m^SHH zmEGZ9Yk(r7p*J9XSSpaFt~-Lu*cp+Hki?Kk$Dm_%bqZ|8aO6BZWb@atS^R`dc|XY+ zu(eNDPfRIO(#Y(1{nqz@omgPtkf3^p(%#5DI_>I}rU>lopUOE|mbLB-yfH&tA|<8I zB(V~$Sm$Ica1!+E>j$mjQ=tROI2j_@^`o@^S`W4h$`jj~nIDq7p2#pAlM_-C9-0lK zsL2G>v@mav5vlsB+v^m|;7Ey+g!A6!#$B_hwELZ5Z(&s6W)DG;tO*KWtpqlbVz;&T z8@v+sAgbFCD3HZ~YmxW|ACn1#u)|O{*z5X&bORcV#T%tkNM9`lnJq(ni`@}MlXKLl z^2CmKt_=3Ek?d>A)K{aXcn_V5m`X1PPGKp{N_gI@qcBeUw9d zZY@X$$OiI@o(N=NR&+^=xx}QH)Rm^sIoI}Ec&^Ws1A;y&8^v#(vv&WqmkM)boDk_n z+Tkk^b(ot5et(Ev*C?wTwco?OXzfC#;U5I+5z~z(|FBmhpC@p8HtYJsE<){ ztwJTjXidtZJc?qmitAMCWYp(|sVle#(F$$NKTU?LXs(TvVmBFRx{~!f^xaum$*v-8 z02KqZC+pPLlUIQ$5JkOl-F5Afd|fQQrYObHLNxLqcZE7w45`K)@5!onhy9;%YZfFZ zcVJ8~uN~LM$(h|D|Mstfh%)8h3UfgU<+X(A`t~xENp9+DAR#eS{x)p8>%~o7&s=%P z8UZC>J-yVcK~KfdzJAJP|XRrRrWH9V{qHe)~x!r!$ zI%7L^>H0G66#?Y!%shs!z+Khr9??T zM(Tl-AmtKIlGm}A@DTfD?1d#)2>X#dausi+CC4N07K_iET1z?z7TCj|baBK7~c3tSKxh1#JTJwH4M#7&>ZE zUN@SQS5{I2GV5o$aI~aVs+#}UdiHdI@>}vPoDN#Y5ac7k>8~IKhsfl@WY|n>{06D3 zMf8j0gI>iK?f%K`VW;@t6F7hj8*nT^jYqBDBoe8kZD2UI7oe__UJKvHY9ImuADI6M z31O#e*%eq4X}S?)#iTfVs|uqk1{ie%a&qv11|}$n#X?P#!{j-C)!+!|Xjl{aQ4|EI z2paJ^|Jz`yXPg0g`}I{QJ$XT;F69;(PMhD{diLw12iqIJKHvEJ#{c;N9;?F?T#TZ5-0;M8TG@4IpRM@e-HJutQD* z83mhEf|Mk0(LRIoMt6@N#+v4X69Fs&J4H4vCpnJkQrAP`wVgqIa&wv%C>n=2162!J0)eWx;K?hHHk_UzXT5BPFt1qWw zzsjuoxvQgcMu4Pr{tEb$er)1SM5=#!9@ZrGF!~#=6+d?va7yd%fGMc739$qGM7RQQ zFau&cIDQ{>_YX$IJg|)jD2y{sTAvO>a+V30&9e$IBDh}jq6az3902=d?_uZ zweYlqkKhj12eCp!lua#T#%tkwQ(*zFljI<6U|feO(kTf`MG55d=bWdKNow%w&>5yt z+BV+U?mzAW)S-m2CULs6cS+^G!-cIYey`IWC56r138WBFkhZ=L@TktlY~}$Sl*}}F z^_m?d#;1OStahixb#n>CcCaxR)E7YC4zBvZacN=0ucT<6-+bFN7ar9e@LDS@4@A`^ zuuNBIXAoUV+H@u`Q&NrBqJ7W4zz_myvz;~j3X65Z6eUYBP7;0t20d-6Od2UY78ae2 zbP8fcp^CA+t<=37jj`!oSnz?H&_;E_)25^523~{ML01;4#|i?6f?H5aHh0`zy2BrxGwa%r^rf`Q7K{7qrGA9nU%Gw0j~hS+ zuRHYxR00-CyOVZCoA71)ObZD=p>ro4PDUU+Fd#j4>sX-^ISqX8%@p}Z8BJTz1TZ|O zDgQh-p&~SGy+MOsU)By#;s&qSxFniNL)A0|?1YAreoUlk>&-NpN*$L>Q=dRE2s)Uv zjS~_(j9pP9N6NJViX{ap6kJ^f!vY6Dqq;2&OfaB%N-te_VgyGSK9YC-0F?xEJ3ccO zu!#?y6n3rVrZDZ+0SHZF6f{SG2d5EkEy8;E6Hfv7Wc-gE7|Aw#nJCk6S(lWqIrJLo z6#1|RAQUrah!l*KtX*EDh&{vIRcUEluY&XOvO9bx?)!DtNG!73?vBocTogHK2>D4@ z5~}mnpqwwG1=~+CO>3{b-q_^^_WtAgPY)h%KHA*==dWAaJnQ}N{Mip1&$s_6Y=0iO z8vODI*!><eTO?feutL2Bf%sui*QpDzEay~Y6E2$;;(qq*xT=Z-EFV0 z-u&Y8&u`ycbYC7cvW$F>&_HnZ79UliM8jtXd02sHz-%j_7tnQlOk#g~(jCe{TjL*~ zFGzLF+-iAxPESwMd!y({JX|^L>@EYp7_RJ{3;;XgDllCARDGvZXPJ?ocBho+)?BQliGBt*kJXAl~>A5JVlwG=4vq4f#5xl10alYeXg=ESh{5{z?oMCmzI89 zR@p_>G?5cE1b+YY$0y%zJkRhDp>fpnWjTI#*l&$gMw-yG+QQ_pr=~}0A7;}c*@tV@ zojy0Fkx#nAr*e6M^}!_u2Ue|Lf`HT2OQY~41yiU1$s#{X{w=Ogr@Kfpes(wt_6xMC zvQDM6K&!K9RMv$m3Qkd|bZ{jt3X)MMK8FgGj})~o+EE}*RtBx%3y?JDC|sz0GwM<{ z=Rq?|=RH*3dYbQ#855EvAh))kJ$hD$^c?=yUtBA?H1p8!T?H(5*vI&PoWf~DZ=b-t zt?WQ})M(E`xb-HRlc4#j-Y1)XP6wUwi8^0dDJ*X?M-2$7A?mt^Ryq+WDD3HH4~hXML^)=J@>cio_DBU zxxcjgVT^KQ9a|cB0RiIseLcmEqCM1Lk@q>ynTH>LWQLL>Cn+|~4RaDR2wAJyL0)}uhS+%WU~@*6$U~T>u!Jf!SidyH zi4x5?Md-d=++>P{tk(b=Y6nWG9RAUdfr{O*NZ4=PuYkKzeSxoVYVW}!_+z(?Kr!K8 zZund#?y-=PGIv*uXF}NTh?EB(PG7>A)0S+3viRt^MWw)83T>yi11p;MZi<^H1J2M( z?+!i=OflJkB3RNQNK>X2EUY%ZTIO zuytB26rW+*F8sI9JYRj=Y>+EUbg|AWSZVr>4FUm=;+>>Zg=Xxv6EdHZF(>>fE3oQB z7_3G3MLH1YiNNkp0w0+|`><;2&6>231m$78!d%It1STd6h%@Rub$=IP@nYrinQ+y3561V`!{+Zk65{FVoI?G_G$ndV;C#@O>1b+G;wynqyha=sSgG&^e8=D=e+thr zNzOsnGWhU|H4B}I8c0*G-fjjC5|an`nx-FZ26`A;ZsDR0$(=y>LGgsK+-7N#R20 zMi%j{N8~duKGbQkn=Qruw`?iE=_4bKF)e>0t}dW559wAnp+`(0eJX`3z$M1X;&hBq z(!FpYIeRX4PAc`vL+tMPH}K#74dHr?c6R_|61hLuL`_#n((B_5>^eMcmoQz~ z#pD$gd%~__i-2g;|7<45?kUMsc{IT(9_C>tvZ<)PxBuKO5hxzC;l`IVK&jis9tG0F zdo_6x=aH-c7J@yP3y=-q9~ZdKq@>c}gQT6f=|aiDjsRdm{9(DiL-HH%6^?G)SuJa> z)SvW3s%K8-Q|J&B0bnoXIsUBY8mgGsrf0VG zHvR7zCpgQNt4(?hlH~g`bLD~$a7&sr5-wb-WGTPwT3ObvUz$E3)1~YH%CG`CRtubO zZHCmXulfM63LNu|edxKsxvt3fvk#Ggle#)O1P0JnWJ|tqr*9#h z#<}-ln{1n$Jv^JaMm^S9RoJ{d2a#=Rel65G=FL8>b%}W z1SO;!FTR71;&)<};oi=ui)O90yI12ris(2PP10tp_9or;w7vSmFZlfW!eX<5IOc*` zTx8C#HdCxLA;D@;_hdT7k;|lgLH}sjgj$2W1H|75TabJ(nNY-yTE96HoFb|Z{*>a| zPU*tmgJ^2)?SXej*<#eWxZLasG8lCS9QK{gK82pZ~lD{ErZ zhdmj1oDMzg)K3U3#e7$9aa14C1L-yNQ3Q3l_{MC)xABIN3v7X12wcniqj4O->W_Pn zOy;J{w|#*#)*%$jp{Or+tPVPLK~+W3NJQ$d=xgV7AxY7RkFT`m+F^Cp`=A zLW4BdHf8R17!v)Gd41w-l^>NPA;8WuMdU~#9XK`O0?|Fz6~ zP_QK5B@rFugxW{8Svm$&N5-G8yU32wA1nmVEiM1{r9e>f$Gw%(xJ09Y)(|_pUK{Id zn(U||n|?~9>THk9YzwbB_WBd;l>awN8b!bf>6Y->dW}PUir*ytlIS%0%+gXi9Fn(P zkvjjP#QC$N&G)`EEHAn@p3+4I$TfTUPlhrYpXZ&L3v`UblNV1q~2#IY3NhlJgK_fhg0AIGA&n86=^AFxc6YJH6L(w zYs6Nn8Y@p>InP#c?_iKHBrhEB6?@KKs?&8P_Yy=#lXD5s>+^HFx}o%Hj;iQnC{km* zDtUEbRgrpQy(+z$qpGo9#j0lOmEMn#l1QIi*oV?0mKw@eYx)YGwX(pzm9>SpGgs&Q zSzVpKt*S2L(NZEVp8QO_;^YnZb`RS{<6py?-CYtNChLNRFymrFFPP5^8}Z)gTRn}| z7x-S%t+`nDLKI6s5&g$NlG1jJMcBa^0IQ=$iMhwBa^9GsD*v>h+%U1K4OpH^Orpzn z#j771bt#ALd5wEkZLKCsNo}dd#_^{qCAGJCy11mmz#|iC=ApW>aG?K;1MKNupp#s759hV_L~uE2yG69#jB zc?1n&i;u+NlbN&9J{)C zk;q&)cy#wp4iQuWqX3(h9seEV&7Wh!T-Uk02~+u>szzysQdmu>yvX7HkvkVad%JQW1411qM#S9V8mOd{Kq(L2J8xYP;%+yKzTXS^2 zlmH6<1i3=qj25T(kFoxQ6hSv}-EqF3J}aoPL{hrP=s)$3^I#N@0elIUoKIx3A3l4E z2)L))zak*+N6&eJIbZpuPUYiwkvYG=Xn(eNedTW#yV}?_Gyt%~7Ep4nq0+3rPHLlu z?8H$*rQBz_RoE;cmgu}HE1{;zjuVk}e1>_DTdBSX{ z_1=8#FcQB!N=#N;dI^=<_pFnCOVnw1bRhN@wREfVgE%il+oM?xpJ^@)u?n)I--LA3zb;SWwsp_Oe63J2kE{C$}#SpBk$nC;I2k&qHvqP8Y-JkYrNAwDTpe| zx&;2(Y*)d*($W>cziGXY{T~AU<&MlmXgdqX-GBeP#T^HJ?|c10Z^+*V{oVd(xB$84 zf=_=MczncMj_2?ne2v_a%rFuQr-^%5W-4Ut7pl$y8Uq-+b^mAa_Jk0E-xhs$wHsgG zTfw`m$BK&?>DL5qB$^(Go ztSRi@;GgLVxX#5uvCRAmRq29h`2Joxhj#sz2(G~iThX;QkyTRW{g5(`PY8mc3IWx= zZbTtSg=k|tY-GyQW8!i6=ROR);zuInQenyq$VGb!O8+21p`>RBI{{U~$}Y4vc+3>c zcKQ|aZIvl0zonC-4y+#ZWT=wP8|${BETKuhxET055`S{!$|H-nOlLc%mP_B~fOH8^ zV%!%h{?{3}Qk9>MKdQxjFMDo4cc-*;Qr@mkz|+YEuzu=vjMJpBi>!NLi1_qCvZ)=l zseBCXZ|CXT6JwvSRS;41Msti4X0G_E49MiPhlL+f0opd2Gy`+}D!(`~0_;*ZE6`{$ z=drs4go!VbiEP4ZKN|E!W{(MDn6qO-$d-&!gy7PNgf?~G$lYF$wnTZM=w#59LX5cv zfI`>Ek9EEtb$&>tIHmGrpt2gPnP866kyMsI3qKm2{Bm}T!263u2kpFi)sFs}Qcms# zmw-N@J}3I8`Zco-QspkfR7$uHE%6kMfjBY?9@E@g&=MG_4~yflK}W0+zGz{K@s23w zMP09x$)QExP+Xm_ULqZ-$+x|!TG_Ckpxyt_N*6t1DS!68&#b2xZBA^Nmp zi(y7nLwTf@7pc#J0Bc3fI6UZNDzmX-<3e6!iUbrsm;XXg9ghwSdWtP594?V_pVFTy zSr_%==d(kugGjv!DDZF4=h5IrUiw<1OaxugH=3jZE;nTiWg6J;*EO>u#?*^NSib-0 z-|g=Zl`DnmvN7$H9OK}OsK>4P{op}S0$*#&86KY#yNA0)@dN7pfuj0ZMM*ze7UAP7 zqMZlds8bP4Loi!~> zPk?U42EHBtc47ELKYF6+6h_^Xp5JHeL`c7eF3PAPg`OO8?Ow}2&zE=KJVe6pg7SsZ zxVO5(r|`c9MWmRiCTn-o(@yAhBmR8}Kb?h-n>U2DkTrQhp6|OKrbO9FeXWr2b~0Wg zC|Syv;MM3W1tVF_G?Rxb{aO09D+{JHv`m1E)?GR8GvaP?1smz84!p!uP=Fd%Cjpgy z4!c(`vKi&!dLu~sy%a&SLH|+_?K2SBN@y4tgMqf_&1WtXtQ6a}LvC9T(t_!1yYRM= zZ2y6C;VNn5I8>>k*tTGUr*30TpD(Kjpa%jKSBB9}U7Brfmq0+B05F)OCRwIr(KZ5_I!1GASGBFiH4CRik1T3IY4 zv6R42%P%d1J&6+_|Hr_=vkPx?8!B_gT>KhAqQ zK)a`X38&P_pf*3+X;AmD)To~-=XvL#$q4j&TmZX3AgD7~Ar?f3kAVMzt~A9}ouEbJ zslJ)}T9&Fh{Oi{Qps9=3uRl~TyisJ6zXNfj0;)5u9t<5rRBdFkho2VwD|w}Uw_0kc zZ5H1bYF59gZxs=P7UPZNrev@^`Kg{(D&MkPo@(0QE)02TiFCC}lFFg~ zb`n*Ncqz%s{nluQc4&{k5dXW<%sBE7X)^p1c?xU4|E*7VJ75UBjAisZJcq z@n9{i8JmeA3!+UJNz|r3lSv>cyZt+z=wd>vaJ&0bi7*^Kwj3_02p>k?<{lgTGNlr{ zxsONBsEq*1_X&dMI-Olq8XyteNX*a^BTcMa#>pAw5-dNK-~qXH%WPTFz41pxGR#l! z&qb?BCm9c$2d{?%$`H71tuZx8*C}xanAxl!x!pI9#+#$*W;ES2a@wTN&B0@@D`H#m zw^ItD3?6V@qb06yJl=kAwUp!_Hx}9Dq3n?@l?0(lqUSc9k|HZv-OQ0S?0_b+%Pyk8 zmP`mTx+kYsbu4J7OAI9x63vo@B@%}-td?Z&gqzv*K_E9G$Yo>n(e z`~1#QstbASLW3M0K?!@}37(X6exA?m<02Y92ar2!M=!;fOb9$z1axau3yx3W-4_5MtQVHos@4emJLMLb-8IG|z-gmZh3n3%ho{Ov9K7||5w zo>;8lwSIdvc#e7g&e}(7cMtJe&B-Jg-K8gLS3|-l*jJD4&QG}m71Pks-BvZJN=F)y z7O`1l^e+h9UuD4C)Oxn3YBdBgdA8FkGngX^fp$S&?V_$=PB?3k<=AL2VOVH{(KnI< zMK3)W5DsLrUqs=pkOFCi^k;3(l>*ZTMxaExMpp@jf~5$Bl72aMF?8HV&T2yJ%tC5b zEw%si_*91cQj*SFhuKRFiu}}l&+J#{yw(`J@Is3phbuKILO0@5Sn;CF9~C?aOJAtq z+?uqOii2S(jA;XPki&8tp=Nd|X?E#YUD2}M`G2A)?XXi66s1$iMxi-KnXt$pV&@VbfW!qm+7ns^Sr~ zKAScn^O;YDTXH$8S;^>Gv)HI$I~BQS9Dlm6VYOtG9hH9J)*5*Uhw!#}i1K7yA=?^0 z`kq-2{nMFkzPofa>A^%E0v9FuONfm4M-KhOF(oo|VYM!Bmz(v>jfi^tUy%wP@10DJ zaUoB=TQ7xSN4~`vSr8tCe{f*;!-ok}3|QhuyhAbz;)yyhK4OEE9FAXITvvy(+!ghO zbu(B)nhyf!URvEdV8X)_0NlZNZfGNbtur?Rt4`2{E#M$L7Tko#+i1%ymw5Yd?3sKh zF%)wxoakr*1F@J!y=Wmz2?kzb&!~pJXk5l5`}P|D!waleyg#1>9oc2vdcNb#@nlZD zy_3;&E*!X&dOSHE!^Mer#EL57bzEA^KcYKIjU8 z24mo5k&xbP%9IFW*EsN7Ne$hi@#N}TzAp*m{x=~hy*&6%w-VhXu4UtQ&x5Z$6}zp~ za@Gk!J@&`CL`HedWs2P_)`B7$*L7BN>UZ^1sB=9$ z+);m};JiTFmynyiH%VJ{;5dpq7UlTX&B67hoZ9kN0yptel2#+6CzCe5Re6b+wJo!3 zBgUc?f*)X~I)JeOe~PltCMuiR)h)Z??5oBhIDvl_#`ydgbESIn+A@>zlyjfFM+w3y3yiva)bSd3N8BFau(Z~LRv3|w9AmHD@ z{CYBaX;d_xUjj$og+aquNtJ_t>42j~#Mor7wqRpS1pTr&qPU~kuj78h?&PG*<&W+y{)r%z7f!J4^iw=AHv-?IjapcmFT2t zwG5)=Gi=NgZwA!nGN_s{E)Uo_Gq-cDORAU$zQ?z)N1^P~@z$q9BQ! zh&h>`Q9T{&v&FW~4u92Yj!2?H*aY5|A3D?aSF3^F45*v>PG=J0nr4MiePvj!G#RLn z<_6wR4eMX7n^m9zuce{V(Rlu3_PxhYlV3!vQUOTTHE~S!+ zXa;w=6&#~P1J6_YthahurW$d1JLczO`HY$#)b|Zt%xxRy8k}|iYWHRlwuVcViet5c+ZiCvBm24m>F1f`xj|z?1&jhm zE>uLvZ>w*38Eh~~@*y0G(3XH*7HM)-N$EWI~wHj?r0=&J*+=<0O#o$;_GJ*_fe0JK zKVLM?NoD`(w&(Z{jIJ1M*~%|U5n4V(knWZhnB~aQ-jJlB%@yakpRWI7aMSKe$d=tc zmayy25$fZrQ!E7SQu{{z5TaOsOZzHO4&^q~+U+26cQlO;;~oYd?t1jv2en9JLA^<& z%^ndj-BBp#Vl1+06dyYqsryn(4ee(KjB)4BF+6#iAY5sZq{jQN18Zj38V@}6>dqnrOy9JiXXB};|-wv0dU>;6TfapPoD(A z^6cY}Yp;$*8;mz%^rw^N{3u=i>|Op`y1ZGs{JGnu(?fKcz21EKGv@_H1G6YP*o$Zq zJXqdC@vtt+8YU`(m3l+(B6dy}t+~p3Vw)m{!XTSdlS$RnQsg(8-uHp{kf~a;X9qFMruM!VVjuLToOD4K z5Hs{~8E1(IMV5hksV-iaKDVt`+SqMl1s(%}6xmizP>Jd7$B&a9R1O#Kv;_;rStJ9v zgbKxoAYTd+j}ZYJuP;IB8;V6(v=K`wIvym#-j$~SUh5Zz=;bFE(5r!5vZ@6#nWutK zLcX(V=87=l!bB>RTS$&1TVV5yHXJToou$YU1lWEIl*UNw4d2b=ozSySh}^m8Y6kZ! z%Zjg?jO61~JqTS8%`CW6Sp_qW6b(d<3~?!#Hb|_KyTskou(%s3~>GPM)o(yVYl~@R0}!D!a;Ip7=(Oc z7WSoo1Fo#%@6j0F5L1Ds6eFbw{-eon(VJ5K@V6Ppw6-`fH6FA>GXv5_npsAty>F`} z{;nH_P<@r}N7pUM6IexowP6WWQaA=v;PABNFk-hnIbVfIhVE;qE-}BboKC2Huz%*k zT4->>xKuAW2?-D2VudrMV){zF(5f8jQqY$u_r)Fbqu&YAabudfcFcwlaY_-Kcrhm1 zTxA$Vce#|uiVIh&9Kstyk40h$YJ`~jLc2Hbjm(B6jZ*EdU8D1B*SJIdxsb%V{7keL zxPeSPtjlMC%gdtE+$AUYf=JYhcjPc#uCIi@xDKPY=C%R1k*N_L>oa1L^O@W(?h5!HZ3?6jn#e<*XvZHl1uBzdaa&fgnz5{!Q;Vu$+A2 zUWDb5RO*|-w&*?z1#xfA!nvzyNG{t<$HziCPKk}v**CdTa6*(#AfemHw_$982-*N^d9+c3r#iGd< z`nh8K8h*ya;@MzB+u`M4&0$@0{FXxAjVJ3}0N_$>pK%9-^0WXU{QOQJ7;-zq+mkYM zS%_8RhnUnUaqK~YvE1|1mxrX9e6R9N76z(cwv3(SYn_t)L|E@4M`D%qW90+5+lNrp zJ8Mrknr;~#**QaA8Mmpdv1=xyO>SVuf#_vD;lv6UXe)Wv1 z@7DY2*MeCw4Gp7RB0h7@RQk>Cwpqfl0eTSJ{9Pd!;PAZ|hClqiF#Mqh!}&}5$LoVv zGvZkeprE+0=XGy&bq-hdvxIJYIR4|>D)P()TSc4Y`z{tebNoV%R_+_hiIjcp6Ub8map2~sQrp4jpSm_gLex%N@d$YsY$t`V8|%jwI*`lJIKeqwO@Kzo zK8X4l#*$lin>6x#wfL-$=R*QE=2UW)8(zVxcIzXT8cQORzZ?HL@t|K@8JjIF*H)`% z6QrP6;WzB2ESUOgV5E?St67eion_?2$7~PpK(6Y-E-PfGM zUgpI=bYJYEs@(}f^hFairX1Y8+tYHSoBcuxP^uMSXEE&Gd;{#mRL)^FmnYFbcCm2@ z?8kAb_i7MRZlb!aF9V=q&-s6|a>AVT*PH=Oe2%{R=p(9PDeS~lc0G|2n>ckNMn^{@ z%}QDxRyTBbWuoNEk-ZlR+t7Gu>S?8B&-B1Y8?VVM*W?a)KVwTCseRsAlfx&E|5i3I z&ri3yPlzXq8N?E@dpgbgBPd#RI^!=hhuN1NzNo-4Wf1)^I=RD@51W3zi z{^}m>>m_}z*S>1?oX*8CXuM+|H(uw23y{|CK6X9%3F1u@)md20iv^}SLMt;M?CkzB zIo-5CYO*h9(_3bBJ=>k^ZSIc$bHeRVH-WeTWBA8^^k4qhKmQTW_Ko4E^CD<) z#j@hD-?f|SCmdFwhq*2-^h+eKkm2T}f8P4T_^7}ZHuq)&bWwI`A*eYNOW~oV@=R{v zJO!IW$^@ona@zUlh&aC5-d~Xx5+5tY6h%rp{dX8k?JPLU+rd@4VbxOvyA({hhkg&J zBoJN*SuD&&Oi}&771Qt}-3wzW!OTPtO8CL@`v>xAlHliC&e7cD>FhJ#tzHUV#i41k47Y`Ynh6@?ommcHlY6?!)v)lrg7pg%WhM?G$v^_a zElUE$#eoquTUu+jOn6+u^NWo}_JeMd1qWm`oAt2i*~<)C!a_;wAT$n(h;YconG1+( z7)3Q(18igQwX9+`1@9A1J|1aMv$&@PdH>90&~Qa;idD!`9mfzbskrrtg(Wc+FFnVR zM(F3UJW=+0e@w(N1tIA>47?dh@eyXtZL|F5lM-9;T6oaR`mZ!W5rgtp^U#uuy?%dC zMhO;8M{0S1IE-yJ;wdld-1}z#4a;NN40&ruQyT09R1XLZYn*DRB2YXo(qB#Xwe8u%T`N}rEd=d@`+r>YWl<+rj z7l6|2{4%LEzmLZtLiOBFW*SN&?Ow=rBH|RyE@?s^+{XQdnMv0(d8NPkou}*nI(t5a zUe~{diRkyXhcB-`KKsvgY*-p6er_L5^g8|y;t{a-@TL z((0SLg8!Sb!&0dI_7BtD`SG8+zgl+k-`u`1cNpq_b9<%1*Po)bz7w|>M=0EVi4?Ez z;rB}ZxE#NyocEjZdR}S7^%AEg>s+LHh~?b(yy(GmDm2vUpB5UkJC^dedome6yL_GX z4J3Fk-MfEP@lDh%w*u%^tjeNzyvCH^$wKIsiXuf(Q>;=ukaFD$x3CIMRdt$Ayn6gI zndS(!3SGb|4wTyO-HAkL_!M!U&{G{Cd2FZ!Qf>Ku=l1Sw|0TCqg}YYE*KSyA;@b5Se^M@^jqx9{76O;O{zzLj{@?)ikJn+_eS+{sjz z^Q?1)IRadHMZJf4L}2;shNtsaIfKC(P`ZpwQYYz-P<2 z6Cp`eWTSSwr0GH5l72koutRuWzJVQO;ef^{=rYvx=Y%s7&1mBt<0GGh|*X!WD8o}MZWmwNy zR6;bFL;J^o;~dNs1}}J#hjCb6E! zzQ+qyKuDo#fuR5MR6LLgrU&IO%X5!ov&msE2au9gQ}Oo1RZRG*cwom22rTv8!=)E* z4jVJ07f28dxC=1S)GwoLdU*4p47bJv@AXP5JqZ?3+O={A@DkQd@FynO(!f_f;z7*{ z8{ygTtC5A3k5mud_MKdcaVTkL6)U-RG`BucOOw-Q4nvV~*(mO7g<@>}zyZ0rU5AwX za4;oCS{2Nuxp%+*VcR$%tes^!YbmBM(vkJZz3NpjJ~G81o}8PA{DMf0<%dRJLe5nHhff2T&nE8f{nbp zRG(XX#+|R0?-4I9Sk)Ui1-_9;IFzVKtYKp#wi!LnsTP1wj-kC#Az_7d4H1#~p-mj0 z?Q%!#^W0~_6(rVM+PpcLU~Q9UFGFhTE;;p5?aC)>ENrfo>rErQC;{JDf)5CWQ&lC6 z4sdcA+ffPOgTvV_JAyQ|$w+uO7tbFdw$5JsIbK;d%CK#*adl_#`ljI*^F!Bizn-tSS0opH`K$WVl4Zai?Wk?W=#EvFo$|nB| zD8Of~STErR9pRy3ne@F$yTif#eWfp5ha4$aVV}(XY@b5sDK}7Q&mNHnG~@nb=NI5L zX{ZpX5|Lr*s5wvq$!yedhE70zz6x~+GpI>iTBg0Z2NLP2B%#C+2MTrV8ZhD@jhvi3 zCylWSp3&LqOmk5mFPX(NUGqD(Z5}eR9TM7NuqtC-x@klx0$)d?sY)DsR&b%}7jWK^ z8s`&r-N2<_JDQ55Y>_|pgp}T-{5=RDFePqN54RBg%w-p6PqTx(uJ?`zXh(g@2MOr}4B3hLo`om?@{g#j-)#!c&2@My=QZ;|C^la&@b_~}}$)$*1n6>RopfQsQ*mTC1%g>EBmIATUtjh@9-LJXh zbe!#4LYS;MBi3nVIa2|3XnD`&;F8hAL z&7K0;%m|&gLx%t#YHQJb+G3m*&SY}yG_)8SJSbI#G&Q3Pejtc6cefpbC?_YgBjz+` zO>8IC@j(OY#^rS)@*ti;e^uv};gV~gzFu=6NLAb}`|LjV z79YihdUf9S=MOwdORiaot*b-t^zFdzqO(A`)04wZB~SeZ$9AQ*40Z7~kHOTTXB_Bw zyx=C8cdtAMY!U8F`lBi z4sM^xS8VgPKf9i7A<>Vc!oHLvuVFIXYSSb{Ot%%kB@sjl4=jesK9uUA_1 z*Z=bBl~8v2riPFY65wR-97I1i*yFURo9LfYf9kj*Nc+gT{l-b?Kbu2=K7 zzO%|FYj^+Wvfd+_px~Zp2dK!xPM6W0VvJ%iVCJvVXQ!jvTb0uCS|bfn>^SyE6QTgC zje7P5NeCPYq{k3U{sd!sk^Qp2u`IN8QH@f)$;SGULz(7Fp2{R)S{kqwMPNz0PPJ2= zgSKZel&mR^Wbhb{_k7K4vUEgLfLg@TT6K_SIbUgqP%qHv8mNrM`1_AH{%P>(r=Jc! zx%tV>_1AU-iS zX&SUwLCf!r7S%v^C{%D*>y;Z<0s%3XXwoZhPjDa>qL4MHZ&(Co$a*R5u{~5g7AA?6 zMz#Gz4$G>dDwJ7HZS1TGw{4v;sg~D=&C7OdS-7#u>9(JFKc;Q3Q)#&y;%w-VG1pTo z>ee@_W$rZI70{Ll76BZ0y4@}XsD=mG*QOROp2HgKyHT}E+4#|@_QbA1#9iWv10aqdMfupiGK*~BAJ>d)6mK9j>SG< zE~UH{UO4qd&@S!cji~qL!aiHvn0?ym5y=}+($e#yZXffLh($FluE{j=1N4bh-<2xN zS{QTDl~T7~a|fNwjhcz`xl1TD%T$`KLUX=8(^Y3KtILpjp7_1I`m#c6Sri^GqpNKD z2~|{;uBOrp!42AwG9Mp%`pHG=i6>h1W%z=F;Qp7=K(f(l1!SrI@%ySDi)+vd3n`IQ-kU!)heV1r%i8H08qDsEnC1`8)hwb(Qa$p})7-eJC-fAH z)p~`?*Xv!aVtvKQ7fMAA7I2)aHehFx-q6gdVY;m}5iKe)Fs;N~M-kB-KcK8=R;`}U zpT|-$A&Kfmd+2F5SGV zX#aa-uP4|qUG+=K^#SVAE-pizeQAEl77KbVir{7TTDOgB+)J5yIaQLoSGk~(jgPIn2vT8XY^D-uN&I{qUeFgy4#qs z2j9-{9=yEz)5i1D)8qNAt*w0m$PeZ7$H4lZWY&&kINTzGC|}v4qpKOtlxmA9LFhr# zv4Vh1q;qgLfzRY?0;6ov28G9R)({D5_%Ti^#>?(6USqaPzwtQ}H9Y zj)WA92z8-$s(h3Io4M;PJ~$nsC~bJWHKu~xa4UmJ8mCv&i%8;tj=5Qw2DcNM&zg5h zb1tsw!@m0VV{>hn2wwM6 zdcaSETVbF@F4tT`k+Qx;XfSw{!x{%BzlmL_aLer}WM=#e0_C9&^oZ`^KI3D#Q2%h_ ze+=eCh1eP^^_tww*>qEbs#_0{pK{rAZU>yjhc+wHgkuOO;AF&=DErH3u(=)g0mZ7%?QU$wt#Rjxgib(&<`a<$1PN$oD1qI2AXj*JFl^#q3TiD)nczqqG8RqveE4HX43r09A{5WELn9KOuSC*nVbAR)@emMV*KH zUi)ZvIL_VXA@GCm#?PQO3oNQ6!$MgQ9faMiV_q}5el`_!b`j~iCZ+qYpdkw)qN@m+ znLQKG5%?W2)O>{%{I;&ht-%^mdn3ZhH|HmN18Q6xK3iWK*3dxpzV6+t#X3dk92BS> z)@|33&&LF#&u4@6rYi&4=4|`+8DOg(o7S<(3oyRz$Yh4kM<++nt0EsY)#*&Tnw9CM z-gt8hFVOYm+W2S3*9TlP>NI3&5IqJEOMWub9bz6X5wYnONfCkR;@{D7XA~D7DxV{; zO8`lPJ%}WXR;)(x+zskU0hYRu953ninqn<)dH7-34$fAHtoiu`bUOO5SC+Zi3etv4>kaa0M& zITvSBWqOB%7;q7|Nn59sqp~j@6kXp-)8N^ZIk5DZ(_G2dXB#dKRV0YpevFpT(rsGLPCW?RxQ~ z$ng1hLk7+%B3z*Mkj#Wb-(v;}ami-a-gvKfI(EJ;wJaDR>KOJ(5=$-`ii2)U?fqB_ z=%lsDWR66)Y1@}wnA-i?EHAxB_KL85aqsNZxbjWyZ>c!T0<1Wuk>p*?>5XKP*T(uM zACri(I7!Sw1d5&#pSH1ZT~&5eU^U_a;PH@Z;7U+j+TQ|j3Nh&Xn2r}u&ZCh_*rH0m zvZ$O<<%n}EyjwTNJes{}&pq@z zLdW|ccM*qS@@d-S?OE8!9{iOEY|5dupb95Q{u@i)Si(9&Jl6sg`Y_!Wnca)h&oPm3 z$DDTEknmNjdfW8fUc#fH&GPIY{I3ph=i$+?xIt>i__sb9R<6;TVA3qUs(vhHOlrXb zUu$MH#HeBS{*^rfg8EQte!?_gC97oL!DV9-%i61gpo1U|-(R;r^7_=BBYtR|EbCv% zUN7wC3`gg>(+~QQ0;44sAnlUiWN@M}YH1zieOS7p!8yCk@7d^Ls}Gu}2eikPyBq8J zyMIs>j@~w`hr`wsz4k9IG0ZJabUHaZQi(}F2fEz}-i8x!x_-gbr?VG2IZ$dO^(%E4 z^~TL!ZWuI@mDG%q_IUJ+&`hjDph>zWIgd)F(^WSIs&dE8Hs6+rs&(c3DQ7^M=-$cX z_;lXy5yJa|yv=8`-zwwF0B>@~-7Ls{G=pHVfE=4aaIo>wKmOs(x`qi|1X3gUQ%vTK_k|Vc^-Px0k!$)(*s7#rGU<7VMEEqsR6-p?4+z$wIEZV

    k>6k52O*||LxXifN7I~M^i$(=i!BBFKi^R?H7Utv&c>U-H-9W&07 zw=VTgOA%e^x$%??rm3X8&mTm@4GdU?b znDBTZl83$O%8RiE*~MCfiH>U6+E(+IWMCc*HsYG4EASvpn=l2>WIUZvrEi~vJ|&Au zw_v44bGA7n+4W3HSy8X*3roY0y93QiiDdgs2}~SPhqD<~NYsIwe`>i1PP3Pu0G(#W zNW;V)b2*QV3bYp10FlhMv}kdrbjETyohL7oTIWW7(vU|mFJ0T^NlK!}u&Xh3 zizuuX>wEcCxf&{5PlNNaV-22F8LAJ;j(;sySUABMRa#{NGYE!*jTP^IWW^3oHwO=> zD5NYc9c5a~YKeoAcCH|vPfvGV%LA`otC0;eL70uw3WhWV8nH>;SzBTZT8vpTF2vFA zzds&$wF<8UY0vK5Xe=5J)2I_{x^EXTn@+W~SO>Rc#gPH0m_0h?j?OM?ZCO;{3Lr%-T*h{KY`J-zau~?*mJ_0PYba~7+_xREW!!}~ zH7IMj5=?2!=tDW|q^Fh=E5*{QlbH=}wtKdRt`C=YK_QsFp^VTlfKT^{Ov=_s4VF@G zd`X?G`(nO5&ROZFf;0NA&^F#3#p8g3tujM{-*2QqQ9o3#5imZ_1-?kA9@F0Y``T z_04tlg*0V&qyvoRAyk#@eC7!o;=slQqjY&?sh`4?hgMJ$wz@aAu57+GO*Ydyr9w~E ztFwIl8NSMSJoo@S@Se%~YHQ>**xx<$4@XRXjE|U_1^R@~&wkr|hW-hkgnb}iT7D)P z>6p@Om3%}_)*=mKE%Ikbxx!m)%RTpn;saxDt$byFVopi^hVU7orY}tb?Q3I zP9G~4u4MxL{q;fpHla%iy%F1&L^NnO2Z1+*UakZqAYZtt^x``oYWY!DE*#4NsWbOj zZrEpMhXZHo$@AHT`qnmu6Bq1Hg%jjOlu(d<5f2CGDLLcQy`jG~nNQa}2i29LC~EbL zwNmYr=T;-d(Lfmr2aOZX{AW@VrJU`WZ#_7?rokkPu>y-bxAtbz;hu#XoYZ5IXKlff zb#z%ne}|~rbort4XEyTG3sEDmSOu3zpNI9xtI948Cyu>nMg z9<~b{m6E)Jcs!gGR;IDP}DZPN6sJaHdY<&~iG$F}|h=l?w4=xZ-D>TTcPvAcfE+dD&S1~kCG37@ic|r63`_hu= zU<0)7pi@F8J6tu=kw)cRczMpw&Hmm-<3b%N^P%ynEsGt-08s-Ac$gb}bO*1k%y zVQzLv+u8i?6jK3Np^*@VmNty#8cl)b?^CNO;Jq6?SvOGCi|OB^|d*Pv! z)r<0*G=kjro+yN#-iba`0q5^g=e1=$BZT5zc#YG>+3|a$j7ywMUyIF1pkKjeE+P%n z1>O^JSYPi%9_r!mm_P*HJCKN(LY+vkBPSj#u z{2h~v!S{aX#k!jR?a9SV0B=byZa#QV#Z6S-Iyf5+rv@Vy^$v9A6Xkc-SnZ%Hj? zfqGBGVtu_6t*D2;V^R@#?}t*<)8Cd*{>|-)Z%!s@h@F)t@t&D&QPHT>$%LWAm!5pp8sb&HAv*yscOa@h-Y=&gi71hTf+*vb-hu5MJsc5N4sn z%eg=#Mp{yU=nBp2V3q%u`~Wn&xZ5@I~Kh!)dRSZqx_@GF~UVQYoy z5r3lGDU0{R*B}OD1C*dX#oMWD`i@fMX44(~S>$6`f>A!PEY{yP zPaMaY`+j#xjgqPg)w%XlNi-u@PrLX7B2d7&<;?U_ue zx@6FdN0!#GmVO>hr&IjR-Bg-R9!-p_STs+(QuA6Zr}+E4PD9G%rhHb#{LNk`kqVX5pf2DCkr}~MVpLE^% z!^WqF1MjEOAE84Q=9`OgTLdck*Qb;VtPCz5ip@Bh@2o9gzDg2<2Nn%spebzSIegPh zF{IDN&$-p8^djToI@PT|`m7Se%ieS-qr$I|;+mH?rG9e!*}e)}xU0p!^Xip;>B=BI zioQ97n0)-zoJa_EO%&KWg;6=YZ3sn&4&+4NJKYFZw<=DSI4Z%r5JvSG@f|jwr$2S# z#+wc-k}A058;4RY9aMXbvt}bUL?I>CXAyqo!yj&}YZU|f`?7-Crn1iW9^R zsLM;(9?aAcuOC@j^nI6-IBw~e8w5@3$A(`*ySlMqcC0GkK_bwO=~5)H@G6&T2&DU- zyG?zG=)k*Yp(9E>Z;k0kQIKPtH_F0>6c4IcH@hGrBHRct+qq&P6QoEJ(S|Gtq1hcx zy_mD!c}|`>Ud`*MjMxpxmS^Yf=?XXK9m!}!2$Lc6GN-*^|4j~i?#AUN$cT(JM7=jP zW6_dw%>=NJyhw2?(PCCALNUf6&PjYyH1{*WdFbUPWVi5k#B2=);j$EYaeVA0s7|q zz~V+b`=G?*zelDd*xq_61mf?w6mJ}?U(9m?Oa_eO$$0;c!W2!q%^-by>Zz3>OcKQo z8YtRl?M$Y*vu4su5qiBdH~FfA49I0GIHPhKc^YRWOXJ-L;adfVzd0#bO!@Cm3lY;^IcS#Ti*_}22 z)guajXk@X*jnAXK@$=as7xUd&w{I-@ay?Z`d$cc#uut!YIXtu)QTH;gesJITgxxFk z!1a(71oH&@;m-8n;j`8T=A~!}usI=4+frE+E1&msXIUksf}EaUirXcE*=~OGo7~zv z5GhO+;&zqHM;Olzro4f49YbewmyCRpbCk=j85m!ch0sIzLzk7*?jSa|!~xB9FShrB zQfiXd4|VMsCOTeMU!9l9=)<0Ak`yD-LKk1AL!jW}8JC))An2Mao;{|*Qj}|&9(+mu z0J=n^^~D>?UpOSD9`kUbP&SW>!#*fJEg|xR1cIy~XP4Va;^R(B?%149cD-(0Ubndu z_i|IxkK_f65OyUZIR|;crlz~cqPTU^QWdjIAlU?9PYW=4MolbNflS+SldO7l&1IHJ zO4y=bDx0|`0Ir*OO5TN;!!2<<{A9KY^E1k_ASMf~JGYRe=ck)?owt`yymbfz%Lm6K z)$Gr>VG63Kmv%{<=5f1IMl9=?6R0KdqtKLcBv*c8r0Dt!?<~^ zB(w!dv2hr!-8brY_xbIL!b8LK$k(I$;G0qYGM2T@zj;Ta=uf%_IG=&x+X^CD zE>pc=mol?dyMee9a?i^vWWaJWvFOINuJyK*8Cbkg?m8KO4MQ-Pjss%ez|hz zFreSJr?6pAhzG*X4u51L?3kU|%tc}YI~LM~S`Js|PPrWTUhP{mws)wY`Wy=orXNr2 z_LULTfiM}rX~{y7&q?Ww%4WpN8>A=WP=iuUqZCbTdb1mb1b{)=2Ou)imqDN$$z_Kj zeW|;m2xjt2;e*xf^pEFVVa)j*NBAlczZ%_MYrS=NTLHqU#@A1?+-k54S`#EpSinC( z8w9M==OlnaPiR|yh!@(*ej7YHk=CQ!`ztu`-HL5LQ@V@Os!-7yeCv3QyVEU;xDG{f zW6O`OB+{u6*t!CiC4~E3jON&6WA^T2w5&e@O4bH2^H3x0*?8X`g$Ak&x}uoYTN>l4 zMMJOT5HaO;=%-Clq21XDhv2PGj(;Ol_;9jM-Yjja zzv~!6fKA@|6z!B#N;~5+3|=()t9$QIl)zf*!!6x+Z)6XS}?nMkWUgH?w712)ALg(6IH57Nlcbw zcKu3_OzSzzXYN7k6i;t;pqc|7E3tQYrr@Ua;3NxW)8ULhSB}mjoo{Uqscbc6*{@tV zJ=|^E;J^5#O=mXlOOkX9$R`N}*R4J%e;9cfP^~Xec-TFh?fpW#=aa*I6a6TM8`Xs# zxPsSESvZfcys(NcHU!J^@LA1~HN5_)ukTxw$c70_8nh5Tg>i6Gm*>9K{a=0YVFjgy z)f+Susa5q%A-gVN+$OO2775^GdMtG|OlqkRSWi#w-zXjT@yE(i&)AKjAG_OjO*&Nq zIo0=V#$NcXB7|i4^+DrnEJKhv?IwNFxGmJiE3P8}m^!m16^1|;M3X$5q-`24#wK(Q7jxe!0}KKQNJQ z*l<%TS*NbD^+LCK+Ox2FUx0# zz#>|EMZ*?H*Nqfj5iNPv(%CGl5tw9nKDI07lTh>oO1$i~7Zl;qkzkT@^7p}m?fWT7 zf+CBNK@3ovF9~IvDi^&B%JFZ)pKNwKT^506ROpW_rDu^@p+hqy41H;wP)em*Rl*vu;D+MML9u2 zGQ^j{ZsyltIKXC5On}XVqzr9E%#E>rz~%xLT*?~oa}G&G`G4z5;K@fU2<5)_#sKxB z#6pFnz{>IyT^s?9m2Gclg)T8ay+3cJWPDW!r@ib{J}WmGaF+t5`~e1phi?@v+xrtL z0=U6rTbO|&U|3^{mJS}w_eP2tf1RuQkR^(cQD5GunCIrRr;oLi-nZ9tYTcfl zo!G*$GL8-u27ACim6)MAOoFPkLU{)-AClCUDzR6JW*qFRO=nZXfXrV{k_HuWNJ5FWaC_tGvpoWW z^#gbToLSwSr6~5jnd5OBX|g;tOCfX^(FWv%H{Wn((Az z&X21pSXnM?vF-$qjFYDpl~82_|72H%SRjqIyu=y_H1M!%*JR*291}wP*E6iX@KU>o zWCxJ$tgRot6rE2-hfjj7SONa^wH-rrcS3i>i>zMegE|G^PUnJ4J#GyK6Y5oqTd8po zM|7#nLg4un{Tloj#Jy7x$HfuPXJ?0)$3%w>`x>Dm&rTlOd+K)KhqJV{uyPPFh<47e zlkp3yQd$j9NhJ#aFZ8^b_L`2laY|6OUE&dSSuvn$PT<}!dC6Yr!Gy^fK2OsOSS`E# z>EiCb5nnLZO#clRuo2WW^+oFAB+(vogOCkcwr*HqIpP=WI@C?lK^~E*@7=g#0rIHR zT9!*h!7g42nRf7pr_12F6J8Nrqk=aJmU#{NX@-NcQ zNYuGIa>@gWw5Ga}9b=TzQFHgzt9&w~m4adIaSHXfpP$s&*)};~jtypJj`6SP73aIxk2Nv-R)k;(EinYu7(3fX~J?LZK@TwS2P4~4eu?!JT&s0B&F#RwYKw~4qjP|Gx}*Z`NTOL9)J_94*kck(*%oYCevHd1*X;HNj5i1->bzG?}wC!a+jhwV5vr8LKSdke$HMV&e9=XK^S&h4xm zquip=8X{Lva-;XAzw;IjQJfLKwr0t=WOWCSf6r>w_l7h5oHwZs#~z1eX!WeyOao}IRT zBXfiEV(T1G2l$kW?b;{dV!vg2XYKfW`|<)FU52Z86kMC1Hfx;<>*5mFt7VZEjj5d} zuAmIP-e1bzd(HwDhqu?t`^$%4oXDyjET!*+jH}tn`SoUH=}gA(81;{ey`4)>%uk{e z0zWIr7s#d2o5|I&hjw3Mqi?J~1sTzT3<+KgLTZuH+SE*WFm^S^* zhI>@>@7!lRPu+}Tl(#zjuk^TlKzHvDePv+mEM8d;1 zGNs32y2^G<^IT;ZJ>O41Yruk7O+kx{frl>Oe{?0bVC=Lod3Z+0J$s8xekBT_Z(;+G zj$ul2)qd^1!~HQ44ut){L~N9vq3;2&D_o2Yxvz?=Nj-?6D1t?cM?VYmL{l6+^zLu0 z201FFyO%T1UhQIF)ZvOK>m)xDd5e0_F*0*NQ zZJS&?b|{QeuH0$_i3b*y5RTY9ApCbZ{I2x6y3Y5VuHu1p9I+Y89sa1*b0t zv(--D>Y?RrPDxqwqX+Ftw*}nFEk2yiX2;%HcnBJ2aJ=0wZ7m$K)3IS8#K?w&6c)@* z%WF^gzEuF-?A5#xb}*W+cTg!~mK&v-#?``A1d%{j!MIU&b<17eZSAMyw#v_9Qs=tD z7Hs^ze#gaQ#WHrk={btJU&d<>9Q_6ADDjNwIz2o73J-0dErqa^HJ_I_3EQ(<_h}1AODd&NE}&+66-^_}zQqYQOg$ziWkMVW}d)oS%B+KbnKW zZ?`RM@uBXG`}pI|9&M23lUTrmYSzmREJ^C7Jdoy8a1*V?U`A@TzE4J7jxxWmt-0g@ zd5fUXvQPqZ3)`bfH||aKQ#Fcz>DnyCSx`T!^G^Rr*bs-5(Rkda+B`THQ7SIbLC%M$ zPaWi3WgaS9-=#@sI~lD4N`u;X(q9+|SaOTGvc{H+%QHx~gE_l`Kvy=0Z-=*2xYTbtP&jg)Y`AB* z=~-)!2iZIycmrj7*>Xe~RrvfDM=2pN9@N|b&0ebU(jKmoo>QDO2~R0;!fWIbQ$sOq!H?9%KgDLlrrIY)LE%saDbj;B)1sBCP7$U+#SdR9w%>im_VBbh0tjx`W zY!-B)GSjXc(x;(OIe2LA*+>wv^M_2@i^>^67uA zY@D_?xG9R;#(GalbcF|jQ_QVDOzd8H4Jm&w4Fy@L*XnhH;6>anFp@iqjO1014&HD* z63AtC*P>W2>3M17)urjH&k|RQOldVJr<$fyqI)o=?~=xAQ5%4}OK$*V8ndrTD&22V3l1=Vj{O zRo!wTTAu_LMqD8*r3}~JfmCt{k_XZ-Z+*n$B_1TzQ2^Q?Ivfh0VrC=!zKX1=ou>^% z!6ykMF)&5PP*;V)`MpZzyDu1V+voXt2`;pl+`xn>8#(^Qm3W#vq@#rCRv-@=>8N26 zBDr-=vB-nXqKT>TU(XnlwgsA^+4O>Jjfz(&D+!8NkGAR7;~)OK#d$nG-AFcur;8#q zZgatU)xKe8C8Z+%Z9+zGnnHKa4(3A-61P|xA_89gg@?nvgUP>4_V0Z1hfn|UpZ{sF zxw$!Du*A6nu~aFoVFMt3es*kre-nxnF$Rm85hA8*dRSoAg~fE*)4k~kU7ehoAd;Tl z*6zRHyi#;Y`N`Q1F{Pir?6Uk^w~e3w`W3-dpPdnN{6$2rZFF|)^%8Q6Sx~XN7DRY8 z?#^k3)3`|&=INXha6Z1jKRU*$wykKxSr#Y3V}z*UT2O-|e7T~@le)v*M>SS%vSmPhuu9Hd_3xD25+hH8EG zZT-J}Oqb&md0?+ub|mK`k;ccE{@Jz4>>_7S9I$`|#VVMA`^QF}$fkQX5b5*=3Ahu2 zJ7$);Tw`YnTBs)T-T0V$^wgby+F`X}R=Q&?MY;X)5vF(U$$c@T2;rP?1jH!q6lEA% zCYgYZFdcyxBY6out)1I!OmOp$^Vgkp+?V$i5ej_T zpZtoPMQ+}?WfT=@e(l;V#qB6MO4o=oOXcXwx}=FF2q1DsFqYlaTrqZqlR)N`o%kRu zNkq1Zt9ViA6yE|S()%Y zp+7v8>%ol_%GrwNznQ1<*juQ^!n8d<*-n^EV0($NW{?G18=T zhTzmxFMMC2B@w7$v9KJ)PuE9`v%b6jlZqei>GS^jPcR=bKYlWFqf_iJSG4Yib87l! zV+0}grmjLof&WUOxDcwqSQ`}LAWm$2@{qjc-=wG*=1Ta6?+%(~M;6K8rV_f0_L#(MB699pf<2Gk% z>==2nvje%YH}LW)7M#H5;=i-vf=>rGggO3UoY9{;nKR4!`Q-e5KCymwFYX7&?h1J5 zBH`J)xSv0q-;cwy-}Y0ahw7<>7y_HDcDZ8pA+**C#aw2WBJzfmz2tGX#N=eoUUUeg zsM(W~;lPd8Af($^E_WWx^G%jBtxu-E%2_Zs|G}iz4Q-{84@@1uM1eMK@MNBSIRr9+ zR#hzDj8AY8yrd)-aoObyozyCxd#LIFXe$vcEbR%2gsdZ?$PpO)F|qd&Y9b{}F;Ot0c&?Mr>{Gv1`lO&1QmV&_U)rrX|&560GjelqD`haNR!M}5`%7&Pi!O@pp z%iA49$p8T0oG27SdeY>n{87^PH%+JsBCxpi7>o1ILzC65rV@1l2-l9@igaTWvQ%`R zh{g@+Ngo;Y2^AHZQFV6lKZJzx9XK&dEYn@{>N7inpBu@Q6yb;&Sstw-oV?WXe5{j{ zNF38($D_UH>X#TP<_HUtjm*7^Fa=e?F!Q7CUzeiK=0rssko>&w{V@zJ z<(39E6|y#?W>;nv8k$xtN~IujC9}N9$U8qB?W#}>rZ2`oY$2I}NF&Nb>+5TS8h6}w z=|~ZxI~3-o>nIE|XU?Y;YXinw6`s z8qOEt&??lIv;f) zIznZ0savzr$@g^qXm)b^e9Z06$UQj9^-IAMm=o3|1C>`@4AP&4uiGEZxoxMf>4J#? zf{d*qvf=LNFM2EqF1l%lOoJ{8f6UfC7vvS2X0KFzl5_@U%p9i?txm- zn|*mvZ&wxo@+TL**F~(&=)(_VPCcwI>kCTtn$$wqO0vC#xasJY)F`?#vICfqC?qmQ zn5C_h3ybxYT*#(52jSl7XY3dFAD4`amiuod%9^)I3FcL++V3M*uIa-9J4Jaz`!e20 zDr^L5v4Bw85e{sA@P@QV`4!MXg((o*Ji21%Hr4_hV#JcJC8Jrpz6PJ+-(WLqUVXdQ zmrZ{~Uvg5KAl-Y%sRgljdp`eRba+O6?+8j}no%YjXHomE39F{yY7aKkCue*z^)

  • @`F*%|x%YnQk)YXvU;I>~>P)i9h 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�!Z32~gDma$7#U(B`?f#SA47!6XbjELm2kFH)GTzhQ7BME-aYB7_p=KzC5GD(DsuT2ECeFDz(dr9F$n~Y_d+cg6q zd~fI`Ntx_#031zs2?k4@O?E3_@NrUPcW{;NwPf3``&jyhMl9lf((kXg*kzTYi!nMP zLOJ8q>gbZAC@Y2(Z0Va>Ak0z-i}fJPXvU5}68KGs76MANjUKYKwUlmo?*EnOTR-oV z=-a_fJD*821m0LG`G%f}oe39Bd&Cc0kBsB>mTu6Lh~PJIB=KK?$8f0wkFE=yp~fo( zByLXvZi&`j-f&*ZU`mIk8effAazS6 zMElJUt$FEC%f(F10vSbW3d@tsqv_R9u3YDY{iKe~U~}J-@`%_-tyxx5VzOwS)>K)- zjHq&Ft+AFxQA8!QulRS{7=a!5sl1K+ux-1|o=j)1d$t?Z-O~s5XV7+V+c9!kUW*@7>`0jcw4Qb}pf5HCs6TKEr<3zTUFVgI_r?BkkOJ zwY6S7do;w`p-ehb3BZ?kp%R%1zR`<+Hyn|>Qczh?($fn>>Sl42MIxU?-C8f=%J9rkmmp~tsEPNMtfIIjz*yiMBoBB_QCF{ zDMNfLp*wdvuT68VVKn*<6CNb<1!&G_-tl$Iq=ELBi6BvVSUF~Dc2>g}RCB}*K5b{U zoZxnC05z22&=1INmPvyP_zYsfy9%6#mVVM%+9=_751DA&?{XS|6M3dQ@8FkcYJ(BG zLrxo^h)oMmGrq4=MOJM#wgC3hEk4@h z9kaF115hP5eb=6IUu%)dT?uvF7vc1+u{oFc}XX+7M*kartQ}hL!;(=v*&I;zP|K+VV4Bn7q8
    gks@XwGTj#>q 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™&v4uDifN64=dM7n)iHhUDziG3d85|xFd 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 z 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%0DQ*5 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

    W$zH}$lhm7S<`N5sZbYRN+FZLIomg8t@yfNe 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 0, from = Number(arguments[2]) || 0; + from = (from < 0) ? Math.ceil(from) : Math.floor(from); + + if (from < 0) from += len; + + for (; from < len; from++) { + if (from in array && array[from] === value) return from; + } + return -1; +} + +/** + * Merges a set of parameters with all parameters inherited between the common parents of the + * current state and a given destination state. + * + * @param {Object} currentParams The value of the current state parameters ($stateParams). + * @param {Object} newParams The set of parameters which will be composited with inherited params. + * @param {Object} $current Internal definition of object representing the current state. + * @param {Object} $to Internal definition of object representing state to transition to. + */ +function inheritParams(currentParams, newParams, $current, $to) { + var parents = ancestors($current, $to), parentParams, inherited = {}, inheritList = []; + + for (var i in parents) { + if (!parents[i].params) continue; + parentParams = objectKeys(parents[i].params); + if (!parentParams.length) continue; + + for (var j in parentParams) { + if (indexOf(inheritList, parentParams[j]) >= 0) continue; + inheritList.push(parentParams[j]); + inherited[parentParams[j]] = currentParams[parentParams[j]]; + } + } + return extend({}, inherited, newParams); +} + +/** + * Performs a non-strict comparison of the subset of two objects, defined by a list of keys. + * + * @param {Object} a The first object. + * @param {Object} b The second object. + * @param {Array} keys The list of keys within each object to compare. If the list is empty or not specified, + * it defaults to the list of keys in `a`. + * @return {Boolean} Returns `true` if the keys match, otherwise `false`. + */ +function equalForKeys(a, b, keys) { + if (!keys) { + keys = []; + for (var n in a) keys.push(n); // Used instead of Object.keys() for IE8 compatibility + } + + for (var i=0; i + * + * + * + * + * + * + * + * + * + * + * + * + */ +angular.module('ui.router', ['ui.router.state']); + +angular.module('ui.router.compat', ['ui.router']); + +/** + * @ngdoc object + * @name ui.router.util.$resolve + * + * @requires $q + * @requires $injector + * + * @description + * Manages resolution of (acyclic) graphs of promises. + */ +$Resolve.$inject = ['$q', '$injector']; +function $Resolve( $q, $injector) { + + var VISIT_IN_PROGRESS = 1, + VISIT_DONE = 2, + NOTHING = {}, + NO_DEPENDENCIES = [], + NO_LOCALS = NOTHING, + NO_PARENT = extend($q.when(NOTHING), { $$promises: NOTHING, $$values: NOTHING }); + + + /** + * @ngdoc function + * @name ui.router.util.$resolve#study + * @methodOf ui.router.util.$resolve + * + * @description + * Studies a set of invocables that are likely to be used multiple times. + *

    +   * $resolve.study(invocables)(locals, parent, self)
    +   * 
    + * is equivalent to + *
    +   * $resolve.resolve(invocables, locals, parent, self)
    +   * 
    + * but the former is more efficient (in fact `resolve` just calls `study` + * internally). + * + * @param {object} invocables Invocable objects + * @return {function} a function to pass in locals, parent and self + */ + this.study = function (invocables) { + if (!isObject(invocables)) throw new Error("'invocables' must be an object"); + var invocableKeys = objectKeys(invocables || {}); + + // Perform a topological sort of invocables to build an ordered plan + var plan = [], cycle = [], visited = {}; + function visit(value, key) { + if (visited[key] === VISIT_DONE) return; + + cycle.push(key); + if (visited[key] === VISIT_IN_PROGRESS) { + cycle.splice(0, indexOf(cycle, key)); + throw new Error("Cyclic dependency: " + cycle.join(" -> ")); + } + visited[key] = VISIT_IN_PROGRESS; + + if (isString(value)) { + plan.push(key, [ function() { return $injector.get(value); }], NO_DEPENDENCIES); + } else { + var params = $injector.annotate(value); + forEach(params, function (param) { + if (param !== key && invocables.hasOwnProperty(param)) visit(invocables[param], param); + }); + plan.push(key, value, params); + } + + cycle.pop(); + visited[key] = VISIT_DONE; + } + forEach(invocables, visit); + invocables = cycle = visited = null; // plan is all that's required + + function isResolve(value) { + return isObject(value) && value.then && value.$$promises; + } + + return function (locals, parent, self) { + if (isResolve(locals) && self === undefined) { + self = parent; parent = locals; locals = null; + } + if (!locals) locals = NO_LOCALS; + else if (!isObject(locals)) { + throw new Error("'locals' must be an object"); + } + if (!parent) parent = NO_PARENT; + else if (!isResolve(parent)) { + throw new Error("'parent' must be a promise returned by $resolve.resolve()"); + } + + // To complete the overall resolution, we have to wait for the parent + // promise and for the promise for each invokable in our plan. + var resolution = $q.defer(), + result = resolution.promise, + promises = result.$$promises = {}, + values = extend({}, locals), + wait = 1 + plan.length/3, + merged = false; + + function done() { + // Merge parent values we haven't got yet and publish our own $$values + if (!--wait) { + if (!merged) merge(values, parent.$$values); + result.$$values = values; + result.$$promises = result.$$promises || true; // keep for isResolve() + delete result.$$inheritedValues; + resolution.resolve(values); + } + } + + function fail(reason) { + result.$$failure = reason; + resolution.reject(reason); + } + + // Short-circuit if parent has already failed + if (isDefined(parent.$$failure)) { + fail(parent.$$failure); + return result; + } + + if (parent.$$inheritedValues) { + merge(values, omit(parent.$$inheritedValues, invocableKeys)); + } + + // Merge parent values if the parent has already resolved, or merge + // parent promises and wait if the parent resolve is still in progress. + extend(promises, parent.$$promises); + if (parent.$$values) { + merged = merge(values, omit(parent.$$values, invocableKeys)); + result.$$inheritedValues = omit(parent.$$values, invocableKeys); + done(); + } else { + if (parent.$$inheritedValues) { + result.$$inheritedValues = omit(parent.$$inheritedValues, invocableKeys); + } + parent.then(done, fail); + } + + // Process each invocable in the plan, but ignore any where a local of the same name exists. + for (var i=0, ii=plan.length; i} The template html as a string, or a promise + * for that string. + */ + this.fromUrl = function (url, params) { + if (isFunction(url)) url = url(params); + if (url == null) return null; + else return $http + .get(url, { cache: $templateCache, headers: { Accept: 'text/html' }}) + .then(function(response) { return response.data; }); + }; + + /** + * @ngdoc function + * @name ui.router.util.$templateFactory#fromProvider + * @methodOf ui.router.util.$templateFactory + * + * @description + * Creates a template by invoking an injectable provider function. + * + * @param {Function} provider Function to invoke via `$injector.invoke` + * @param {Object} params Parameters for the template. + * @param {Object} locals Locals to pass to `invoke`. Defaults to + * `{ params: params }`. + * @return {string|Promise.} The template html as a string, or a promise + * for that string. + */ + this.fromProvider = function (provider, params, locals) { + return $injector.invoke(provider, null, locals || { params: params }); + }; +} + +angular.module('ui.router.util').service('$templateFactory', $TemplateFactory); + +var $$UMFP; // reference to $UrlMatcherFactoryProvider + +/** + * @ngdoc object + * @name ui.router.util.type:UrlMatcher + * + * @description + * Matches URLs against patterns and extracts named parameters from the path or the search + * part of the URL. A URL pattern consists of a path pattern, optionally followed by '?' and a list + * of search parameters. Multiple search parameter names are separated by '&'. Search parameters + * do not influence whether or not a URL is matched, but their values are passed through into + * the matched parameters returned by {@link ui.router.util.type:UrlMatcher#methods_exec exec}. + * + * Path parameter placeholders can be specified using simple colon/catch-all syntax or curly brace + * syntax, which optionally allows a regular expression for the parameter to be specified: + * + * * `':'` name - colon placeholder + * * `'*'` name - catch-all placeholder + * * `'{' name '}'` - curly placeholder + * * `'{' name ':' regexp|type '}'` - curly placeholder with regexp or type name. Should the + * regexp itself contain curly braces, they must be in matched pairs or escaped with a backslash. + * + * Parameter names may contain only word characters (latin letters, digits, and underscore) and + * must be unique within the pattern (across both path and search parameters). For colon + * placeholders or curly placeholders without an explicit regexp, a path parameter matches any + * number of characters other than '/'. For catch-all placeholders the path parameter matches + * any number of characters. + * + * Examples: + * + * * `'/hello/'` - Matches only if the path is exactly '/hello/'. There is no special treatment for + * trailing slashes, and patterns have to match the entire path, not just a prefix. + * * `'/user/:id'` - Matches '/user/bob' or '/user/1234!!!' or even '/user/' but not '/user' or + * '/user/bob/details'. The second path segment will be captured as the parameter 'id'. + * * `'/user/{id}'` - Same as the previous example, but using curly brace syntax. + * * `'/user/{id:[^/]*}'` - Same as the previous example. + * * `'/user/{id:[0-9a-fA-F]{1,8}}'` - Similar to the previous example, but only matches if the id + * parameter consists of 1 to 8 hex digits. + * * `'/files/{path:.*}'` - Matches any URL starting with '/files/' and captures the rest of the + * path into the parameter 'path'. + * * `'/files/*path'` - ditto. + * * `'/calendar/{start:date}'` - Matches "/calendar/2014-11-12" (because the pattern defined + * in the built-in `date` Type matches `2014-11-12`) and provides a Date object in $stateParams.start + * + * @param {string} pattern The pattern to compile into a matcher. + * @param {Object} config A configuration object hash: + * @param {Object=} parentMatcher Used to concatenate the pattern/config onto + * an existing UrlMatcher + * + * * `caseInsensitive` - `true` if URL matching should be case insensitive, otherwise `false`, the default value (for backward compatibility) is `false`. + * * `strict` - `false` if matching against a URL with a trailing slash should be treated as equivalent to a URL without a trailing slash, the default value is `true`. + * + * @property {string} prefix A static prefix of this pattern. The matcher guarantees that any + * URL matching this matcher (i.e. any string for which {@link ui.router.util.type:UrlMatcher#methods_exec exec()} returns + * non-null) will start with this prefix. + * + * @property {string} source The pattern that was passed into the constructor + * + * @property {string} sourcePath The path portion of the source property + * + * @property {string} sourceSearch The search portion of the source property + * + * @property {string} regex The constructed regex that will be used to match against the url when + * it is time to determine which url will match. + * + * @returns {Object} New `UrlMatcher` object + */ +function UrlMatcher(pattern, config, parentMatcher) { + config = extend({ params: {} }, isObject(config) ? config : {}); + + // Find all placeholders and create a compiled pattern, using either classic or curly syntax: + // '*' name + // ':' name + // '{' name '}' + // '{' name ':' regexp '}' + // The regular expression is somewhat complicated due to the need to allow curly braces + // inside the regular expression. The placeholder regexp breaks down as follows: + // ([:*])([\w\[\]]+) - classic placeholder ($1 / $2) (search version has - for snake-case) + // \{([\w\[\]]+)(?:\:( ... ))?\} - curly brace placeholder ($3) with optional regexp/type ... ($4) (search version has - for snake-case + // (?: ... | ... | ... )+ - the regexp consists of any number of atoms, an atom being either + // [^{}\\]+ - anything other than curly braces or backslash + // \\. - a backslash escape + // \{(?:[^{}\\]+|\\.)*\} - a matched set of curly braces containing other atoms + var placeholder = /([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g, + searchPlaceholder = /([:]?)([\w\[\]-]+)|\{([\w\[\]-]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g, + compiled = '^', last = 0, m, + segments = this.segments = [], + parentParams = parentMatcher ? parentMatcher.params : {}, + params = this.params = parentMatcher ? parentMatcher.params.$$new() : new $$UMFP.ParamSet(), + paramNames = []; + + function addParameter(id, type, config, location) { + paramNames.push(id); + if (parentParams[id]) return parentParams[id]; + if (!/^\w+(-+\w+)*(?:\[\])?$/.test(id)) throw new Error("Invalid parameter name '" + id + "' in pattern '" + pattern + "'"); + if (params[id]) throw new Error("Duplicate parameter name '" + id + "' in pattern '" + pattern + "'"); + params[id] = new $$UMFP.Param(id, type, config, location); + return params[id]; + } + + function quoteRegExp(string, pattern, squash) { + var surroundPattern = ['',''], result = string.replace(/[\\\[\]\^$*+?.()|{}]/g, "\\$&"); + if (!pattern) return result; + switch(squash) { + case false: surroundPattern = ['(', ')']; break; + case true: surroundPattern = ['?(', ')?']; break; + default: surroundPattern = ['(' + squash + "|", ')?']; break; + } + return result + surroundPattern[0] + pattern + surroundPattern[1]; + } + + this.source = pattern; + + // Split into static segments separated by path parameter placeholders. + // The number of segments is always 1 more than the number of parameters. + function matchDetails(m, isSearch) { + var id, regexp, segment, type, cfg, arrayMode; + id = m[2] || m[3]; // IE[78] returns '' for unmatched groups instead of null + cfg = config.params[id]; + segment = pattern.substring(last, m.index); + regexp = isSearch ? m[4] : m[4] || (m[1] == '*' ? '.*' : null); + type = $$UMFP.type(regexp || "string") || inherit($$UMFP.type("string"), { pattern: new RegExp(regexp) }); + return { + id: id, regexp: regexp, segment: segment, type: type, cfg: cfg + }; + } + + var p, param, segment; + while ((m = placeholder.exec(pattern))) { + p = matchDetails(m, false); + if (p.segment.indexOf('?') >= 0) break; // we're into the search part + + param = addParameter(p.id, p.type, p.cfg, "path"); + compiled += quoteRegExp(p.segment, param.type.pattern.source, param.squash); + segments.push(p.segment); + last = placeholder.lastIndex; + } + segment = pattern.substring(last); + + // Find any search parameter names and remove them from the last segment + var i = segment.indexOf('?'); + + if (i >= 0) { + var search = this.sourceSearch = segment.substring(i); + segment = segment.substring(0, i); + this.sourcePath = pattern.substring(0, last + i); + + if (search.length > 0) { + last = 0; + while ((m = searchPlaceholder.exec(search))) { + p = matchDetails(m, true); + param = addParameter(p.id, p.type, p.cfg, "search"); + last = placeholder.lastIndex; + // check if ?& + } + } + } else { + this.sourcePath = pattern; + this.sourceSearch = ''; + } + + compiled += quoteRegExp(segment) + (config.strict === false ? '\/?' : '') + '$'; + segments.push(segment); + + this.regexp = new RegExp(compiled, config.caseInsensitive ? 'i' : undefined); + this.prefix = segments[0]; + this.$$paramNames = paramNames; +} + +/** + * @ngdoc function + * @name ui.router.util.type:UrlMatcher#concat + * @methodOf ui.router.util.type:UrlMatcher + * + * @description + * Returns a new matcher for a pattern constructed by appending the path part and adding the + * search parameters of the specified pattern to this pattern. The current pattern is not + * modified. This can be understood as creating a pattern for URLs that are relative to (or + * suffixes of) the current pattern. + * + * @example + * The following two matchers are equivalent: + *
    + * new UrlMatcher('/user/{id}?q').concat('/details?date');
    + * new UrlMatcher('/user/{id}/details?q&date');
    + * 
    + * + * @param {string} pattern The pattern to append. + * @param {Object} config An object hash of the configuration for the matcher. + * @returns {UrlMatcher} A matcher for the concatenated pattern. + */ +UrlMatcher.prototype.concat = function (pattern, config) { + // Because order of search parameters is irrelevant, we can add our own search + // parameters to the end of the new pattern. Parse the new pattern by itself + // and then join the bits together, but it's much easier to do this on a string level. + var defaultConfig = { + caseInsensitive: $$UMFP.caseInsensitive(), + strict: $$UMFP.strictMode(), + squash: $$UMFP.defaultSquashPolicy() + }; + return new UrlMatcher(this.sourcePath + pattern + this.sourceSearch, extend(defaultConfig, config), this); +}; + +UrlMatcher.prototype.toString = function () { + return this.source; +}; + +/** + * @ngdoc function + * @name ui.router.util.type:UrlMatcher#exec + * @methodOf ui.router.util.type:UrlMatcher + * + * @description + * Tests the specified path against this matcher, and returns an object containing the captured + * parameter values, or null if the path does not match. The returned object contains the values + * of any search parameters that are mentioned in the pattern, but their value may be null if + * they are not present in `searchParams`. This means that search parameters are always treated + * as optional. + * + * @example + *
    + * new UrlMatcher('/user/{id}?q&r').exec('/user/bob', {
    + *   x: '1', q: 'hello'
    + * });
    + * // returns { id: 'bob', q: 'hello', r: null }
    + * 
    + * + * @param {string} path The URL path to match, e.g. `$location.path()`. + * @param {Object} searchParams URL search parameters, e.g. `$location.search()`. + * @returns {Object} The captured parameter values. + */ +UrlMatcher.prototype.exec = function (path, searchParams) { + var m = this.regexp.exec(path); + if (!m) return null; + searchParams = searchParams || {}; + + var paramNames = this.parameters(), nTotal = paramNames.length, + nPath = this.segments.length - 1, + values = {}, i, j, cfg, paramName; + + if (nPath !== m.length - 1) throw new Error("Unbalanced capture group in route '" + this.source + "'"); + + function decodePathArray(string) { + function reverseString(str) { return str.split("").reverse().join(""); } + function unquoteDashes(str) { return str.replace(/\\-/, "-"); } + + var split = reverseString(string).split(/-(?!\\)/); + var allReversed = map(split, reverseString); + return map(allReversed, unquoteDashes).reverse(); + } + + for (i = 0; i < nPath; i++) { + paramName = paramNames[i]; + var param = this.params[paramName]; + var paramVal = m[i+1]; + // if the param value matches a pre-replace pair, replace the value before decoding. + for (j = 0; j < param.replace; j++) { + if (param.replace[j].from === paramVal) paramVal = param.replace[j].to; + } + if (paramVal && param.array === true) paramVal = decodePathArray(paramVal); + values[paramName] = param.value(paramVal); + } + for (/**/; i < nTotal; i++) { + paramName = paramNames[i]; + values[paramName] = this.params[paramName].value(searchParams[paramName]); + } + + return values; +}; + +/** + * @ngdoc function + * @name ui.router.util.type:UrlMatcher#parameters + * @methodOf ui.router.util.type:UrlMatcher + * + * @description + * Returns the names of all path and search parameters of this pattern in an unspecified order. + * + * @returns {Array.} An array of parameter names. Must be treated as read-only. If the + * pattern has no parameters, an empty array is returned. + */ +UrlMatcher.prototype.parameters = function (param) { + if (!isDefined(param)) return this.$$paramNames; + return this.params[param] || null; +}; + +/** + * @ngdoc function + * @name ui.router.util.type:UrlMatcher#validate + * @methodOf ui.router.util.type:UrlMatcher + * + * @description + * Checks an object hash of parameters to validate their correctness according to the parameter + * types of this `UrlMatcher`. + * + * @param {Object} params The object hash of parameters to validate. + * @returns {boolean} Returns `true` if `params` validates, otherwise `false`. + */ +UrlMatcher.prototype.validates = function (params) { + return this.params.$$validates(params); +}; + +/** + * @ngdoc function + * @name ui.router.util.type:UrlMatcher#format + * @methodOf ui.router.util.type:UrlMatcher + * + * @description + * Creates a URL that matches this pattern by substituting the specified values + * for the path and search parameters. Null values for path parameters are + * treated as empty strings. + * + * @example + *
    + * new UrlMatcher('/user/{id}?q').format({ id:'bob', q:'yes' });
    + * // returns '/user/bob?q=yes'
    + * 
    + * + * @param {Object} values the values to substitute for the parameters in this pattern. + * @returns {string} the formatted URL (path and optionally search part). + */ +UrlMatcher.prototype.format = function (values) { + values = values || {}; + var segments = this.segments, params = this.parameters(), paramset = this.params; + if (!this.validates(values)) return null; + + var i, search = false, nPath = segments.length - 1, nTotal = params.length, result = segments[0]; + + function encodeDashes(str) { // Replace dashes with encoded "\-" + return encodeURIComponent(str).replace(/-/g, function(c) { return '%5C%' + c.charCodeAt(0).toString(16).toUpperCase(); }); + } + + for (i = 0; i < nTotal; i++) { + var isPathParam = i < nPath; + var name = params[i], param = paramset[name], value = param.value(values[name]); + var isDefaultValue = param.isOptional && param.type.equals(param.value(), value); + var squash = isDefaultValue ? param.squash : false; + var encoded = param.type.encode(value); + + if (isPathParam) { + var nextSegment = segments[i + 1]; + if (squash === false) { + if (encoded != null) { + if (isArray(encoded)) { + result += map(encoded, encodeDashes).join("-"); + } else { + result += encodeURIComponent(encoded); + } + } + result += nextSegment; + } else if (squash === true) { + var capture = result.match(/\/$/) ? /\/?(.*)/ : /(.*)/; + result += nextSegment.match(capture)[1]; + } else if (isString(squash)) { + result += squash + nextSegment; + } + } else { + if (encoded == null || (isDefaultValue && squash !== false)) continue; + if (!isArray(encoded)) encoded = [ encoded ]; + encoded = map(encoded, encodeURIComponent).join('&' + name + '='); + result += (search ? '&' : '?') + (name + '=' + encoded); + search = true; + } + } + + return result; +}; + +/** + * @ngdoc object + * @name ui.router.util.type:Type + * + * @description + * Implements an interface to define custom parameter types that can be decoded from and encoded to + * string parameters matched in a URL. Used by {@link ui.router.util.type:UrlMatcher `UrlMatcher`} + * objects when matching or formatting URLs, or comparing or validating parameter values. + * + * See {@link ui.router.util.$urlMatcherFactory#methods_type `$urlMatcherFactory#type()`} for more + * information on registering custom types. + * + * @param {Object} config A configuration object which contains the custom type definition. The object's + * properties will override the default methods and/or pattern in `Type`'s public interface. + * @example + *
    + * {
    + *   decode: function(val) { return parseInt(val, 10); },
    + *   encode: function(val) { return val && val.toString(); },
    + *   equals: function(a, b) { return this.is(a) && a === b; },
    + *   is: function(val) { return angular.isNumber(val) isFinite(val) && val % 1 === 0; },
    + *   pattern: /\d+/
    + * }
    + * 
    + * + * @property {RegExp} pattern The regular expression pattern used to match values of this type when + * coming from a substring of a URL. + * + * @returns {Object} Returns a new `Type` object. + */ +function Type(config) { + extend(this, config); +} + +/** + * @ngdoc function + * @name ui.router.util.type:Type#is + * @methodOf ui.router.util.type:Type + * + * @description + * Detects whether a value is of a particular type. Accepts a native (decoded) value + * and determines whether it matches the current `Type` object. + * + * @param {*} val The value to check. + * @param {string} key Optional. If the type check is happening in the context of a specific + * {@link ui.router.util.type:UrlMatcher `UrlMatcher`} object, this is the name of the + * parameter in which `val` is stored. Can be used for meta-programming of `Type` objects. + * @returns {Boolean} Returns `true` if the value matches the type, otherwise `false`. + */ +Type.prototype.is = function(val, key) { + return true; +}; + +/** + * @ngdoc function + * @name ui.router.util.type:Type#encode + * @methodOf ui.router.util.type:Type + * + * @description + * Encodes a custom/native type value to a string that can be embedded in a URL. Note that the + * return value does *not* need to be URL-safe (i.e. passed through `encodeURIComponent()`), it + * only needs to be a representation of `val` that has been coerced to a string. + * + * @param {*} val The value to encode. + * @param {string} key The name of the parameter in which `val` is stored. Can be used for + * meta-programming of `Type` objects. + * @returns {string} Returns a string representation of `val` that can be encoded in a URL. + */ +Type.prototype.encode = function(val, key) { + return val; +}; + +/** + * @ngdoc function + * @name ui.router.util.type:Type#decode + * @methodOf ui.router.util.type:Type + * + * @description + * Converts a parameter value (from URL string or transition param) to a custom/native value. + * + * @param {string} val The URL parameter value to decode. + * @param {string} key The name of the parameter in which `val` is stored. Can be used for + * meta-programming of `Type` objects. + * @returns {*} Returns a custom representation of the URL parameter value. + */ +Type.prototype.decode = function(val, key) { + return val; +}; + +/** + * @ngdoc function + * @name ui.router.util.type:Type#equals + * @methodOf ui.router.util.type:Type + * + * @description + * Determines whether two decoded values are equivalent. + * + * @param {*} a A value to compare against. + * @param {*} b A value to compare against. + * @returns {Boolean} Returns `true` if the values are equivalent/equal, otherwise `false`. + */ +Type.prototype.equals = function(a, b) { + return a == b; +}; + +Type.prototype.$subPattern = function() { + var sub = this.pattern.toString(); + return sub.substr(1, sub.length - 2); +}; + +Type.prototype.pattern = /.*/; + +Type.prototype.toString = function() { return "{Type:" + this.name + "}"; }; + +/* + * Wraps an existing custom Type as an array of Type, depending on 'mode'. + * e.g.: + * - urlmatcher pattern "/path?{queryParam[]:int}" + * - url: "/path?queryParam=1&queryParam=2 + * - $stateParams.queryParam will be [1, 2] + * if `mode` is "auto", then + * - url: "/path?queryParam=1 will create $stateParams.queryParam: 1 + * - url: "/path?queryParam=1&queryParam=2 will create $stateParams.queryParam: [1, 2] + */ +Type.prototype.$asArray = function(mode, isSearch) { + if (!mode) return this; + if (mode === "auto" && !isSearch) throw new Error("'auto' array mode is for query parameters only"); + return new ArrayType(this, mode); + + function ArrayType(type, mode) { + function bindTo(type, callbackName) { + return function() { + return type[callbackName].apply(type, arguments); + }; + } + + // Wrap non-array value as array + function arrayWrap(val) { return isArray(val) ? val : (isDefined(val) ? [ val ] : []); } + // Unwrap array value for "auto" mode. Return undefined for empty array. + function arrayUnwrap(val) { + switch(val.length) { + case 0: return undefined; + case 1: return mode === "auto" ? val[0] : val; + default: return val; + } + } + function falsey(val) { return !val; } + + // Wraps type (.is/.encode/.decode) functions to operate on each value of an array + function arrayHandler(callback, allTruthyMode) { + return function handleArray(val) { + val = arrayWrap(val); + var result = map(val, callback); + if (allTruthyMode === true) + return filter(result, falsey).length === 0; + return arrayUnwrap(result); + }; + } + + // Wraps type (.equals) functions to operate on each value of an array + function arrayEqualsHandler(callback) { + return function handleArray(val1, val2) { + var left = arrayWrap(val1), right = arrayWrap(val2); + if (left.length !== right.length) return false; + for (var i = 0; i < left.length; i++) { + if (!callback(left[i], right[i])) return false; + } + return true; + }; + } + + this.encode = arrayHandler(bindTo(type, 'encode')); + this.decode = arrayHandler(bindTo(type, 'decode')); + this.is = arrayHandler(bindTo(type, 'is'), true); + this.equals = arrayEqualsHandler(bindTo(type, 'equals')); + this.pattern = type.pattern; + this.$arrayMode = mode; + } +}; + + + +/** + * @ngdoc object + * @name ui.router.util.$urlMatcherFactory + * + * @description + * Factory for {@link ui.router.util.type:UrlMatcher `UrlMatcher`} instances. The factory + * is also available to providers under the name `$urlMatcherFactoryProvider`. + */ +function $UrlMatcherFactory() { + $$UMFP = this; + + var isCaseInsensitive = false, isStrictMode = true, defaultSquashPolicy = false; + + function valToString(val) { return val != null ? val.toString().replace(/\//g, "%2F") : val; } + function valFromString(val) { return val != null ? val.toString().replace(/%2F/g, "/") : val; } +// TODO: in 1.0, make string .is() return false if value is undefined by default. +// function regexpMatches(val) { /*jshint validthis:true */ return isDefined(val) && this.pattern.test(val); } + function regexpMatches(val) { /*jshint validthis:true */ return this.pattern.test(val); } + + var $types = {}, enqueue = true, typeQueue = [], injector, defaultTypes = { + string: { + encode: valToString, + decode: valFromString, + is: regexpMatches, + pattern: /[^/]*/ + }, + int: { + encode: valToString, + decode: function(val) { return parseInt(val, 10); }, + is: function(val) { return isDefined(val) && this.decode(val.toString()) === val; }, + pattern: /\d+/ + }, + bool: { + encode: function(val) { return val ? 1 : 0; }, + decode: function(val) { return parseInt(val, 10) !== 0; }, + is: function(val) { return val === true || val === false; }, + pattern: /0|1/ + }, + date: { + encode: function (val) { + if (!this.is(val)) + return undefined; + return [ val.getFullYear(), + ('0' + (val.getMonth() + 1)).slice(-2), + ('0' + val.getDate()).slice(-2) + ].join("-"); + }, + decode: function (val) { + if (this.is(val)) return val; + var match = this.capture.exec(val); + return match ? new Date(match[1], match[2] - 1, match[3]) : undefined; + }, + is: function(val) { return val instanceof Date && !isNaN(val.valueOf()); }, + equals: function (a, b) { return this.is(a) && this.is(b) && a.toISOString() === b.toISOString(); }, + pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/, + capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/ + }, + json: { + encode: angular.toJson, + decode: angular.fromJson, + is: angular.isObject, + equals: angular.equals, + pattern: /[^/]*/ + }, + any: { // does not encode/decode + encode: angular.identity, + decode: angular.identity, + is: angular.identity, + equals: angular.equals, + pattern: /.*/ + } + }; + + function getDefaultConfig() { + return { + strict: isStrictMode, + caseInsensitive: isCaseInsensitive + }; + } + + function isInjectable(value) { + return (isFunction(value) || (isArray(value) && isFunction(value[value.length - 1]))); + } + + /** + * [Internal] Get the default value of a parameter, which may be an injectable function. + */ + $UrlMatcherFactory.$$getDefaultValue = function(config) { + if (!isInjectable(config.value)) return config.value; + if (!injector) throw new Error("Injectable functions cannot be called at configuration time"); + return injector.invoke(config.value); + }; + + /** + * @ngdoc function + * @name ui.router.util.$urlMatcherFactory#caseInsensitive + * @methodOf ui.router.util.$urlMatcherFactory + * + * @description + * Defines whether URL matching should be case sensitive (the default behavior), or not. + * + * @param {boolean} value `false` to match URL in a case sensitive manner; otherwise `true`; + * @returns {boolean} the current value of caseInsensitive + */ + this.caseInsensitive = function(value) { + if (isDefined(value)) + isCaseInsensitive = value; + return isCaseInsensitive; + }; + + /** + * @ngdoc function + * @name ui.router.util.$urlMatcherFactory#strictMode + * @methodOf ui.router.util.$urlMatcherFactory + * + * @description + * Defines whether URLs should match trailing slashes, or not (the default behavior). + * + * @param {boolean=} value `false` to match trailing slashes in URLs, otherwise `true`. + * @returns {boolean} the current value of strictMode + */ + this.strictMode = function(value) { + if (isDefined(value)) + isStrictMode = value; + return isStrictMode; + }; + + /** + * @ngdoc function + * @name ui.router.util.$urlMatcherFactory#defaultSquashPolicy + * @methodOf ui.router.util.$urlMatcherFactory + * + * @description + * Sets the default behavior when generating or matching URLs with default parameter values. + * + * @param {string} value A string that defines the default parameter URL squashing behavior. + * `nosquash`: When generating an href with a default parameter value, do not squash the parameter value from the URL + * `slash`: When generating an href with a default parameter value, squash (remove) the parameter value, and, if the + * parameter is surrounded by slashes, squash (remove) one slash from the URL + * any other string, e.g. "~": When generating an href with a default parameter value, squash (remove) + * the parameter value from the URL and replace it with this string. + */ + this.defaultSquashPolicy = function(value) { + if (!isDefined(value)) return defaultSquashPolicy; + if (value !== true && value !== false && !isString(value)) + throw new Error("Invalid squash policy: " + value + ". Valid policies: false, true, arbitrary-string"); + defaultSquashPolicy = value; + return value; + }; + + /** + * @ngdoc function + * @name ui.router.util.$urlMatcherFactory#compile + * @methodOf ui.router.util.$urlMatcherFactory + * + * @description + * Creates a {@link ui.router.util.type:UrlMatcher `UrlMatcher`} for the specified pattern. + * + * @param {string} pattern The URL pattern. + * @param {Object} config The config object hash. + * @returns {UrlMatcher} The UrlMatcher. + */ + this.compile = function (pattern, config) { + return new UrlMatcher(pattern, extend(getDefaultConfig(), config)); + }; + + /** + * @ngdoc function + * @name ui.router.util.$urlMatcherFactory#isMatcher + * @methodOf ui.router.util.$urlMatcherFactory + * + * @description + * Returns true if the specified object is a `UrlMatcher`, or false otherwise. + * + * @param {Object} object The object to perform the type check against. + * @returns {Boolean} Returns `true` if the object matches the `UrlMatcher` interface, by + * implementing all the same methods. + */ + this.isMatcher = function (o) { + if (!isObject(o)) return false; + var result = true; + + forEach(UrlMatcher.prototype, function(val, name) { + if (isFunction(val)) { + result = result && (isDefined(o[name]) && isFunction(o[name])); + } + }); + return result; + }; + + /** + * @ngdoc function + * @name ui.router.util.$urlMatcherFactory#type + * @methodOf ui.router.util.$urlMatcherFactory + * + * @description + * Registers a custom {@link ui.router.util.type:Type `Type`} object that can be used to + * generate URLs with typed parameters. + * + * @param {string} name The type name. + * @param {Object|Function} definition The type definition. See + * {@link ui.router.util.type:Type `Type`} for information on the values accepted. + * @param {Object|Function} definitionFn (optional) A function that is injected before the app + * runtime starts. The result of this function is merged into the existing `definition`. + * See {@link ui.router.util.type:Type `Type`} for information on the values accepted. + * + * @returns {Object} Returns `$urlMatcherFactoryProvider`. + * + * @example + * This is a simple example of a custom type that encodes and decodes items from an + * array, using the array index as the URL-encoded value: + * + *
    +   * var list = ['John', 'Paul', 'George', 'Ringo'];
    +   *
    +   * $urlMatcherFactoryProvider.type('listItem', {
    +   *   encode: function(item) {
    +   *     // Represent the list item in the URL using its corresponding index
    +   *     return list.indexOf(item);
    +   *   },
    +   *   decode: function(item) {
    +   *     // Look up the list item by index
    +   *     return list[parseInt(item, 10)];
    +   *   },
    +   *   is: function(item) {
    +   *     // Ensure the item is valid by checking to see that it appears
    +   *     // in the list
    +   *     return list.indexOf(item) > -1;
    +   *   }
    +   * });
    +   *
    +   * $stateProvider.state('list', {
    +   *   url: "/list/{item:listItem}",
    +   *   controller: function($scope, $stateParams) {
    +   *     console.log($stateParams.item);
    +   *   }
    +   * });
    +   *
    +   * // ...
    +   *
    +   * // Changes URL to '/list/3', logs "Ringo" to the console
    +   * $state.go('list', { item: "Ringo" });
    +   * 
    + * + * This is a more complex example of a type that relies on dependency injection to + * interact with services, and uses the parameter name from the URL to infer how to + * handle encoding and decoding parameter values: + * + *
    +   * // Defines a custom type that gets a value from a service,
    +   * // where each service gets different types of values from
    +   * // a backend API:
    +   * $urlMatcherFactoryProvider.type('dbObject', {}, function(Users, Posts) {
    +   *
    +   *   // Matches up services to URL parameter names
    +   *   var services = {
    +   *     user: Users,
    +   *     post: Posts
    +   *   };
    +   *
    +   *   return {
    +   *     encode: function(object) {
    +   *       // Represent the object in the URL using its unique ID
    +   *       return object.id;
    +   *     },
    +   *     decode: function(value, key) {
    +   *       // Look up the object by ID, using the parameter
    +   *       // name (key) to call the correct service
    +   *       return services[key].findById(value);
    +   *     },
    +   *     is: function(object, key) {
    +   *       // Check that object is a valid dbObject
    +   *       return angular.isObject(object) && object.id && services[key];
    +   *     }
    +   *     equals: function(a, b) {
    +   *       // Check the equality of decoded objects by comparing
    +   *       // their unique IDs
    +   *       return a.id === b.id;
    +   *     }
    +   *   };
    +   * });
    +   *
    +   * // In a config() block, you can then attach URLs with
    +   * // type-annotated parameters:
    +   * $stateProvider.state('users', {
    +   *   url: "/users",
    +   *   // ...
    +   * }).state('users.item', {
    +   *   url: "/{user:dbObject}",
    +   *   controller: function($scope, $stateParams) {
    +   *     // $stateParams.user will now be an object returned from
    +   *     // the Users service
    +   *   },
    +   *   // ...
    +   * });
    +   * 
    + */ + this.type = function (name, definition, definitionFn) { + if (!isDefined(definition)) return $types[name]; + if ($types.hasOwnProperty(name)) throw new Error("A type named '" + name + "' has already been defined."); + + $types[name] = new Type(extend({ name: name }, definition)); + if (definitionFn) { + typeQueue.push({ name: name, def: definitionFn }); + if (!enqueue) flushTypeQueue(); + } + return this; + }; + + // `flushTypeQueue()` waits until `$urlMatcherFactory` is injected before invoking the queued `definitionFn`s + function flushTypeQueue() { + while(typeQueue.length) { + var type = typeQueue.shift(); + if (type.pattern) throw new Error("You cannot override a type's .pattern at runtime."); + angular.extend($types[type.name], injector.invoke(type.def)); + } + } + + // Register default types. Store them in the prototype of $types. + forEach(defaultTypes, function(type, name) { $types[name] = new Type(extend({name: name}, type)); }); + $types = inherit($types, {}); + + /* No need to document $get, since it returns this */ + this.$get = ['$injector', function ($injector) { + injector = $injector; + enqueue = false; + flushTypeQueue(); + + forEach(defaultTypes, function(type, name) { + if (!$types[name]) $types[name] = new Type(type); + }); + return this; + }]; + + this.Param = function Param(id, type, config, location) { + var self = this; + config = unwrapShorthand(config); + type = getType(config, type, location); + var arrayMode = getArrayMode(); + type = arrayMode ? type.$asArray(arrayMode, location === "search") : type; + if (type.name === "string" && !arrayMode && location === "path" && config.value === undefined) + config.value = ""; // for 0.2.x; in 0.3.0+ do not automatically default to "" + var isOptional = config.value !== undefined; + var squash = getSquashPolicy(config, isOptional); + var replace = getReplace(config, arrayMode, isOptional, squash); + + function unwrapShorthand(config) { + var keys = isObject(config) ? objectKeys(config) : []; + var isShorthand = indexOf(keys, "value") === -1 && indexOf(keys, "type") === -1 && + indexOf(keys, "squash") === -1 && indexOf(keys, "array") === -1; + if (isShorthand) config = { value: config }; + config.$$fn = isInjectable(config.value) ? config.value : function () { return config.value; }; + return config; + } + + function getType(config, urlType, location) { + if (config.type && urlType) throw new Error("Param '"+id+"' has two type configurations."); + if (urlType) return urlType; + if (!config.type) return (location === "config" ? $types.any : $types.string); + return config.type instanceof Type ? config.type : new Type(config.type); + } + + // array config: param name (param[]) overrides default settings. explicit config overrides param name. + function getArrayMode() { + var arrayDefaults = { array: (location === "search" ? "auto" : false) }; + var arrayParamNomenclature = id.match(/\[\]$/) ? { array: true } : {}; + return extend(arrayDefaults, arrayParamNomenclature, config).array; + } + + /** + * returns false, true, or the squash value to indicate the "default parameter url squash policy". + */ + function getSquashPolicy(config, isOptional) { + var squash = config.squash; + if (!isOptional || squash === false) return false; + if (!isDefined(squash) || squash == null) return defaultSquashPolicy; + if (squash === true || isString(squash)) return squash; + throw new Error("Invalid squash policy: '" + squash + "'. Valid policies: false, true, or arbitrary string"); + } + + function getReplace(config, arrayMode, isOptional, squash) { + var replace, configuredKeys, defaultPolicy = [ + { from: "", to: (isOptional || arrayMode ? undefined : "") }, + { from: null, to: (isOptional || arrayMode ? undefined : "") } + ]; + replace = isArray(config.replace) ? config.replace : []; + if (isString(squash)) + replace.push({ from: squash, to: undefined }); + configuredKeys = map(replace, function(item) { return item.from; } ); + return filter(defaultPolicy, function(item) { return indexOf(configuredKeys, item.from) === -1; }).concat(replace); + } + + /** + * [Internal] Get the default value of a parameter, which may be an injectable function. + */ + function $$getDefaultValue() { + if (!injector) throw new Error("Injectable functions cannot be called at configuration time"); + return injector.invoke(config.$$fn); + } + + /** + * [Internal] Gets the decoded representation of a value if the value is defined, otherwise, returns the + * default value, which may be the result of an injectable function. + */ + function $value(value) { + function hasReplaceVal(val) { return function(obj) { return obj.from === val; }; } + function $replace(value) { + var replacement = map(filter(self.replace, hasReplaceVal(value)), function(obj) { return obj.to; }); + return replacement.length ? replacement[0] : value; + } + value = $replace(value); + return isDefined(value) ? self.type.decode(value) : $$getDefaultValue(); + } + + function toString() { return "{Param:" + id + " " + type + " squash: '" + squash + "' optional: " + isOptional + "}"; } + + extend(this, { + id: id, + type: type, + location: location, + array: arrayMode, + squash: squash, + replace: replace, + isOptional: isOptional, + value: $value, + dynamic: undefined, + config: config, + toString: toString + }); + }; + + function ParamSet(params) { + extend(this, params || {}); + } + + ParamSet.prototype = { + $$new: function() { + return inherit(this, extend(new ParamSet(), { $$parent: this})); + }, + $$keys: function () { + var keys = [], chain = [], parent = this, + ignore = objectKeys(ParamSet.prototype); + while (parent) { chain.push(parent); parent = parent.$$parent; } + chain.reverse(); + forEach(chain, function(paramset) { + forEach(objectKeys(paramset), function(key) { + if (indexOf(keys, key) === -1 && indexOf(ignore, key) === -1) keys.push(key); + }); + }); + return keys; + }, + $$values: function(paramValues) { + var values = {}, self = this; + forEach(self.$$keys(), function(key) { + values[key] = self[key].value(paramValues && paramValues[key]); + }); + return values; + }, + $$equals: function(paramValues1, paramValues2) { + var equal = true, self = this; + forEach(self.$$keys(), function(key) { + var left = paramValues1 && paramValues1[key], right = paramValues2 && paramValues2[key]; + if (!self[key].type.equals(left, right)) equal = false; + }); + return equal; + }, + $$validates: function $$validate(paramValues) { + var result = true, isOptional, val, param, self = this; + + forEach(this.$$keys(), function(key) { + param = self[key]; + val = paramValues[key]; + isOptional = !val && param.isOptional; + result = result && (isOptional || !!param.type.is(val)); + }); + return result; + }, + $$parent: undefined + }; + + this.ParamSet = ParamSet; +} + +// Register as a provider so it's available to other providers +angular.module('ui.router.util').provider('$urlMatcherFactory', $UrlMatcherFactory); +angular.module('ui.router.util').run(['$urlMatcherFactory', function($urlMatcherFactory) { }]); + +/** + * @ngdoc object + * @name ui.router.router.$urlRouterProvider + * + * @requires ui.router.util.$urlMatcherFactoryProvider + * @requires $locationProvider + * + * @description + * `$urlRouterProvider` has the responsibility of watching `$location`. + * When `$location` changes it runs through a list of rules one by one until a + * match is found. `$urlRouterProvider` is used behind the scenes anytime you specify + * a url in a state configuration. All urls are compiled into a UrlMatcher object. + * + * There are several methods on `$urlRouterProvider` that make it useful to use directly + * in your module config. + */ +$UrlRouterProvider.$inject = ['$locationProvider', '$urlMatcherFactoryProvider']; +function $UrlRouterProvider( $locationProvider, $urlMatcherFactory) { + var rules = [], otherwise = null, interceptDeferred = false, listener; + + // Returns a string that is a prefix of all strings matching the RegExp + function regExpPrefix(re) { + var prefix = /^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(re.source); + return (prefix != null) ? prefix[1].replace(/\\(.)/g, "$1") : ''; + } + + // Interpolates matched values into a String.replace()-style pattern + function interpolate(pattern, match) { + return pattern.replace(/\$(\$|\d{1,2})/, function (m, what) { + return match[what === '$' ? 0 : Number(what)]; + }); + } + + /** + * @ngdoc function + * @name ui.router.router.$urlRouterProvider#rule + * @methodOf ui.router.router.$urlRouterProvider + * + * @description + * Defines rules that are used by `$urlRouterProvider` to find matches for + * specific URLs. + * + * @example + *
    +   * var app = angular.module('app', ['ui.router.router']);
    +   *
    +   * app.config(function ($urlRouterProvider) {
    +   *   // Here's an example of how you might allow case insensitive urls
    +   *   $urlRouterProvider.rule(function ($injector, $location) {
    +   *     var path = $location.path(),
    +   *         normalized = path.toLowerCase();
    +   *
    +   *     if (path !== normalized) {
    +   *       return normalized;
    +   *     }
    +   *   });
    +   * });
    +   * 
    + * + * @param {object} rule Handler function that takes `$injector` and `$location` + * services as arguments. You can use them to return a valid path as a string. + * + * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance + */ + this.rule = function (rule) { + if (!isFunction(rule)) throw new Error("'rule' must be a function"); + rules.push(rule); + return this; + }; + + /** + * @ngdoc object + * @name ui.router.router.$urlRouterProvider#otherwise + * @methodOf ui.router.router.$urlRouterProvider + * + * @description + * Defines a path that is used when an invalid route is requested. + * + * @example + *
    +   * var app = angular.module('app', ['ui.router.router']);
    +   *
    +   * app.config(function ($urlRouterProvider) {
    +   *   // if the path doesn't match any of the urls you configured
    +   *   // otherwise will take care of routing the user to the
    +   *   // specified url
    +   *   $urlRouterProvider.otherwise('/index');
    +   *
    +   *   // Example of using function rule as param
    +   *   $urlRouterProvider.otherwise(function ($injector, $location) {
    +   *     return '/a/valid/url';
    +   *   });
    +   * });
    +   * 
    + * + * @param {string|object} rule The url path you want to redirect to or a function + * rule that returns the url path. The function version is passed two params: + * `$injector` and `$location` services, and must return a url string. + * + * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance + */ + this.otherwise = function (rule) { + if (isString(rule)) { + var redirect = rule; + rule = function () { return redirect; }; + } + else if (!isFunction(rule)) throw new Error("'rule' must be a function"); + otherwise = rule; + return this; + }; + + + function handleIfMatch($injector, handler, match) { + if (!match) return false; + var result = $injector.invoke(handler, handler, { $match: match }); + return isDefined(result) ? result : true; + } + + /** + * @ngdoc function + * @name ui.router.router.$urlRouterProvider#when + * @methodOf ui.router.router.$urlRouterProvider + * + * @description + * Registers a handler for a given url matching. if handle is a string, it is + * treated as a redirect, and is interpolated according to the syntax of match + * (i.e. like `String.replace()` for `RegExp`, or like a `UrlMatcher` pattern otherwise). + * + * If the handler is a function, it is injectable. It gets invoked if `$location` + * matches. You have the option of inject the match object as `$match`. + * + * The handler can return + * + * - **falsy** to indicate that the rule didn't match after all, then `$urlRouter` + * will continue trying to find another one that matches. + * - **string** which is treated as a redirect and passed to `$location.url()` + * - **void** or any **truthy** value tells `$urlRouter` that the url was handled. + * + * @example + *
    +   * var app = angular.module('app', ['ui.router.router']);
    +   *
    +   * app.config(function ($urlRouterProvider) {
    +   *   $urlRouterProvider.when($state.url, function ($match, $stateParams) {
    +   *     if ($state.$current.navigable !== state ||
    +   *         !equalForKeys($match, $stateParams) {
    +   *      $state.transitionTo(state, $match, false);
    +   *     }
    +   *   });
    +   * });
    +   * 
    + * + * @param {string|object} what The incoming path that you want to redirect. + * @param {string|object} handler The path you want to redirect your user to. + */ + this.when = function (what, handler) { + var redirect, handlerIsString = isString(handler); + if (isString(what)) what = $urlMatcherFactory.compile(what); + + if (!handlerIsString && !isFunction(handler) && !isArray(handler)) + throw new Error("invalid 'handler' in when()"); + + var strategies = { + matcher: function (what, handler) { + if (handlerIsString) { + redirect = $urlMatcherFactory.compile(handler); + handler = ['$match', function ($match) { return redirect.format($match); }]; + } + return extend(function ($injector, $location) { + return handleIfMatch($injector, handler, what.exec($location.path(), $location.search())); + }, { + prefix: isString(what.prefix) ? what.prefix : '' + }); + }, + regex: function (what, handler) { + if (what.global || what.sticky) throw new Error("when() RegExp must not be global or sticky"); + + if (handlerIsString) { + redirect = handler; + handler = ['$match', function ($match) { return interpolate(redirect, $match); }]; + } + return extend(function ($injector, $location) { + return handleIfMatch($injector, handler, what.exec($location.path())); + }, { + prefix: regExpPrefix(what) + }); + } + }; + + var check = { matcher: $urlMatcherFactory.isMatcher(what), regex: what instanceof RegExp }; + + for (var n in check) { + if (check[n]) return this.rule(strategies[n](what, handler)); + } + + throw new Error("invalid 'what' in when()"); + }; + + /** + * @ngdoc function + * @name ui.router.router.$urlRouterProvider#deferIntercept + * @methodOf ui.router.router.$urlRouterProvider + * + * @description + * Disables (or enables) deferring location change interception. + * + * If you wish to customize the behavior of syncing the URL (for example, if you wish to + * defer a transition but maintain the current URL), call this method at configuration time. + * Then, at run time, call `$urlRouter.listen()` after you have configured your own + * `$locationChangeSuccess` event handler. + * + * @example + *
    +   * var app = angular.module('app', ['ui.router.router']);
    +   *
    +   * app.config(function ($urlRouterProvider) {
    +   *
    +   *   // Prevent $urlRouter from automatically intercepting URL changes;
    +   *   // this allows you to configure custom behavior in between
    +   *   // location changes and route synchronization:
    +   *   $urlRouterProvider.deferIntercept();
    +   *
    +   * }).run(function ($rootScope, $urlRouter, UserService) {
    +   *
    +   *   $rootScope.$on('$locationChangeSuccess', function(e) {
    +   *     // UserService is an example service for managing user state
    +   *     if (UserService.isLoggedIn()) return;
    +   *
    +   *     // Prevent $urlRouter's default handler from firing
    +   *     e.preventDefault();
    +   *
    +   *     UserService.handleLogin().then(function() {
    +   *       // Once the user has logged in, sync the current URL
    +   *       // to the router:
    +   *       $urlRouter.sync();
    +   *     });
    +   *   });
    +   *
    +   *   // Configures $urlRouter's listener *after* your custom listener
    +   *   $urlRouter.listen();
    +   * });
    +   * 
    + * + * @param {boolean} defer Indicates whether to defer location change interception. Passing + no parameter is equivalent to `true`. + */ + this.deferIntercept = function (defer) { + if (defer === undefined) defer = true; + interceptDeferred = defer; + }; + + /** + * @ngdoc object + * @name ui.router.router.$urlRouter + * + * @requires $location + * @requires $rootScope + * @requires $injector + * @requires $browser + * + * @description + * + */ + this.$get = $get; + $get.$inject = ['$location', '$rootScope', '$injector', '$browser']; + function $get( $location, $rootScope, $injector, $browser) { + + var baseHref = $browser.baseHref(), location = $location.url(), lastPushedUrl; + + function appendBasePath(url, isHtml5, absolute) { + if (baseHref === '/') return url; + if (isHtml5) return baseHref.slice(0, -1) + url; + if (absolute) return baseHref.slice(1) + url; + return url; + } + + // TODO: Optimize groups of rules with non-empty prefix into some sort of decision tree + function update(evt) { + if (evt && evt.defaultPrevented) return; + var ignoreUpdate = lastPushedUrl && $location.url() === lastPushedUrl; + lastPushedUrl = undefined; + if (ignoreUpdate) return true; + + function check(rule) { + var handled = rule($injector, $location); + + if (!handled) return false; + if (isString(handled)) $location.replace().url(handled); + return true; + } + var n = rules.length, i; + + for (i = 0; i < n; i++) { + if (check(rules[i])) return; + } + // always check otherwise last to allow dynamic updates to the set of rules + if (otherwise) check(otherwise); + } + + function listen() { + listener = listener || $rootScope.$on('$locationChangeSuccess', update); + return listener; + } + + if (!interceptDeferred) listen(); + + return { + /** + * @ngdoc function + * @name ui.router.router.$urlRouter#sync + * @methodOf ui.router.router.$urlRouter + * + * @description + * Triggers an update; the same update that happens when the address bar url changes, aka `$locationChangeSuccess`. + * This method is useful when you need to use `preventDefault()` on the `$locationChangeSuccess` event, + * perform some custom logic (route protection, auth, config, redirection, etc) and then finally proceed + * with the transition by calling `$urlRouter.sync()`. + * + * @example + *
    +       * angular.module('app', ['ui.router'])
    +       *   .run(function($rootScope, $urlRouter) {
    +       *     $rootScope.$on('$locationChangeSuccess', function(evt) {
    +       *       // Halt state change from even starting
    +       *       evt.preventDefault();
    +       *       // Perform custom logic
    +       *       var meetsRequirement = ...
    +       *       // Continue with the update and state transition if logic allows
    +       *       if (meetsRequirement) $urlRouter.sync();
    +       *     });
    +       * });
    +       * 
    + */ + sync: function() { + update(); + }, + + listen: function() { + return listen(); + }, + + update: function(read) { + if (read) { + location = $location.url(); + return; + } + if ($location.url() === location) return; + + $location.url(location); + $location.replace(); + }, + + push: function(urlMatcher, params, options) { + $location.url(urlMatcher.format(params || {})); + lastPushedUrl = options && options.$$avoidResync ? $location.url() : undefined; + if (options && options.replace) $location.replace(); + }, + + /** + * @ngdoc function + * @name ui.router.router.$urlRouter#href + * @methodOf ui.router.router.$urlRouter + * + * @description + * A URL generation method that returns the compiled URL for a given + * {@link ui.router.util.type:UrlMatcher `UrlMatcher`}, populated with the provided parameters. + * + * @example + *
    +       * $bob = $urlRouter.href(new UrlMatcher("/about/:person"), {
    +       *   person: "bob"
    +       * });
    +       * // $bob == "/about/bob";
    +       * 
    + * + * @param {UrlMatcher} urlMatcher The `UrlMatcher` object which is used as the template of the URL to generate. + * @param {object=} params An object of parameter values to fill the matcher's required parameters. + * @param {object=} options Options object. The options are: + * + * - **`absolute`** - {boolean=false}, If true will generate an absolute url, e.g. "http://www.example.com/fullurl". + * + * @returns {string} Returns the fully compiled URL, or `null` if `params` fail validation against `urlMatcher` + */ + href: function(urlMatcher, params, options) { + if (!urlMatcher.validates(params)) return null; + + var isHtml5 = $locationProvider.html5Mode(); + if (angular.isObject(isHtml5)) { + isHtml5 = isHtml5.enabled; + } + + var url = urlMatcher.format(params); + options = options || {}; + + if (!isHtml5 && url !== null) { + url = "#" + $locationProvider.hashPrefix() + url; + } + url = appendBasePath(url, isHtml5, options.absolute); + + if (!options.absolute || !url) { + return url; + } + + var slash = (!isHtml5 && url ? '/' : ''), port = $location.port(); + port = (port === 80 || port === 443 ? '' : ':' + port); + + return [$location.protocol(), '://', $location.host(), port, slash, url].join(''); + } + }; + } +} + +angular.module('ui.router.router').provider('$urlRouter', $UrlRouterProvider); + +/** + * @ngdoc object + * @name ui.router.state.$stateProvider + * + * @requires ui.router.router.$urlRouterProvider + * @requires ui.router.util.$urlMatcherFactoryProvider + * + * @description + * The new `$stateProvider` works similar to Angular's v1 router, but it focuses purely + * on state. + * + * A state corresponds to a "place" in the application in terms of the overall UI and + * navigation. A state describes (via the controller / template / view properties) what + * the UI looks like and does at that place. + * + * States often have things in common, and the primary way of factoring out these + * commonalities in this model is via the state hierarchy, i.e. parent/child states aka + * nested states. + * + * The `$stateProvider` provides interfaces to declare these states for your app. + */ +$StateProvider.$inject = ['$urlRouterProvider', '$urlMatcherFactoryProvider']; +function $StateProvider( $urlRouterProvider, $urlMatcherFactory) { + + var root, states = {}, $state, queue = {}, abstractKey = 'abstract'; + + // Builds state properties from definition passed to registerState() + var stateBuilder = { + + // Derive parent state from a hierarchical name only if 'parent' is not explicitly defined. + // state.children = []; + // if (parent) parent.children.push(state); + parent: function(state) { + if (isDefined(state.parent) && state.parent) return findState(state.parent); + // regex matches any valid composite state name + // would match "contact.list" but not "contacts" + var compositeName = /^(.+)\.[^.]+$/.exec(state.name); + return compositeName ? findState(compositeName[1]) : root; + }, + + // inherit 'data' from parent and override by own values (if any) + data: function(state) { + if (state.parent && state.parent.data) { + state.data = state.self.data = extend({}, state.parent.data, state.data); + } + return state.data; + }, + + // Build a URLMatcher if necessary, either via a relative or absolute URL + url: function(state) { + var url = state.url, config = { params: state.params || {} }; + + if (isString(url)) { + if (url.charAt(0) == '^') return $urlMatcherFactory.compile(url.substring(1), config); + return (state.parent.navigable || root).url.concat(url, config); + } + + if (!url || $urlMatcherFactory.isMatcher(url)) return url; + throw new Error("Invalid url '" + url + "' in state '" + state + "'"); + }, + + // Keep track of the closest ancestor state that has a URL (i.e. is navigable) + navigable: function(state) { + return state.url ? state : (state.parent ? state.parent.navigable : null); + }, + + // Own parameters for this state. state.url.params is already built at this point. Create and add non-url params + ownParams: function(state) { + var params = state.url && state.url.params || new $$UMFP.ParamSet(); + forEach(state.params || {}, function(config, id) { + if (!params[id]) params[id] = new $$UMFP.Param(id, null, config, "config"); + }); + return params; + }, + + // Derive parameters for this state and ensure they're a super-set of parent's parameters + params: function(state) { + return state.parent && state.parent.params ? extend(state.parent.params.$$new(), state.ownParams) : new $$UMFP.ParamSet(); + }, + + // If there is no explicit multi-view configuration, make one up so we don't have + // to handle both cases in the view directive later. Note that having an explicit + // 'views' property will mean the default unnamed view properties are ignored. This + // is also a good time to resolve view names to absolute names, so everything is a + // straight lookup at link time. + views: function(state) { + var views = {}; + + forEach(isDefined(state.views) ? state.views : { '': state }, function (view, name) { + if (name.indexOf('@') < 0) name += '@' + state.parent.name; + views[name] = view; + }); + return views; + }, + + // Keep a full path from the root down to this state as this is needed for state activation. + path: function(state) { + return state.parent ? state.parent.path.concat(state) : []; // exclude root from path + }, + + // Speed up $state.contains() as it's used a lot + includes: function(state) { + var includes = state.parent ? extend({}, state.parent.includes) : {}; + includes[state.name] = true; + return includes; + }, + + $delegates: {} + }; + + function isRelative(stateName) { + return stateName.indexOf(".") === 0 || stateName.indexOf("^") === 0; + } + + function findState(stateOrName, base) { + if (!stateOrName) return undefined; + + var isStr = isString(stateOrName), + name = isStr ? stateOrName : stateOrName.name, + path = isRelative(name); + + if (path) { + if (!base) throw new Error("No reference point given for path '" + name + "'"); + base = findState(base); + + var rel = name.split("."), i = 0, pathLength = rel.length, current = base; + + for (; i < pathLength; i++) { + if (rel[i] === "" && i === 0) { + current = base; + continue; + } + if (rel[i] === "^") { + if (!current.parent) throw new Error("Path '" + name + "' not valid for state '" + base.name + "'"); + current = current.parent; + continue; + } + break; + } + rel = rel.slice(i).join("."); + name = current.name + (current.name && rel ? "." : "") + rel; + } + var state = states[name]; + + if (state && (isStr || (!isStr && (state === stateOrName || state.self === stateOrName)))) { + return state; + } + return undefined; + } + + function queueState(parentName, state) { + if (!queue[parentName]) { + queue[parentName] = []; + } + queue[parentName].push(state); + } + + function flushQueuedChildren(parentName) { + var queued = queue[parentName] || []; + while(queued.length) { + registerState(queued.shift()); + } + } + + function registerState(state) { + // Wrap a new object around the state so we can store our private details easily. + state = inherit(state, { + self: state, + resolve: state.resolve || {}, + toString: function() { return this.name; } + }); + + var name = state.name; + if (!isString(name) || name.indexOf('@') >= 0) throw new Error("State must have a valid name"); + if (states.hasOwnProperty(name)) throw new Error("State '" + name + "'' is already defined"); + + // Get parent name + var parentName = (name.indexOf('.') !== -1) ? name.substring(0, name.lastIndexOf('.')) + : (isString(state.parent)) ? state.parent + : (isObject(state.parent) && isString(state.parent.name)) ? state.parent.name + : ''; + + // If parent is not registered yet, add state to queue and register later + if (parentName && !states[parentName]) { + return queueState(parentName, state.self); + } + + for (var key in stateBuilder) { + if (isFunction(stateBuilder[key])) state[key] = stateBuilder[key](state, stateBuilder.$delegates[key]); + } + states[name] = state; + + // Register the state in the global state list and with $urlRouter if necessary. + if (!state[abstractKey] && state.url) { + $urlRouterProvider.when(state.url, ['$match', '$stateParams', function ($match, $stateParams) { + if ($state.$current.navigable != state || !equalForKeys($match, $stateParams)) { + $state.transitionTo(state, $match, { inherit: true, location: false }); + } + }]); + } + + // Register any queued children + flushQueuedChildren(name); + + return state; + } + + // Checks text to see if it looks like a glob. + function isGlob (text) { + return text.indexOf('*') > -1; + } + + // Returns true if glob matches current $state name. + function doesStateMatchGlob (glob) { + var globSegments = glob.split('.'), + segments = $state.$current.name.split('.'); + + //match greedy starts + if (globSegments[0] === '**') { + segments = segments.slice(indexOf(segments, globSegments[1])); + segments.unshift('**'); + } + //match greedy ends + if (globSegments[globSegments.length - 1] === '**') { + segments.splice(indexOf(segments, globSegments[globSegments.length - 2]) + 1, Number.MAX_VALUE); + segments.push('**'); + } + + if (globSegments.length != segments.length) { + return false; + } + + //match single stars + for (var i = 0, l = globSegments.length; i < l; i++) { + if (globSegments[i] === '*') { + segments[i] = '*'; + } + } + + return segments.join('') === globSegments.join(''); + } + + + // Implicit root state that is always active + root = registerState({ + name: '', + url: '^', + views: null, + 'abstract': true + }); + root.navigable = null; + + + /** + * @ngdoc function + * @name ui.router.state.$stateProvider#decorator + * @methodOf ui.router.state.$stateProvider + * + * @description + * Allows you to extend (carefully) or override (at your own peril) the + * `stateBuilder` object used internally by `$stateProvider`. This can be used + * to add custom functionality to ui-router, for example inferring templateUrl + * based on the state name. + * + * When passing only a name, it returns the current (original or decorated) builder + * function that matches `name`. + * + * The builder functions that can be decorated are listed below. Though not all + * necessarily have a good use case for decoration, that is up to you to decide. + * + * In addition, users can attach custom decorators, which will generate new + * properties within the state's internal definition. There is currently no clear + * use-case for this beyond accessing internal states (i.e. $state.$current), + * however, expect this to become increasingly relevant as we introduce additional + * meta-programming features. + * + * **Warning**: Decorators should not be interdependent because the order of + * execution of the builder functions in non-deterministic. Builder functions + * should only be dependent on the state definition object and super function. + * + * + * Existing builder functions and current return values: + * + * - **parent** `{object}` - returns the parent state object. + * - **data** `{object}` - returns state data, including any inherited data that is not + * overridden by own values (if any). + * - **url** `{object}` - returns a {@link ui.router.util.type:UrlMatcher UrlMatcher} + * or `null`. + * - **navigable** `{object}` - returns closest ancestor state that has a URL (aka is + * navigable). + * - **params** `{object}` - returns an array of state params that are ensured to + * be a super-set of parent's params. + * - **views** `{object}` - returns a views object where each key is an absolute view + * name (i.e. "viewName@stateName") and each value is the config object + * (template, controller) for the view. Even when you don't use the views object + * explicitly on a state config, one is still created for you internally. + * So by decorating this builder function you have access to decorating template + * and controller properties. + * - **ownParams** `{object}` - returns an array of params that belong to the state, + * not including any params defined by ancestor states. + * - **path** `{string}` - returns the full path from the root down to this state. + * Needed for state activation. + * - **includes** `{object}` - returns an object that includes every state that + * would pass a `$state.includes()` test. + * + * @example + *
    +   * // Override the internal 'views' builder with a function that takes the state
    +   * // definition, and a reference to the internal function being overridden:
    +   * $stateProvider.decorator('views', function (state, parent) {
    +   *   var result = {},
    +   *       views = parent(state);
    +   *
    +   *   angular.forEach(views, function (config, name) {
    +   *     var autoName = (state.name + '.' + name).replace('.', '/');
    +   *     config.templateUrl = config.templateUrl || '/partials/' + autoName + '.html';
    +   *     result[name] = config;
    +   *   });
    +   *   return result;
    +   * });
    +   *
    +   * $stateProvider.state('home', {
    +   *   views: {
    +   *     'contact.list': { controller: 'ListController' },
    +   *     'contact.item': { controller: 'ItemController' }
    +   *   }
    +   * });
    +   *
    +   * // ...
    +   *
    +   * $state.go('home');
    +   * // Auto-populates list and item views with /partials/home/contact/list.html,
    +   * // and /partials/home/contact/item.html, respectively.
    +   * 
    + * + * @param {string} name The name of the builder function to decorate. + * @param {object} func A function that is responsible for decorating the original + * builder function. The function receives two parameters: + * + * - `{object}` - state - The state config object. + * - `{object}` - super - The original builder function. + * + * @return {object} $stateProvider - $stateProvider instance + */ + this.decorator = decorator; + function decorator(name, func) { + /*jshint validthis: true */ + if (isString(name) && !isDefined(func)) { + return stateBuilder[name]; + } + if (!isFunction(func) || !isString(name)) { + return this; + } + if (stateBuilder[name] && !stateBuilder.$delegates[name]) { + stateBuilder.$delegates[name] = stateBuilder[name]; + } + stateBuilder[name] = func; + return this; + } + + /** + * @ngdoc function + * @name ui.router.state.$stateProvider#state + * @methodOf ui.router.state.$stateProvider + * + * @description + * Registers a state configuration under a given state name. The stateConfig object + * has the following acceptable properties. + * + * @param {string} name A unique state name, e.g. "home", "about", "contacts". + * To create a parent/child state use a dot, e.g. "about.sales", "home.newest". + * @param {object} stateConfig State configuration object. + * @param {string|function=} stateConfig.template + *
    + * html template as a string or a function that returns + * an html template as a string which should be used by the uiView directives. This property + * takes precedence over templateUrl. + * + * If `template` is a function, it will be called with the following parameters: + * + * - {array.<object>} - state parameters extracted from the current $location.path() by + * applying the current state + * + *
    template:
    +   *   "

    inline template definition

    " + + * "
    "
    + *
    template: function(params) {
    +   *       return "

    generated template

    "; }
    + * + * + * @param {string|function=} stateConfig.templateUrl + * + * + * path or function that returns a path to an html + * template that should be used by uiView. + * + * If `templateUrl` is a function, it will be called with the following parameters: + * + * - {array.<object>} - state parameters extracted from the current $location.path() by + * applying the current state + * + *
    templateUrl: "home.html"
    + *
    templateUrl: function(params) {
    +   *     return myTemplates[params.pageId]; }
    + * + * @param {function=} stateConfig.templateProvider + * + * Provider function that returns HTML content string. + *
     templateProvider:
    +   *       function(MyTemplateService, params) {
    +   *         return MyTemplateService.getTemplate(params.pageId);
    +   *       }
    + * + * @param {string|function=} stateConfig.controller + * + * + * Controller fn that should be associated with newly + * related scope or the name of a registered controller if passed as a string. + * Optionally, the ControllerAs may be declared here. + *
    controller: "MyRegisteredController"
    + *
    controller:
    +   *     "MyRegisteredController as fooCtrl"}
    + *
    controller: function($scope, MyService) {
    +   *     $scope.data = MyService.getData(); }
    + * + * @param {function=} stateConfig.controllerProvider + * + * + * Injectable provider function that returns the actual controller or string. + *
    controllerProvider:
    +   *   function(MyResolveData) {
    +   *     if (MyResolveData.foo)
    +   *       return "FooCtrl"
    +   *     else if (MyResolveData.bar)
    +   *       return "BarCtrl";
    +   *     else return function($scope) {
    +   *       $scope.baz = "Qux";
    +   *     }
    +   *   }
    + * + * @param {string=} stateConfig.controllerAs + * + * + * A controller alias name. If present the controller will be + * published to scope under the controllerAs name. + *
    controllerAs: "myCtrl"
    + * + * @param {object=} stateConfig.resolve + * + * + * An optional map<string, function> of dependencies which + * should be injected into the controller. If any of these dependencies are promises, + * the router will wait for them all to be resolved before the controller is instantiated. + * If all the promises are resolved successfully, the $stateChangeSuccess event is fired + * and the values of the resolved promises are injected into any controllers that reference them. + * If any of the promises are rejected the $stateChangeError event is fired. + * + * The map object is: + * + * - key - {string}: name of dependency to be injected into controller + * - factory - {string|function}: If string then it is alias for service. Otherwise if function, + * it is injected and return value it treated as dependency. If result is a promise, it is + * resolved before its value is injected into controller. + * + *
    resolve: {
    +   *     myResolve1:
    +   *       function($http, $stateParams) {
    +   *         return $http.get("/api/foos/"+stateParams.fooID);
    +   *       }
    +   *     }
    + * + * @param {string=} stateConfig.url + * + * + * A url fragment with optional parameters. When a state is navigated or + * transitioned to, the `$stateParams` service will be populated with any + * parameters that were passed. + * + * examples: + *
    url: "/home"
    +   * url: "/users/:userid"
    +   * url: "/books/{bookid:[a-zA-Z_-]}"
    +   * url: "/books/{categoryid:int}"
    +   * url: "/books/{publishername:string}/{categoryid:int}"
    +   * url: "/messages?before&after"
    +   * url: "/messages?{before:date}&{after:date}"
    + * url: "/messages/:mailboxid?{before:date}&{after:date}" + * + * @param {object=} stateConfig.views + * + * an optional map<string, object> which defined multiple views, or targets views + * manually/explicitly. + * + * Examples: + * + * Targets three named `ui-view`s in the parent state's template + *
    views: {
    +   *     header: {
    +   *       controller: "headerCtrl",
    +   *       templateUrl: "header.html"
    +   *     }, body: {
    +   *       controller: "bodyCtrl",
    +   *       templateUrl: "body.html"
    +   *     }, footer: {
    +   *       controller: "footCtrl",
    +   *       templateUrl: "footer.html"
    +   *     }
    +   *   }
    + * + * Targets named `ui-view="header"` from grandparent state 'top''s template, and named `ui-view="body" from parent state's template. + *
    views: {
    +   *     'header@top': {
    +   *       controller: "msgHeaderCtrl",
    +   *       templateUrl: "msgHeader.html"
    +   *     }, 'body': {
    +   *       controller: "messagesCtrl",
    +   *       templateUrl: "messages.html"
    +   *     }
    +   *   }
    + * + * @param {boolean=} [stateConfig.abstract=false] + * + * An abstract state will never be directly activated, + * but can provide inherited properties to its common children states. + *
    abstract: true
    + * + * @param {function=} stateConfig.onEnter + * + * + * Callback function for when a state is entered. Good way + * to trigger an action or dispatch an event, such as opening a dialog. + * If minifying your scripts, make sure to explictly annotate this function, + * because it won't be automatically annotated by your build tools. + * + *
    onEnter: function(MyService, $stateParams) {
    +   *     MyService.foo($stateParams.myParam);
    +   * }
    + * + * @param {function=} stateConfig.onExit + * + * + * Callback function for when a state is exited. Good way to + * trigger an action or dispatch an event, such as opening a dialog. + * If minifying your scripts, make sure to explictly annotate this function, + * because it won't be automatically annotated by your build tools. + * + *
    onExit: function(MyService, $stateParams) {
    +   *     MyService.cleanup($stateParams.myParam);
    +   * }
    + * + * @param {boolean=} [stateConfig.reloadOnSearch=true] + * + * + * If `false`, will not retrigger the same state + * just because a search/query parameter has changed (via $location.search() or $location.hash()). + * Useful for when you'd like to modify $location.search() without triggering a reload. + *
    reloadOnSearch: false
    + * + * @param {object=} stateConfig.data + * + * + * Arbitrary data object, useful for custom configuration. The parent state's `data` is + * prototypally inherited. In other words, adding a data property to a state adds it to + * the entire subtree via prototypal inheritance. + * + *
    data: {
    +   *     requiredRole: 'foo'
    +   * } 
    + * + * @param {object=} stateConfig.params + * + * + * A map which optionally configures parameters declared in the `url`, or + * defines additional non-url parameters. For each parameter being + * configured, add a configuration object keyed to the name of the parameter. + * + * Each parameter configuration object may contain the following properties: + * + * - ** value ** - {object|function=}: specifies the default value for this + * parameter. This implicitly sets this parameter as optional. + * + * When UI-Router routes to a state and no value is + * specified for this parameter in the URL or transition, the + * default value will be used instead. If `value` is a function, + * it will be injected and invoked, and the return value used. + * + * *Note*: `undefined` is treated as "no default value" while `null` + * is treated as "the default value is `null`". + * + * *Shorthand*: If you only need to configure the default value of the + * parameter, you may use a shorthand syntax. In the **`params`** + * map, instead mapping the param name to a full parameter configuration + * object, simply set map it to the default parameter value, e.g.: + * + *
    // define a parameter's default value
    +   * params: {
    +   *     param1: { value: "defaultValue" }
    +   * }
    +   * // shorthand default values
    +   * params: {
    +   *     param1: "defaultValue",
    +   *     param2: "param2Default"
    +   * }
    + * + * - ** array ** - {boolean=}: *(default: false)* If true, the param value will be + * treated as an array of values. If you specified a Type, the value will be + * treated as an array of the specified Type. Note: query parameter values + * default to a special `"auto"` mode. + * + * For query parameters in `"auto"` mode, if multiple values for a single parameter + * are present in the URL (e.g.: `/foo?bar=1&bar=2&bar=3`) then the values + * are mapped to an array (e.g.: `{ foo: [ '1', '2', '3' ] }`). However, if + * only one value is present (e.g.: `/foo?bar=1`) then the value is treated as single + * value (e.g.: `{ foo: '1' }`). + * + *
    params: {
    +   *     param1: { array: true }
    +   * }
    + * + * - ** squash ** - {bool|string=}: `squash` configures how a default parameter value is represented in the URL when + * the current parameter value is the same as the default value. If `squash` is not set, it uses the + * configured default squash policy. + * (See {@link ui.router.util.$urlMatcherFactory#methods_defaultSquashPolicy `defaultSquashPolicy()`}) + * + * There are three squash settings: + * + * - false: The parameter's default value is not squashed. It is encoded and included in the URL + * - true: The parameter's default value is omitted from the URL. If the parameter is preceeded and followed + * by slashes in the state's `url` declaration, then one of those slashes are omitted. + * This can allow for cleaner looking URLs. + * - `""`: The parameter's default value is replaced with an arbitrary placeholder of your choice. + * + *
    params: {
    +   *     param1: {
    +   *       value: "defaultId",
    +   *       squash: true
    +   * } }
    +   * // squash "defaultValue" to "~"
    +   * params: {
    +   *     param1: {
    +   *       value: "defaultValue",
    +   *       squash: "~"
    +   * } }
    +   * 
    + * + * + * @example + *
    +   * // Some state name examples
    +   *
    +   * // stateName can be a single top-level name (must be unique).
    +   * $stateProvider.state("home", {});
    +   *
    +   * // Or it can be a nested state name. This state is a child of the
    +   * // above "home" state.
    +   * $stateProvider.state("home.newest", {});
    +   *
    +   * // Nest states as deeply as needed.
    +   * $stateProvider.state("home.newest.abc.xyz.inception", {});
    +   *
    +   * // state() returns $stateProvider, so you can chain state declarations.
    +   * $stateProvider
    +   *   .state("home", {})
    +   *   .state("about", {})
    +   *   .state("contacts", {});
    +   * 
    + * + */ + this.state = state; + function state(name, definition) { + /*jshint validthis: true */ + if (isObject(name)) definition = name; + else definition.name = name; + registerState(definition); + return this; + } + + /** + * @ngdoc object + * @name ui.router.state.$state + * + * @requires $rootScope + * @requires $q + * @requires ui.router.state.$view + * @requires $injector + * @requires ui.router.util.$resolve + * @requires ui.router.state.$stateParams + * @requires ui.router.router.$urlRouter + * + * @property {object} params A param object, e.g. {sectionId: section.id)}, that + * you'd like to test against the current active state. + * @property {object} current A reference to the state's config object. However + * you passed it in. Useful for accessing custom data. + * @property {object} transition Currently pending transition. A promise that'll + * resolve or reject. + * + * @description + * `$state` service is responsible for representing states as well as transitioning + * between them. It also provides interfaces to ask for current state or even states + * you're coming from. + */ + this.$get = $get; + $get.$inject = ['$rootScope', '$q', '$view', '$injector', '$resolve', '$stateParams', '$urlRouter', '$location', '$urlMatcherFactory']; + function $get( $rootScope, $q, $view, $injector, $resolve, $stateParams, $urlRouter, $location, $urlMatcherFactory) { + + var TransitionSuperseded = $q.reject(new Error('transition superseded')); + var TransitionPrevented = $q.reject(new Error('transition prevented')); + var TransitionAborted = $q.reject(new Error('transition aborted')); + var TransitionFailed = $q.reject(new Error('transition failed')); + + // Handles the case where a state which is the target of a transition is not found, and the user + // can optionally retry or defer the transition + function handleRedirect(redirect, state, params, options) { + /** + * @ngdoc event + * @name ui.router.state.$state#$stateNotFound + * @eventOf ui.router.state.$state + * @eventType broadcast on root scope + * @description + * Fired when a requested state **cannot be found** using the provided state name during transition. + * The event is broadcast allowing any handlers a single chance to deal with the error (usually by + * lazy-loading the unfound state). A special `unfoundState` object is passed to the listener handler, + * you can see its three properties in the example. You can use `event.preventDefault()` to abort the + * transition and the promise returned from `go` will be rejected with a `'transition aborted'` value. + * + * @param {Object} event Event object. + * @param {Object} unfoundState Unfound State information. Contains: `to, toParams, options` properties. + * @param {State} fromState Current state object. + * @param {Object} fromParams Current state params. + * + * @example + * + *
    +       * // somewhere, assume lazy.state has not been defined
    +       * $state.go("lazy.state", {a:1, b:2}, {inherit:false});
    +       *
    +       * // somewhere else
    +       * $scope.$on('$stateNotFound',
    +       * function(event, unfoundState, fromState, fromParams){
    +       *     console.log(unfoundState.to); // "lazy.state"
    +       *     console.log(unfoundState.toParams); // {a:1, b:2}
    +       *     console.log(unfoundState.options); // {inherit:false} + default options
    +       * })
    +       * 
    + */ + var evt = $rootScope.$broadcast('$stateNotFound', redirect, state, params); + + if (evt.defaultPrevented) { + $urlRouter.update(); + return TransitionAborted; + } + + if (!evt.retry) { + return null; + } + + // Allow the handler to return a promise to defer state lookup retry + if (options.$retry) { + $urlRouter.update(); + return TransitionFailed; + } + var retryTransition = $state.transition = $q.when(evt.retry); + + retryTransition.then(function() { + if (retryTransition !== $state.transition) return TransitionSuperseded; + redirect.options.$retry = true; + return $state.transitionTo(redirect.to, redirect.toParams, redirect.options); + }, function() { + return TransitionAborted; + }); + $urlRouter.update(); + + return retryTransition; + } + + root.locals = { resolve: null, globals: { $stateParams: {} } }; + + $state = { + params: {}, + current: root.self, + $current: root, + transition: null + }; + + /** + * @ngdoc function + * @name ui.router.state.$state#reload + * @methodOf ui.router.state.$state + * + * @description + * A method that force reloads the current state. All resolves are re-resolved, events are not re-fired, + * and controllers reinstantiated (bug with controllers reinstantiating right now, fixing soon). + * + * @example + *
    +     * var app angular.module('app', ['ui.router']);
    +     *
    +     * app.controller('ctrl', function ($scope, $state) {
    +     *   $scope.reload = function(){
    +     *     $state.reload();
    +     *   }
    +     * });
    +     * 
    + * + * `reload()` is just an alias for: + *
    +     * $state.transitionTo($state.current, $stateParams, { 
    +     *   reload: true, inherit: false, notify: true
    +     * });
    +     * 
    + * + * @returns {promise} A promise representing the state of the new transition. See + * {@link ui.router.state.$state#methods_go $state.go}. + */ + $state.reload = function reload() { + return $state.transitionTo($state.current, $stateParams, { reload: true, inherit: false, notify: true }); + }; + + /** + * @ngdoc function + * @name ui.router.state.$state#go + * @methodOf ui.router.state.$state + * + * @description + * Convenience method for transitioning to a new state. `$state.go` calls + * `$state.transitionTo` internally but automatically sets options to + * `{ location: true, inherit: true, relative: $state.$current, notify: true }`. + * This allows you to easily use an absolute or relative to path and specify + * only the parameters you'd like to update (while letting unspecified parameters + * inherit from the currently active ancestor states). + * + * @example + *
    +     * var app = angular.module('app', ['ui.router']);
    +     *
    +     * app.controller('ctrl', function ($scope, $state) {
    +     *   $scope.changeState = function () {
    +     *     $state.go('contact.detail');
    +     *   };
    +     * });
    +     * 
    + * + * + * @param {string} to Absolute state name or relative state path. Some examples: + * + * - `$state.go('contact.detail')` - will go to the `contact.detail` state + * - `$state.go('^')` - will go to a parent state + * - `$state.go('^.sibling')` - will go to a sibling state + * - `$state.go('.child.grandchild')` - will go to grandchild state + * + * @param {object=} params A map of the parameters that will be sent to the state, + * will populate $stateParams. Any parameters that are not specified will be inherited from currently + * defined parameters. This allows, for example, going to a sibling state that shares parameters + * specified in a parent state. Parameter inheritance only works between common ancestor states, I.e. + * transitioning to a sibling will get you the parameters for all parents, transitioning to a child + * will get you all current parameters, etc. + * @param {object=} options Options object. The options are: + * + * - **`location`** - {boolean=true|string=} - If `true` will update the url in the location bar, if `false` + * will not. If string, must be `"replace"`, which will update url and also replace last history record. + * - **`inherit`** - {boolean=true}, If `true` will inherit url parameters from current url. + * - **`relative`** - {object=$state.$current}, When transitioning with relative path (e.g '^'), + * defines which state to be relative from. + * - **`notify`** - {boolean=true}, If `true` will broadcast $stateChangeStart and $stateChangeSuccess events. + * - **`reload`** (v0.2.5) - {boolean=false}, If `true` will force transition even if the state or params + * have not changed, aka a reload of the same state. It differs from reloadOnSearch because you'd + * use this when you want to force a reload when *everything* is the same, including search params. + * + * @returns {promise} A promise representing the state of the new transition. + * + * Possible success values: + * + * - $state.current + * + *
    Possible rejection values: + * + * - 'transition superseded' - when a newer transition has been started after this one + * - 'transition prevented' - when `event.preventDefault()` has been called in a `$stateChangeStart` listener + * - 'transition aborted' - when `event.preventDefault()` has been called in a `$stateNotFound` listener or + * when a `$stateNotFound` `event.retry` promise errors. + * - 'transition failed' - when a state has been unsuccessfully found after 2 tries. + * - *resolve error* - when an error has occurred with a `resolve` + * + */ + $state.go = function go(to, params, options) { + return $state.transitionTo(to, params, extend({ inherit: true, relative: $state.$current }, options)); + }; + + /** + * @ngdoc function + * @name ui.router.state.$state#transitionTo + * @methodOf ui.router.state.$state + * + * @description + * Low-level method for transitioning to a new state. {@link ui.router.state.$state#methods_go $state.go} + * uses `transitionTo` internally. `$state.go` is recommended in most situations. + * + * @example + *
    +     * var app = angular.module('app', ['ui.router']);
    +     *
    +     * app.controller('ctrl', function ($scope, $state) {
    +     *   $scope.changeState = function () {
    +     *     $state.transitionTo('contact.detail');
    +     *   };
    +     * });
    +     * 
    + * + * @param {string} to State name. + * @param {object=} toParams A map of the parameters that will be sent to the state, + * will populate $stateParams. + * @param {object=} options Options object. The options are: + * + * - **`location`** - {boolean=true|string=} - If `true` will update the url in the location bar, if `false` + * will not. If string, must be `"replace"`, which will update url and also replace last history record. + * - **`inherit`** - {boolean=false}, If `true` will inherit url parameters from current url. + * - **`relative`** - {object=}, When transitioning with relative path (e.g '^'), + * defines which state to be relative from. + * - **`notify`** - {boolean=true}, If `true` will broadcast $stateChangeStart and $stateChangeSuccess events. + * - **`reload`** (v0.2.5) - {boolean=false}, If `true` will force transition even if the state or params + * have not changed, aka a reload of the same state. It differs from reloadOnSearch because you'd + * use this when you want to force a reload when *everything* is the same, including search params. + * + * @returns {promise} A promise representing the state of the new transition. See + * {@link ui.router.state.$state#methods_go $state.go}. + */ + $state.transitionTo = function transitionTo(to, toParams, options) { + toParams = toParams || {}; + options = extend({ + location: true, inherit: false, relative: null, notify: true, reload: false, $retry: false + }, options || {}); + + var from = $state.$current, fromParams = $state.params, fromPath = from.path; + var evt, toState = findState(to, options.relative); + + if (!isDefined(toState)) { + var redirect = { to: to, toParams: toParams, options: options }; + var redirectResult = handleRedirect(redirect, from.self, fromParams, options); + + if (redirectResult) { + return redirectResult; + } + + // Always retry once if the $stateNotFound was not prevented + // (handles either redirect changed or state lazy-definition) + to = redirect.to; + toParams = redirect.toParams; + options = redirect.options; + toState = findState(to, options.relative); + + if (!isDefined(toState)) { + if (!options.relative) throw new Error("No such state '" + to + "'"); + throw new Error("Could not resolve '" + to + "' from state '" + options.relative + "'"); + } + } + if (toState[abstractKey]) throw new Error("Cannot transition to abstract state '" + to + "'"); + if (options.inherit) toParams = inheritParams($stateParams, toParams || {}, $state.$current, toState); + if (!toState.params.$$validates(toParams)) return TransitionFailed; + + toParams = toState.params.$$values(toParams); + to = toState; + + var toPath = to.path; + + // Starting from the root of the path, keep all levels that haven't changed + var keep = 0, state = toPath[keep], locals = root.locals, toLocals = []; + + if (!options.reload) { + while (state && state === fromPath[keep] && state.ownParams.$$equals(toParams, fromParams)) { + locals = toLocals[keep] = state.locals; + keep++; + state = toPath[keep]; + } + } + + // If we're going to the same state and all locals are kept, we've got nothing to do. + // But clear 'transition', as we still want to cancel any other pending transitions. + // TODO: We may not want to bump 'transition' if we're called from a location change + // that we've initiated ourselves, because we might accidentally abort a legitimate + // transition initiated from code? + if (shouldTriggerReload(to, from, locals, options)) { + if (to.self.reloadOnSearch !== false) $urlRouter.update(); + $state.transition = null; + return $q.when($state.current); + } + + // Filter parameters before we pass them to event handlers etc. + toParams = filterByKeys(to.params.$$keys(), toParams || {}); + + // Broadcast start event and cancel the transition if requested + if (options.notify) { + /** + * @ngdoc event + * @name ui.router.state.$state#$stateChangeStart + * @eventOf ui.router.state.$state + * @eventType broadcast on root scope + * @description + * Fired when the state transition **begins**. You can use `event.preventDefault()` + * to prevent the transition from happening and then the transition promise will be + * rejected with a `'transition prevented'` value. + * + * @param {Object} event Event object. + * @param {State} toState The state being transitioned to. + * @param {Object} toParams The params supplied to the `toState`. + * @param {State} fromState The current state, pre-transition. + * @param {Object} fromParams The params supplied to the `fromState`. + * + * @example + * + *
    +         * $rootScope.$on('$stateChangeStart',
    +         * function(event, toState, toParams, fromState, fromParams){
    +         *     event.preventDefault();
    +         *     // transitionTo() promise will be rejected with
    +         *     // a 'transition prevented' error
    +         * })
    +         * 
    + */ + if ($rootScope.$broadcast('$stateChangeStart', to.self, toParams, from.self, fromParams).defaultPrevented) { + $urlRouter.update(); + return TransitionPrevented; + } + } + + // Resolve locals for the remaining states, but don't update any global state just + // yet -- if anything fails to resolve the current state needs to remain untouched. + // We also set up an inheritance chain for the locals here. This allows the view directive + // to quickly look up the correct definition for each view in the current state. Even + // though we create the locals object itself outside resolveState(), it is initially + // empty and gets filled asynchronously. We need to keep track of the promise for the + // (fully resolved) current locals, and pass this down the chain. + var resolved = $q.when(locals); + + for (var l = keep; l < toPath.length; l++, state = toPath[l]) { + locals = toLocals[l] = inherit(locals); + resolved = resolveState(state, toParams, state === to, resolved, locals, options); + } + + // Once everything is resolved, we are ready to perform the actual transition + // and return a promise for the new state. We also keep track of what the + // current promise is, so that we can detect overlapping transitions and + // keep only the outcome of the last transition. + var transition = $state.transition = resolved.then(function () { + var l, entering, exiting; + + if ($state.transition !== transition) return TransitionSuperseded; + + // Exit 'from' states not kept + for (l = fromPath.length - 1; l >= keep; l--) { + exiting = fromPath[l]; + if (exiting.self.onExit) { + $injector.invoke(exiting.self.onExit, exiting.self, exiting.locals.globals); + } + exiting.locals = null; + } + + // Enter 'to' states not kept + for (l = keep; l < toPath.length; l++) { + entering = toPath[l]; + entering.locals = toLocals[l]; + if (entering.self.onEnter) { + $injector.invoke(entering.self.onEnter, entering.self, entering.locals.globals); + } + } + + // Run it again, to catch any transitions in callbacks + if ($state.transition !== transition) return TransitionSuperseded; + + // Update globals in $state + $state.$current = to; + $state.current = to.self; + $state.params = toParams; + copy($state.params, $stateParams); + $state.transition = null; + + if (options.location && to.navigable) { + $urlRouter.push(to.navigable.url, to.navigable.locals.globals.$stateParams, { + $$avoidResync: true, replace: options.location === 'replace' + }); + } + + if (options.notify) { + /** + * @ngdoc event + * @name ui.router.state.$state#$stateChangeSuccess + * @eventOf ui.router.state.$state + * @eventType broadcast on root scope + * @description + * Fired once the state transition is **complete**. + * + * @param {Object} event Event object. + * @param {State} toState The state being transitioned to. + * @param {Object} toParams The params supplied to the `toState`. + * @param {State} fromState The current state, pre-transition. + * @param {Object} fromParams The params supplied to the `fromState`. + */ + $rootScope.$broadcast('$stateChangeSuccess', to.self, toParams, from.self, fromParams); + } + $urlRouter.update(true); + + return $state.current; + }, function (error) { + if ($state.transition !== transition) return TransitionSuperseded; + + $state.transition = null; + /** + * @ngdoc event + * @name ui.router.state.$state#$stateChangeError + * @eventOf ui.router.state.$state + * @eventType broadcast on root scope + * @description + * Fired when an **error occurs** during transition. It's important to note that if you + * have any errors in your resolve functions (javascript errors, non-existent services, etc) + * they will not throw traditionally. You must listen for this $stateChangeError event to + * catch **ALL** errors. + * + * @param {Object} event Event object. + * @param {State} toState The state being transitioned to. + * @param {Object} toParams The params supplied to the `toState`. + * @param {State} fromState The current state, pre-transition. + * @param {Object} fromParams The params supplied to the `fromState`. + * @param {Error} error The resolve error object. + */ + evt = $rootScope.$broadcast('$stateChangeError', to.self, toParams, from.self, fromParams, error); + + if (!evt.defaultPrevented) { + $urlRouter.update(); + } + + return $q.reject(error); + }); + + return transition; + }; + + /** + * @ngdoc function + * @name ui.router.state.$state#is + * @methodOf ui.router.state.$state + * + * @description + * Similar to {@link ui.router.state.$state#methods_includes $state.includes}, + * but only checks for the full state name. If params is supplied then it will be + * tested for strict equality against the current active params object, so all params + * must match with none missing and no extras. + * + * @example + *
    +     * $state.$current.name = 'contacts.details.item';
    +     *
    +     * // absolute name
    +     * $state.is('contact.details.item'); // returns true
    +     * $state.is(contactDetailItemStateObject); // returns true
    +     *
    +     * // relative name (. and ^), typically from a template
    +     * // E.g. from the 'contacts.details' template
    +     * 
    Item
    + *
    + * + * @param {string|object} stateOrName The state name (absolute or relative) or state object you'd like to check. + * @param {object=} params A param object, e.g. `{sectionId: section.id}`, that you'd like + * to test against the current active state. + * @param {object=} options An options object. The options are: + * + * - **`relative`** - {string|object} - If `stateOrName` is a relative state name and `options.relative` is set, .is will + * test relative to `options.relative` state (or name). + * + * @returns {boolean} Returns true if it is the state. + */ + $state.is = function is(stateOrName, params, options) { + options = extend({ relative: $state.$current }, options || {}); + var state = findState(stateOrName, options.relative); + + if (!isDefined(state)) { return undefined; } + if ($state.$current !== state) { return false; } + return params ? equalForKeys(state.params.$$values(params), $stateParams) : true; + }; + + /** + * @ngdoc function + * @name ui.router.state.$state#includes + * @methodOf ui.router.state.$state + * + * @description + * A method to determine if the current active state is equal to or is the child of the + * state stateName. If any params are passed then they will be tested for a match as well. + * Not all the parameters need to be passed, just the ones you'd like to test for equality. + * + * @example + * Partial and relative names + *
    +     * $state.$current.name = 'contacts.details.item';
    +     *
    +     * // Using partial names
    +     * $state.includes("contacts"); // returns true
    +     * $state.includes("contacts.details"); // returns true
    +     * $state.includes("contacts.details.item"); // returns true
    +     * $state.includes("contacts.list"); // returns false
    +     * $state.includes("about"); // returns false
    +     *
    +     * // Using relative names (. and ^), typically from a template
    +     * // E.g. from the 'contacts.details' template
    +     * 
    Item
    + *
    + * + * Basic globbing patterns + *
    +     * $state.$current.name = 'contacts.details.item.url';
    +     *
    +     * $state.includes("*.details.*.*"); // returns true
    +     * $state.includes("*.details.**"); // returns true
    +     * $state.includes("**.item.**"); // returns true
    +     * $state.includes("*.details.item.url"); // returns true
    +     * $state.includes("*.details.*.url"); // returns true
    +     * $state.includes("*.details.*"); // returns false
    +     * $state.includes("item.**"); // returns false
    +     * 
    + * + * @param {string} stateOrName A partial name, relative name, or glob pattern + * to be searched for within the current state name. + * @param {object=} params A param object, e.g. `{sectionId: section.id}`, + * that you'd like to test against the current active state. + * @param {object=} options An options object. The options are: + * + * - **`relative`** - {string|object=} - If `stateOrName` is a relative state reference and `options.relative` is set, + * .includes will test relative to `options.relative` state (or name). + * + * @returns {boolean} Returns true if it does include the state + */ + $state.includes = function includes(stateOrName, params, options) { + options = extend({ relative: $state.$current }, options || {}); + if (isString(stateOrName) && isGlob(stateOrName)) { + if (!doesStateMatchGlob(stateOrName)) { + return false; + } + stateOrName = $state.$current.name; + } + + var state = findState(stateOrName, options.relative); + if (!isDefined(state)) { return undefined; } + if (!isDefined($state.$current.includes[state.name])) { return false; } + return params ? equalForKeys(state.params.$$values(params), $stateParams, objectKeys(params)) : true; + }; + + + /** + * @ngdoc function + * @name ui.router.state.$state#href + * @methodOf ui.router.state.$state + * + * @description + * A url generation method that returns the compiled url for the given state populated with the given params. + * + * @example + *
    +     * expect($state.href("about.person", { person: "bob" })).toEqual("/about/bob");
    +     * 
    + * + * @param {string|object} stateOrName The state name or state object you'd like to generate a url from. + * @param {object=} params An object of parameter values to fill the state's required parameters. + * @param {object=} options Options object. The options are: + * + * - **`lossy`** - {boolean=true} - If true, and if there is no url associated with the state provided in the + * first parameter, then the constructed href url will be built from the first navigable ancestor (aka + * ancestor with a valid url). + * - **`inherit`** - {boolean=true}, If `true` will inherit url parameters from current url. + * - **`relative`** - {object=$state.$current}, When transitioning with relative path (e.g '^'), + * defines which state to be relative from. + * - **`absolute`** - {boolean=false}, If true will generate an absolute url, e.g. "http://www.example.com/fullurl". + * + * @returns {string} compiled state url + */ + $state.href = function href(stateOrName, params, options) { + options = extend({ + lossy: true, + inherit: true, + absolute: false, + relative: $state.$current + }, options || {}); + + var state = findState(stateOrName, options.relative); + + if (!isDefined(state)) return null; + if (options.inherit) params = inheritParams($stateParams, params || {}, $state.$current, state); + + var nav = (state && options.lossy) ? state.navigable : state; + + if (!nav || nav.url === undefined || nav.url === null) { + return null; + } + return $urlRouter.href(nav.url, filterByKeys(state.params.$$keys(), params || {}), { + absolute: options.absolute + }); + }; + + /** + * @ngdoc function + * @name ui.router.state.$state#get + * @methodOf ui.router.state.$state + * + * @description + * Returns the state configuration object for any specific state or all states. + * + * @param {string|object=} stateOrName (absolute or relative) If provided, will only get the config for + * the requested state. If not provided, returns an array of ALL state configs. + * @param {string|object=} context When stateOrName is a relative state reference, the state will be retrieved relative to context. + * @returns {Object|Array} State configuration object or array of all objects. + */ + $state.get = function (stateOrName, context) { + if (arguments.length === 0) return map(objectKeys(states), function(name) { return states[name].self; }); + var state = findState(stateOrName, context || $state.$current); + return (state && state.self) ? state.self : null; + }; + + function resolveState(state, params, paramsAreFiltered, inherited, dst, options) { + // Make a restricted $stateParams with only the parameters that apply to this state if + // necessary. In addition to being available to the controller and onEnter/onExit callbacks, + // we also need $stateParams to be available for any $injector calls we make during the + // dependency resolution process. + var $stateParams = (paramsAreFiltered) ? params : filterByKeys(state.params.$$keys(), params); + var locals = { $stateParams: $stateParams }; + + // Resolve 'global' dependencies for the state, i.e. those not specific to a view. + // We're also including $stateParams in this; that way the parameters are restricted + // to the set that should be visible to the state, and are independent of when we update + // the global $state and $stateParams values. + dst.resolve = $resolve.resolve(state.resolve, locals, dst.resolve, state); + var promises = [dst.resolve.then(function (globals) { + dst.globals = globals; + })]; + if (inherited) promises.push(inherited); + + // Resolve template and dependencies for all views. + forEach(state.views, function (view, name) { + var injectables = (view.resolve && view.resolve !== state.resolve ? view.resolve : {}); + injectables.$template = [ function () { + return $view.load(name, { view: view, locals: locals, params: $stateParams, notify: options.notify }) || ''; + }]; + + promises.push($resolve.resolve(injectables, locals, dst.resolve, state).then(function (result) { + // References to the controller (only instantiated at link time) + if (isFunction(view.controllerProvider) || isArray(view.controllerProvider)) { + var injectLocals = angular.extend({}, injectables, locals); + result.$$controller = $injector.invoke(view.controllerProvider, null, injectLocals); + } else { + result.$$controller = view.controller; + } + // Provide access to the state itself for internal use + result.$$state = state; + result.$$controllerAs = view.controllerAs; + dst[name] = result; + })); + }); + + // Wait for all the promises and then return the activation object + return $q.all(promises).then(function (values) { + return dst; + }); + } + + return $state; + } + + function shouldTriggerReload(to, from, locals, options) { + if (to === from && ((locals === from.locals && !options.reload) || (to.self.reloadOnSearch === false))) { + return true; + } + } +} + +angular.module('ui.router.state') + .value('$stateParams', {}) + .provider('$state', $StateProvider); + + +$ViewProvider.$inject = []; +function $ViewProvider() { + + this.$get = $get; + /** + * @ngdoc object + * @name ui.router.state.$view + * + * @requires ui.router.util.$templateFactory + * @requires $rootScope + * + * @description + * + */ + $get.$inject = ['$rootScope', '$templateFactory']; + function $get( $rootScope, $templateFactory) { + return { + // $view.load('full.viewName', { template: ..., controller: ..., resolve: ..., async: false, params: ... }) + /** + * @ngdoc function + * @name ui.router.state.$view#load + * @methodOf ui.router.state.$view + * + * @description + * + * @param {string} name name + * @param {object} options option object. + */ + load: function load(name, options) { + var result, defaults = { + template: null, controller: null, view: null, locals: null, notify: true, async: true, params: {} + }; + options = extend(defaults, options); + + if (options.view) { + result = $templateFactory.fromConfig(options.view, options.params, options.locals); + } + if (result && options.notify) { + /** + * @ngdoc event + * @name ui.router.state.$state#$viewContentLoading + * @eventOf ui.router.state.$view + * @eventType broadcast on root scope + * @description + * + * Fired once the view **begins loading**, *before* the DOM is rendered. + * + * @param {Object} event Event object. + * @param {Object} viewConfig The view config properties (template, controller, etc). + * + * @example + * + *
    +         * $scope.$on('$viewContentLoading',
    +         * function(event, viewConfig){
    +         *     // Access to all the view config properties.
    +         *     // and one special property 'targetView'
    +         *     // viewConfig.targetView
    +         * });
    +         * 
    + */ + $rootScope.$broadcast('$viewContentLoading', options); + } + return result; + } + }; + } +} + +angular.module('ui.router.state').provider('$view', $ViewProvider); + +/** + * @ngdoc object + * @name ui.router.state.$uiViewScrollProvider + * + * @description + * Provider that returns the {@link ui.router.state.$uiViewScroll} service function. + */ +function $ViewScrollProvider() { + + var useAnchorScroll = false; + + /** + * @ngdoc function + * @name ui.router.state.$uiViewScrollProvider#useAnchorScroll + * @methodOf ui.router.state.$uiViewScrollProvider + * + * @description + * Reverts back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll) service for + * scrolling based on the url anchor. + */ + this.useAnchorScroll = function () { + useAnchorScroll = true; + }; + + /** + * @ngdoc object + * @name ui.router.state.$uiViewScroll + * + * @requires $anchorScroll + * @requires $timeout + * + * @description + * When called with a jqLite element, it scrolls the element into view (after a + * `$timeout` so the DOM has time to refresh). + * + * If you prefer to rely on `$anchorScroll` to scroll the view to the anchor, + * this can be enabled by calling {@link ui.router.state.$uiViewScrollProvider#methods_useAnchorScroll `$uiViewScrollProvider.useAnchorScroll()`}. + */ + this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll, $timeout) { + if (useAnchorScroll) { + return $anchorScroll; + } + + return function ($element) { + $timeout(function () { + $element[0].scrollIntoView(); + }, 0, false); + }; + }]; +} + +angular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider); + +/** + * @ngdoc directive + * @name ui.router.state.directive:ui-view + * + * @requires ui.router.state.$state + * @requires $compile + * @requires $controller + * @requires $injector + * @requires ui.router.state.$uiViewScroll + * @requires $document + * + * @restrict ECA + * + * @description + * The ui-view directive tells $state where to place your templates. + * + * @param {string=} name A view name. The name should be unique amongst the other views in the + * same state. You can have views of the same name that live in different states. + * + * @param {string=} autoscroll It allows you to set the scroll behavior of the browser window + * when a view is populated. By default, $anchorScroll is overridden by ui-router's custom scroll + * service, {@link ui.router.state.$uiViewScroll}. This custom service let's you + * scroll ui-view elements into view when they are populated during a state activation. + * + * *Note: To revert back to old [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll) + * functionality, call `$uiViewScrollProvider.useAnchorScroll()`.* + * + * @param {string=} onload Expression to evaluate whenever the view updates. + * + * @example + * A view can be unnamed or named. + *
    + * 
    + * 
    + * + * + *
    + *
    + * + * You can only have one unnamed view within any template (or root html). If you are only using a + * single view and it is unnamed then you can populate it like so: + *
    + * 
    + * $stateProvider.state("home", { + * template: "

    HELLO!

    " + * }) + *
    + * + * The above is a convenient shortcut equivalent to specifying your view explicitly with the {@link ui.router.state.$stateProvider#views `views`} + * config property, by name, in this case an empty name: + *
    + * $stateProvider.state("home", {
    + *   views: {
    + *     "": {
    + *       template: "

    HELLO!

    " + * } + * } + * }) + *
    + * + * But typically you'll only use the views property if you name your view or have more than one view + * in the same template. There's not really a compelling reason to name a view if its the only one, + * but you could if you wanted, like so: + *
    + * 
    + *
    + *
    + * $stateProvider.state("home", {
    + *   views: {
    + *     "main": {
    + *       template: "

    HELLO!

    " + * } + * } + * }) + *
    + * + * Really though, you'll use views to set up multiple views: + *
    + * 
    + *
    + *
    + *
    + * + *
    + * $stateProvider.state("home", {
    + *   views: {
    + *     "": {
    + *       template: "

    HELLO!

    " + * }, + * "chart": { + * template: "" + * }, + * "data": { + * template: "" + * } + * } + * }) + *
    + * + * Examples for `autoscroll`: + * + *
    + * 
    + * 
    + *
    + * 
    + * 
    + * 
    + * 
    + * 
    + */ +$ViewDirective.$inject = ['$state', '$injector', '$uiViewScroll', '$interpolate']; +function $ViewDirective( $state, $injector, $uiViewScroll, $interpolate) { + + function getService() { + return ($injector.has) ? function(service) { + return $injector.has(service) ? $injector.get(service) : null; + } : function(service) { + try { + return $injector.get(service); + } catch (e) { + return null; + } + }; + } + + var service = getService(), + $animator = service('$animator'), + $animate = service('$animate'); + + // Returns a set of DOM manipulation functions based on which Angular version + // it should use + function getRenderer(attrs, scope) { + var statics = function() { + return { + enter: function (element, target, cb) { target.after(element); cb(); }, + leave: function (element, cb) { element.remove(); cb(); } + }; + }; + + if ($animate) { + return { + enter: function(element, target, cb) { + var promise = $animate.enter(element, null, target, cb); + if (promise && promise.then) promise.then(cb); + }, + leave: function(element, cb) { + var promise = $animate.leave(element, cb); + if (promise && promise.then) promise.then(cb); + } + }; + } + + if ($animator) { + var animate = $animator && $animator(scope, attrs); + + return { + enter: function(element, target, cb) {animate.enter(element, null, target); cb(); }, + leave: function(element, cb) { animate.leave(element); cb(); } + }; + } + + return statics(); + } + + var directive = { + restrict: 'ECA', + terminal: true, + priority: 400, + transclude: 'element', + compile: function (tElement, tAttrs, $transclude) { + return function (scope, $element, attrs) { + var previousEl, currentEl, currentScope, latestLocals, + onloadExp = attrs.onload || '', + autoScrollExp = attrs.autoscroll, + renderer = getRenderer(attrs, scope); + + scope.$on('$stateChangeSuccess', function() { + updateView(false); + }); + scope.$on('$viewContentLoading', function() { + updateView(false); + }); + + updateView(true); + + function cleanupLastView() { + if (previousEl) { + previousEl.remove(); + previousEl = null; + } + + if (currentScope) { + currentScope.$destroy(); + currentScope = null; + } + + if (currentEl) { + renderer.leave(currentEl, function() { + previousEl = null; + }); + + previousEl = currentEl; + currentEl = null; + } + } + + function updateView(firstTime) { + var newScope, + name = getUiViewName(scope, attrs, $element, $interpolate), + previousLocals = name && $state.$current && $state.$current.locals[name]; + + if (!firstTime && previousLocals === latestLocals) return; // nothing to do + newScope = scope.$new(); + latestLocals = $state.$current.locals[name]; + + var clone = $transclude(newScope, function(clone) { + renderer.enter(clone, $element, function onUiViewEnter() { + if(currentScope) { + currentScope.$emit('$viewContentAnimationEnded'); + } + + if (angular.isDefined(autoScrollExp) && !autoScrollExp || scope.$eval(autoScrollExp)) { + $uiViewScroll(clone); + } + }); + cleanupLastView(); + }); + + currentEl = clone; + currentScope = newScope; + /** + * @ngdoc event + * @name ui.router.state.directive:ui-view#$viewContentLoaded + * @eventOf ui.router.state.directive:ui-view + * @eventType emits on ui-view directive scope + * @description * + * Fired once the view is **loaded**, *after* the DOM is rendered. + * + * @param {Object} event Event object. + */ + currentScope.$emit('$viewContentLoaded'); + currentScope.$eval(onloadExp); + } + }; + } + }; + + return directive; +} + +$ViewDirectiveFill.$inject = ['$compile', '$controller', '$state', '$interpolate']; +function $ViewDirectiveFill ( $compile, $controller, $state, $interpolate) { + return { + restrict: 'ECA', + priority: -400, + compile: function (tElement) { + var initial = tElement.html(); + return function (scope, $element, attrs) { + var current = $state.$current, + name = getUiViewName(scope, attrs, $element, $interpolate), + locals = current && current.locals[name]; + + if (! locals) { + return; + } + + $element.data('$uiView', { name: name, state: locals.$$state }); + $element.html(locals.$template ? locals.$template : initial); + + var link = $compile($element.contents()); + + if (locals.$$controller) { + locals.$scope = scope; + var controller = $controller(locals.$$controller, locals); + if (locals.$$controllerAs) { + scope[locals.$$controllerAs] = controller; + } + $element.data('$ngControllerController', controller); + $element.children().data('$ngControllerController', controller); + } + + link(scope); + }; + } + }; +} + +/** + * Shared ui-view code for both directives: + * Given scope, element, and its attributes, return the view's name + */ +function getUiViewName(scope, attrs, element, $interpolate) { + var name = $interpolate(attrs.uiView || attrs.name || '')(scope); + var inherited = element.inheritedData('$uiView'); + return name.indexOf('@') >= 0 ? name : (name + '@' + (inherited ? inherited.state.name : '')); +} + +angular.module('ui.router.state').directive('uiView', $ViewDirective); +angular.module('ui.router.state').directive('uiView', $ViewDirectiveFill); + +function parseStateRef(ref, current) { + var preparsed = ref.match(/^\s*({[^}]*})\s*$/), parsed; + if (preparsed) ref = current + '(' + preparsed[1] + ')'; + parsed = ref.replace(/\n/g, " ").match(/^([^(]+?)\s*(\((.*)\))?$/); + if (!parsed || parsed.length !== 4) throw new Error("Invalid state ref '" + ref + "'"); + return { state: parsed[1], paramExpr: parsed[3] || null }; +} + +function stateContext(el) { + var stateData = el.parent().inheritedData('$uiView'); + + if (stateData && stateData.state && stateData.state.name) { + return stateData.state; + } +} + +/** + * @ngdoc directive + * @name ui.router.state.directive:ui-sref + * + * @requires ui.router.state.$state + * @requires $timeout + * + * @restrict A + * + * @description + * A directive that binds a link (`` tag) to a state. If the state has an associated + * URL, the directive will automatically generate & update the `href` attribute via + * the {@link ui.router.state.$state#methods_href $state.href()} method. Clicking + * the link will trigger a state transition with optional parameters. + * + * Also middle-clicking, right-clicking, and ctrl-clicking on the link will be + * handled natively by the browser. + * + * You can also use relative state paths within ui-sref, just like the relative + * paths passed to `$state.go()`. You just need to be aware that the path is relative + * to the state that the link lives in, in other words the state that loaded the + * template containing the link. + * + * You can specify options to pass to {@link ui.router.state.$state#go $state.go()} + * using the `ui-sref-opts` attribute. Options are restricted to `location`, `inherit`, + * and `reload`. + * + * @example + * Here's an example of how you'd use ui-sref and how it would compile. If you have the + * following template: + *
    + * Home | About | Next page
    + * 
    + * 
    + * 
    + * + * Then the compiled html would be (assuming Html5Mode is off and current state is contacts): + *
    + * Home | About | Next page
    + * 
    + * 
      + *
    • + * Joe + *
    • + *
    • + * Alice + *
    • + *
    • + * Bob + *
    • + *
    + * + * Home + *
    + * + * @param {string} ui-sref 'stateName' can be any valid absolute or relative state + * @param {Object} ui-sref-opts options to pass to {@link ui.router.state.$state#go $state.go()} + */ +$StateRefDirective.$inject = ['$state', '$timeout']; +function $StateRefDirective($state, $timeout) { + var allowedOptions = ['location', 'inherit', 'reload']; + + return { + restrict: 'A', + require: ['?^uiSrefActive', '?^uiSrefActiveEq'], + link: function(scope, element, attrs, uiSrefActive) { + var ref = parseStateRef(attrs.uiSref, $state.current.name); + var params = null, url = null, base = stateContext(element) || $state.$current; + var newHref = null, isAnchor = element.prop("tagName") === "A"; + var isForm = element[0].nodeName === "FORM"; + var attr = isForm ? "action" : "href", nav = true; + + var options = { relative: base, inherit: true }; + var optionsOverride = scope.$eval(attrs.uiSrefOpts) || {}; + + angular.forEach(allowedOptions, function(option) { + if (option in optionsOverride) { + options[option] = optionsOverride[option]; + } + }); + + var update = function(newVal) { + if (newVal) params = angular.copy(newVal); + if (!nav) return; + + newHref = $state.href(ref.state, params, options); + + var activeDirective = uiSrefActive[1] || uiSrefActive[0]; + if (activeDirective) { + activeDirective.$$setStateInfo(ref.state, params); + } + if (newHref === null) { + nav = false; + return false; + } + attrs.$set(attr, newHref); + }; + + if (ref.paramExpr) { + scope.$watch(ref.paramExpr, function(newVal, oldVal) { + if (newVal !== params) update(newVal); + }, true); + params = angular.copy(scope.$eval(ref.paramExpr)); + } + update(); + + if (isForm) return; + + element.bind("click", function(e) { + var button = e.which || e.button; + if ( !(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || element.attr('target')) ) { + // HACK: This is to allow ng-clicks to be processed before the transition is initiated: + var transition = $timeout(function() { + $state.go(ref.state, params, options); + }); + e.preventDefault(); + + // if the state has no URL, ignore one preventDefault from the directive. + var ignorePreventDefaultCount = isAnchor && !newHref ? 1: 0; + e.preventDefault = function() { + if (ignorePreventDefaultCount-- <= 0) + $timeout.cancel(transition); + }; + } + }); + } + }; +} + +/** + * @ngdoc directive + * @name ui.router.state.directive:ui-sref-active + * + * @requires ui.router.state.$state + * @requires ui.router.state.$stateParams + * @requires $interpolate + * + * @restrict A + * + * @description + * A directive working alongside ui-sref to add classes to an element when the + * related ui-sref directive's state is active, and removing them when it is inactive. + * The primary use-case is to simplify the special appearance of navigation menus + * relying on `ui-sref`, by having the "active" state's menu button appear different, + * distinguishing it from the inactive menu items. + * + * ui-sref-active can live on the same element as ui-sref or on a parent element. The first + * ui-sref-active found at the same level or above the ui-sref will be used. + * + * Will activate when the ui-sref's target state or any child state is active. If you + * need to activate only when the ui-sref target state is active and *not* any of + * it's children, then you will use + * {@link ui.router.state.directive:ui-sref-active-eq ui-sref-active-eq} + * + * @example + * Given the following template: + *
    + * 
    + * 
    + * + * + * When the app state is "app.user" (or any children states), and contains the state parameter "user" with value "bilbobaggins", + * the resulting HTML will appear as (note the 'active' class): + *
    + * 
    + * 
    + * + * The class name is interpolated **once** during the directives link time (any further changes to the + * interpolated value are ignored). + * + * Multiple classes may be specified in a space-separated format: + *
    + * 
      + *
    • + * link + *
    • + *
    + *
    + */ + +/** + * @ngdoc directive + * @name ui.router.state.directive:ui-sref-active-eq + * + * @requires ui.router.state.$state + * @requires ui.router.state.$stateParams + * @requires $interpolate + * + * @restrict A + * + * @description + * The same as {@link ui.router.state.directive:ui-sref-active ui-sref-active} but will only activate + * when the exact target state used in the `ui-sref` is active; no child states. + * + */ +$StateRefActiveDirective.$inject = ['$state', '$stateParams', '$interpolate']; +function $StateRefActiveDirective($state, $stateParams, $interpolate) { + return { + restrict: "A", + controller: ['$scope', '$element', '$attrs', function ($scope, $element, $attrs) { + var state, params, activeClass; + + // There probably isn't much point in $observing this + // uiSrefActive and uiSrefActiveEq share the same directive object with some + // slight difference in logic routing + activeClass = $interpolate($attrs.uiSrefActiveEq || $attrs.uiSrefActive || '', false)($scope); + + // Allow uiSref to communicate with uiSrefActive[Equals] + this.$$setStateInfo = function (newState, newParams) { + state = $state.get(newState, stateContext($element)); + params = newParams; + update(); + }; + + $scope.$on('$stateChangeSuccess', update); + + // Update route state + function update() { + if (isMatch()) { + $element.addClass(activeClass); + } else { + $element.removeClass(activeClass); + } + } + + function isMatch() { + if (typeof $attrs.uiSrefActiveEq !== 'undefined') { + return state && $state.is(state.name, params); + } else { + return state && $state.includes(state.name, params); + } + } + }] + }; +} + +angular.module('ui.router.state') + .directive('uiSref', $StateRefDirective) + .directive('uiSrefActive', $StateRefActiveDirective) + .directive('uiSrefActiveEq', $StateRefActiveDirective); + +/** + * @ngdoc filter + * @name ui.router.state.filter:isState + * + * @requires ui.router.state.$state + * + * @description + * Translates to {@link ui.router.state.$state#methods_is $state.is("stateName")}. + */ +$IsStateFilter.$inject = ['$state']; +function $IsStateFilter($state) { + var isFilter = function (state) { + return $state.is(state); + }; + isFilter.$stateful = true; + return isFilter; +} + +/** + * @ngdoc filter + * @name ui.router.state.filter:includedByState + * + * @requires ui.router.state.$state + * + * @description + * Translates to {@link ui.router.state.$state#methods_includes $state.includes('fullOrPartialStateName')}. + */ +$IncludedByStateFilter.$inject = ['$state']; +function $IncludedByStateFilter($state) { + var includesFilter = function (state) { + return $state.includes(state); + }; + includesFilter.$stateful = true; + return includesFilter; +} + +angular.module('ui.router.state') + .filter('isState', $IsStateFilter) + .filter('includedByState', $IncludedByStateFilter); +})(window, window.angular); \ No newline at end of file diff --git a/1.1.0/js/angular-ui/angular-ui-router.min.js b/1.1.0/js/angular-ui/angular-ui-router.min.js new file mode 100755 index 00000000..be06fb5b --- /dev/null +++ b/1.1.0/js/angular-ui/angular-ui-router.min.js @@ -0,0 +1,7 @@ +/** + * State-based routing for AngularJS + * @version v0.2.13 + * @link http://angular-ui.github.com/ + * @license MIT License, http://www.opensource.org/licenses/MIT + */ +"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(a,b,c){"use strict";function d(a,b){return M(new(M(function(){},{prototype:a})),b)}function e(a){return L(arguments,function(b){b!==a&&L(b,function(b,c){a.hasOwnProperty(c)||(a[c]=b)})}),a}function f(a,b){var c=[];for(var d in a.path){if(a.path[d]!==b.path[d])break;c.push(a.path[d])}return c}function g(a){if(Object.keys)return Object.keys(a);var c=[];return b.forEach(a,function(a,b){c.push(b)}),c}function h(a,b){if(Array.prototype.indexOf)return a.indexOf(b,Number(arguments[2])||0);var c=a.length>>>0,d=Number(arguments[2])||0;for(d=0>d?Math.ceil(d):Math.floor(d),0>d&&(d+=c);c>d;d++)if(d in a&&a[d]===b)return d;return-1}function i(a,b,c,d){var e,i=f(c,d),j={},k=[];for(var l in i)if(i[l].params&&(e=g(i[l].params),e.length))for(var m in e)h(k,e[m])>=0||(k.push(e[m]),j[e[m]]=a[e[m]]);return M({},j,b)}function j(a,b,c){if(!c){c=[];for(var d in a)c.push(d)}for(var e=0;e "));if(s[c]=d,I(a))q.push(c,[function(){return b.get(a)}],j);else{var e=b.annotate(a);L(e,function(a){a!==c&&i.hasOwnProperty(a)&&n(i[a],a)}),q.push(c,a,e)}r.pop(),s[c]=f}}function o(a){return J(a)&&a.then&&a.$$promises}if(!J(i))throw new Error("'invocables' must be an object");var p=g(i||{}),q=[],r=[],s={};return L(i,n),i=r=s=null,function(d,f,g){function h(){--u||(v||e(t,f.$$values),r.$$values=t,r.$$promises=r.$$promises||!0,delete r.$$inheritedValues,n.resolve(t))}function i(a){r.$$failure=a,n.reject(a)}function j(c,e,f){function j(a){l.reject(a),i(a)}function k(){if(!G(r.$$failure))try{l.resolve(b.invoke(e,g,t)),l.promise.then(function(a){t[c]=a,h()},j)}catch(a){j(a)}}var l=a.defer(),m=0;L(f,function(a){s.hasOwnProperty(a)&&!d.hasOwnProperty(a)&&(m++,s[a].then(function(b){t[a]=b,--m||k()},j))}),m||k(),s[c]=l.promise}if(o(d)&&g===c&&(g=f,f=d,d=null),d){if(!J(d))throw new Error("'locals' must be an object")}else d=k;if(f){if(!o(f))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else f=m;var n=a.defer(),r=n.promise,s=r.$$promises={},t=M({},d),u=1+q.length/3,v=!1;if(G(f.$$failure))return i(f.$$failure),r;f.$$inheritedValues&&e(t,l(f.$$inheritedValues,p)),M(s,f.$$promises),f.$$values?(v=e(t,l(f.$$values,p)),r.$$inheritedValues=l(f.$$values,p),h()):(f.$$inheritedValues&&(r.$$inheritedValues=l(f.$$inheritedValues,p)),f.then(h,i));for(var w=0,x=q.length;x>w;w+=3)d.hasOwnProperty(q[w])?h():j(q[w],q[w+1],q[w+2]);return r}},this.resolve=function(a,b,c,d){return this.study(a)(b,c,d)}}function p(a,b,c){this.fromConfig=function(a,b,c){return G(a.template)?this.fromString(a.template,b):G(a.templateUrl)?this.fromUrl(a.templateUrl,b):G(a.templateProvider)?this.fromProvider(a.templateProvider,b,c):null},this.fromString=function(a,b){return H(a)?a(b):a},this.fromUrl=function(c,d){return H(c)&&(c=c(d)),null==c?null:a.get(c,{cache:b,headers:{Accept:"text/html"}}).then(function(a){return a.data})},this.fromProvider=function(a,b,d){return c.invoke(a,null,d||{params:b})}}function q(a,b,e){function f(b,c,d,e){if(q.push(b),o[b])return o[b];if(!/^\w+(-+\w+)*(?:\[\])?$/.test(b))throw new Error("Invalid parameter name '"+b+"' in pattern '"+a+"'");if(p[b])throw new Error("Duplicate parameter name '"+b+"' in pattern '"+a+"'");return p[b]=new O.Param(b,c,d,e),p[b]}function g(a,b,c){var d=["",""],e=a.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!b)return e;switch(c){case!1:d=["(",")"];break;case!0:d=["?(",")?"];break;default:d=["("+c+"|",")?"]}return e+d[0]+b+d[1]}function h(c,e){var f,g,h,i,j;return f=c[2]||c[3],j=b.params[f],h=a.substring(m,c.index),g=e?c[4]:c[4]||("*"==c[1]?".*":null),i=O.type(g||"string")||d(O.type("string"),{pattern:new RegExp(g)}),{id:f,regexp:g,segment:h,type:i,cfg:j}}b=M({params:{}},J(b)?b:{});var i,j=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,k=/([:]?)([\w\[\]-]+)|\{([\w\[\]-]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,l="^",m=0,n=this.segments=[],o=e?e.params:{},p=this.params=e?e.params.$$new():new O.ParamSet,q=[];this.source=a;for(var r,s,t;(i=j.exec(a))&&(r=h(i,!1),!(r.segment.indexOf("?")>=0));)s=f(r.id,r.type,r.cfg,"path"),l+=g(r.segment,s.type.pattern.source,s.squash),n.push(r.segment),m=j.lastIndex;t=a.substring(m);var u=t.indexOf("?");if(u>=0){var v=this.sourceSearch=t.substring(u);if(t=t.substring(0,u),this.sourcePath=a.substring(0,m+u),v.length>0)for(m=0;i=k.exec(v);)r=h(i,!0),s=f(r.id,r.type,r.cfg,"search"),m=j.lastIndex}else this.sourcePath=a,this.sourceSearch="";l+=g(t)+(b.strict===!1?"/?":"")+"$",n.push(t),this.regexp=new RegExp(l,b.caseInsensitive?"i":c),this.prefix=n[0],this.$$paramNames=q}function r(a){M(this,a)}function s(){function a(a){return null!=a?a.toString().replace(/\//g,"%2F"):a}function e(a){return null!=a?a.toString().replace(/%2F/g,"/"):a}function f(a){return this.pattern.test(a)}function i(){return{strict:t,caseInsensitive:p}}function j(a){return H(a)||K(a)&&H(a[a.length-1])}function k(){for(;x.length;){var a=x.shift();if(a.pattern)throw new Error("You cannot override a type's .pattern at runtime.");b.extend(v[a.name],o.invoke(a.def))}}function l(a){M(this,a||{})}O=this;var o,p=!1,t=!0,u=!1,v={},w=!0,x=[],y={string:{encode:a,decode:e,is:f,pattern:/[^/]*/},"int":{encode:a,decode:function(a){return parseInt(a,10)},is:function(a){return G(a)&&this.decode(a.toString())===a},pattern:/\d+/},bool:{encode:function(a){return a?1:0},decode:function(a){return 0!==parseInt(a,10)},is:function(a){return a===!0||a===!1},pattern:/0|1/},date:{encode:function(a){return this.is(a)?[a.getFullYear(),("0"+(a.getMonth()+1)).slice(-2),("0"+a.getDate()).slice(-2)].join("-"):c},decode:function(a){if(this.is(a))return a;var b=this.capture.exec(a);return b?new Date(b[1],b[2]-1,b[3]):c},is:function(a){return a instanceof Date&&!isNaN(a.valueOf())},equals:function(a,b){return this.is(a)&&this.is(b)&&a.toISOString()===b.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:b.toJson,decode:b.fromJson,is:b.isObject,equals:b.equals,pattern:/[^/]*/},any:{encode:b.identity,decode:b.identity,is:b.identity,equals:b.equals,pattern:/.*/}};s.$$getDefaultValue=function(a){if(!j(a.value))return a.value;if(!o)throw new Error("Injectable functions cannot be called at configuration time");return o.invoke(a.value)},this.caseInsensitive=function(a){return G(a)&&(p=a),p},this.strictMode=function(a){return G(a)&&(t=a),t},this.defaultSquashPolicy=function(a){if(!G(a))return u;if(a!==!0&&a!==!1&&!I(a))throw new Error("Invalid squash policy: "+a+". Valid policies: false, true, arbitrary-string");return u=a,a},this.compile=function(a,b){return new q(a,M(i(),b))},this.isMatcher=function(a){if(!J(a))return!1;var b=!0;return L(q.prototype,function(c,d){H(c)&&(b=b&&G(a[d])&&H(a[d]))}),b},this.type=function(a,b,c){if(!G(b))return v[a];if(v.hasOwnProperty(a))throw new Error("A type named '"+a+"' has already been defined.");return v[a]=new r(M({name:a},b)),c&&(x.push({name:a,def:c}),w||k()),this},L(y,function(a,b){v[b]=new r(M({name:b},a))}),v=d(v,{}),this.$get=["$injector",function(a){return o=a,w=!1,k(),L(y,function(a,b){v[b]||(v[b]=new r(a))}),this}],this.Param=function(a,b,d,e){function f(a){var b=J(a)?g(a):[],c=-1===h(b,"value")&&-1===h(b,"type")&&-1===h(b,"squash")&&-1===h(b,"array");return c&&(a={value:a}),a.$$fn=j(a.value)?a.value:function(){return a.value},a}function i(b,c,d){if(b.type&&c)throw new Error("Param '"+a+"' has two type configurations.");return c?c:b.type?b.type instanceof r?b.type:new r(b.type):"config"===d?v.any:v.string}function k(){var b={array:"search"===e?"auto":!1},c=a.match(/\[\]$/)?{array:!0}:{};return M(b,c,d).array}function l(a,b){var c=a.squash;if(!b||c===!1)return!1;if(!G(c)||null==c)return u;if(c===!0||I(c))return c;throw new Error("Invalid squash policy: '"+c+"'. Valid policies: false, true, or arbitrary string")}function p(a,b,d,e){var f,g,i=[{from:"",to:d||b?c:""},{from:null,to:d||b?c:""}];return f=K(a.replace)?a.replace:[],I(e)&&f.push({from:e,to:c}),g=n(f,function(a){return a.from}),m(i,function(a){return-1===h(g,a.from)}).concat(f)}function q(){if(!o)throw new Error("Injectable functions cannot be called at configuration time");return o.invoke(d.$$fn)}function s(a){function b(a){return function(b){return b.from===a}}function c(a){var c=n(m(w.replace,b(a)),function(a){return a.to});return c.length?c[0]:a}return a=c(a),G(a)?w.type.decode(a):q()}function t(){return"{Param:"+a+" "+b+" squash: '"+z+"' optional: "+y+"}"}var w=this;d=f(d),b=i(d,b,e);var x=k();b=x?b.$asArray(x,"search"===e):b,"string"!==b.name||x||"path"!==e||d.value!==c||(d.value="");var y=d.value!==c,z=l(d,y),A=p(d,x,y,z);M(this,{id:a,type:b,location:e,array:x,squash:z,replace:A,isOptional:y,value:s,dynamic:c,config:d,toString:t})},l.prototype={$$new:function(){return d(this,M(new l,{$$parent:this}))},$$keys:function(){for(var a=[],b=[],c=this,d=g(l.prototype);c;)b.push(c),c=c.$$parent;return b.reverse(),L(b,function(b){L(g(b),function(b){-1===h(a,b)&&-1===h(d,b)&&a.push(b)})}),a},$$values:function(a){var b={},c=this;return L(c.$$keys(),function(d){b[d]=c[d].value(a&&a[d])}),b},$$equals:function(a,b){var c=!0,d=this;return L(d.$$keys(),function(e){var f=a&&a[e],g=b&&b[e];d[e].type.equals(f,g)||(c=!1)}),c},$$validates:function(a){var b,c,d,e=!0,f=this;return L(this.$$keys(),function(g){d=f[g],c=a[g],b=!c&&d.isOptional,e=e&&(b||!!d.type.is(c))}),e},$$parent:c},this.ParamSet=l}function t(a,d){function e(a){var b=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(a.source);return null!=b?b[1].replace(/\\(.)/g,"$1"):""}function f(a,b){return a.replace(/\$(\$|\d{1,2})/,function(a,c){return b["$"===c?0:Number(c)]})}function g(a,b,c){if(!c)return!1;var d=a.invoke(b,b,{$match:c});return G(d)?d:!0}function h(d,e,f,g){function h(a,b,c){return"/"===p?a:b?p.slice(0,-1)+a:c?p.slice(1)+a:a}function m(a){function b(a){var b=a(f,d);return b?(I(b)&&d.replace().url(b),!0):!1}if(!a||!a.defaultPrevented){var e=o&&d.url()===o;if(o=c,e)return!0;var g,h=j.length;for(g=0;h>g;g++)if(b(j[g]))return;k&&b(k)}}function n(){return i=i||e.$on("$locationChangeSuccess",m)}var o,p=g.baseHref(),q=d.url();return l||n(),{sync:function(){m()},listen:function(){return n()},update:function(a){return a?void(q=d.url()):void(d.url()!==q&&(d.url(q),d.replace()))},push:function(a,b,e){d.url(a.format(b||{})),o=e&&e.$$avoidResync?d.url():c,e&&e.replace&&d.replace()},href:function(c,e,f){if(!c.validates(e))return null;var g=a.html5Mode();b.isObject(g)&&(g=g.enabled);var i=c.format(e);if(f=f||{},g||null===i||(i="#"+a.hashPrefix()+i),i=h(i,g,f.absolute),!f.absolute||!i)return i;var j=!g&&i?"/":"",k=d.port();return k=80===k||443===k?"":":"+k,[d.protocol(),"://",d.host(),k,j,i].join("")}}}var i,j=[],k=null,l=!1;this.rule=function(a){if(!H(a))throw new Error("'rule' must be a function");return j.push(a),this},this.otherwise=function(a){if(I(a)){var b=a;a=function(){return b}}else if(!H(a))throw new Error("'rule' must be a function");return k=a,this},this.when=function(a,b){var c,h=I(b);if(I(a)&&(a=d.compile(a)),!h&&!H(b)&&!K(b))throw new Error("invalid 'handler' in when()");var i={matcher:function(a,b){return h&&(c=d.compile(b),b=["$match",function(a){return c.format(a)}]),M(function(c,d){return g(c,b,a.exec(d.path(),d.search()))},{prefix:I(a.prefix)?a.prefix:""})},regex:function(a,b){if(a.global||a.sticky)throw new Error("when() RegExp must not be global or sticky");return h&&(c=b,b=["$match",function(a){return f(c,a)}]),M(function(c,d){return g(c,b,a.exec(d.path()))},{prefix:e(a)})}},j={matcher:d.isMatcher(a),regex:a instanceof RegExp};for(var k in j)if(j[k])return this.rule(i[k](a,b));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(a){a===c&&(a=!0),l=a},this.$get=h,h.$inject=["$location","$rootScope","$injector","$browser"]}function u(a,e){function f(a){return 0===a.indexOf(".")||0===a.indexOf("^")}function l(a,b){if(!a)return c;var d=I(a),e=d?a:a.name,g=f(e);if(g){if(!b)throw new Error("No reference point given for path '"+e+"'");b=l(b);for(var h=e.split("."),i=0,j=h.length,k=b;j>i;i++)if(""!==h[i]||0!==i){if("^"!==h[i])break;if(!k.parent)throw new Error("Path '"+e+"' not valid for state '"+b.name+"'");k=k.parent}else k=b;h=h.slice(i).join("."),e=k.name+(k.name&&h?".":"")+h}var m=y[e];return!m||!d&&(d||m!==a&&m.self!==a)?c:m}function m(a,b){z[a]||(z[a]=[]),z[a].push(b)}function o(a){for(var b=z[a]||[];b.length;)p(b.shift())}function p(b){b=d(b,{self:b,resolve:b.resolve||{},toString:function(){return this.name}});var c=b.name;if(!I(c)||c.indexOf("@")>=0)throw new Error("State must have a valid name");if(y.hasOwnProperty(c))throw new Error("State '"+c+"'' is already defined");var e=-1!==c.indexOf(".")?c.substring(0,c.lastIndexOf(".")):I(b.parent)?b.parent:J(b.parent)&&I(b.parent.name)?b.parent.name:"";if(e&&!y[e])return m(e,b.self);for(var f in B)H(B[f])&&(b[f]=B[f](b,B.$delegates[f]));return y[c]=b,!b[A]&&b.url&&a.when(b.url,["$match","$stateParams",function(a,c){x.$current.navigable==b&&j(a,c)||x.transitionTo(b,a,{inherit:!0,location:!1})}]),o(c),b}function q(a){return a.indexOf("*")>-1}function r(a){var b=a.split("."),c=x.$current.name.split(".");if("**"===b[0]&&(c=c.slice(h(c,b[1])),c.unshift("**")),"**"===b[b.length-1]&&(c.splice(h(c,b[b.length-2])+1,Number.MAX_VALUE),c.push("**")),b.length!=c.length)return!1;for(var d=0,e=b.length;e>d;d++)"*"===b[d]&&(c[d]="*");return c.join("")===b.join("")}function s(a,b){return I(a)&&!G(b)?B[a]:H(b)&&I(a)?(B[a]&&!B.$delegates[a]&&(B.$delegates[a]=B[a]),B[a]=b,this):this}function t(a,b){return J(a)?b=a:b.name=a,p(b),this}function u(a,e,f,h,m,o,p){function s(b,c,d,f){var g=a.$broadcast("$stateNotFound",b,c,d);if(g.defaultPrevented)return p.update(),B;if(!g.retry)return null;if(f.$retry)return p.update(),C;var h=x.transition=e.when(g.retry);return h.then(function(){return h!==x.transition?u:(b.options.$retry=!0,x.transitionTo(b.to,b.toParams,b.options))},function(){return B}),p.update(),h}function t(a,c,d,g,i,j){var l=d?c:k(a.params.$$keys(),c),n={$stateParams:l};i.resolve=m.resolve(a.resolve,n,i.resolve,a);var o=[i.resolve.then(function(a){i.globals=a})];return g&&o.push(g),L(a.views,function(c,d){var e=c.resolve&&c.resolve!==a.resolve?c.resolve:{};e.$template=[function(){return f.load(d,{view:c,locals:n,params:l,notify:j.notify})||""}],o.push(m.resolve(e,n,i.resolve,a).then(function(f){if(H(c.controllerProvider)||K(c.controllerProvider)){var g=b.extend({},e,n);f.$$controller=h.invoke(c.controllerProvider,null,g)}else f.$$controller=c.controller;f.$$state=a,f.$$controllerAs=c.controllerAs,i[d]=f}))}),e.all(o).then(function(){return i})}var u=e.reject(new Error("transition superseded")),z=e.reject(new Error("transition prevented")),B=e.reject(new Error("transition aborted")),C=e.reject(new Error("transition failed"));return w.locals={resolve:null,globals:{$stateParams:{}}},x={params:{},current:w.self,$current:w,transition:null},x.reload=function(){return x.transitionTo(x.current,o,{reload:!0,inherit:!1,notify:!0})},x.go=function(a,b,c){return x.transitionTo(a,b,M({inherit:!0,relative:x.$current},c))},x.transitionTo=function(b,c,f){c=c||{},f=M({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},f||{});var g,j=x.$current,m=x.params,n=j.path,q=l(b,f.relative);if(!G(q)){var r={to:b,toParams:c,options:f},y=s(r,j.self,m,f);if(y)return y;if(b=r.to,c=r.toParams,f=r.options,q=l(b,f.relative),!G(q)){if(!f.relative)throw new Error("No such state '"+b+"'");throw new Error("Could not resolve '"+b+"' from state '"+f.relative+"'")}}if(q[A])throw new Error("Cannot transition to abstract state '"+b+"'");if(f.inherit&&(c=i(o,c||{},x.$current,q)),!q.params.$$validates(c))return C;c=q.params.$$values(c),b=q;var B=b.path,D=0,E=B[D],F=w.locals,H=[];if(!f.reload)for(;E&&E===n[D]&&E.ownParams.$$equals(c,m);)F=H[D]=E.locals,D++,E=B[D];if(v(b,j,F,f))return b.self.reloadOnSearch!==!1&&p.update(),x.transition=null,e.when(x.current);if(c=k(b.params.$$keys(),c||{}),f.notify&&a.$broadcast("$stateChangeStart",b.self,c,j.self,m).defaultPrevented)return p.update(),z;for(var I=e.when(F),J=D;J=D;d--)g=n[d],g.self.onExit&&h.invoke(g.self.onExit,g.self,g.locals.globals),g.locals=null;for(d=D;d=0?e:e+"@"+(f?f.state.name:"")}function A(a,b){var c,d=a.match(/^\s*({[^}]*})\s*$/);if(d&&(a=b+"("+d[1]+")"),c=a.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/),!c||4!==c.length)throw new Error("Invalid state ref '"+a+"'");return{state:c[1],paramExpr:c[3]||null}}function B(a){var b=a.parent().inheritedData("$uiView");return b&&b.state&&b.state.name?b.state:void 0}function C(a,c){var d=["location","inherit","reload"];return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(e,f,g,h){var i=A(g.uiSref,a.current.name),j=null,k=B(f)||a.$current,l=null,m="A"===f.prop("tagName"),n="FORM"===f[0].nodeName,o=n?"action":"href",p=!0,q={relative:k,inherit:!0},r=e.$eval(g.uiSrefOpts)||{};b.forEach(d,function(a){a in r&&(q[a]=r[a])});var s=function(c){if(c&&(j=b.copy(c)),p){l=a.href(i.state,j,q);var d=h[1]||h[0];return d&&d.$$setStateInfo(i.state,j),null===l?(p=!1,!1):void g.$set(o,l)}};i.paramExpr&&(e.$watch(i.paramExpr,function(a){a!==j&&s(a)},!0),j=b.copy(e.$eval(i.paramExpr))),s(),n||f.bind("click",function(b){var d=b.which||b.button;if(!(d>1||b.ctrlKey||b.metaKey||b.shiftKey||f.attr("target"))){var e=c(function(){a.go(i.state,j,q)});b.preventDefault();var g=m&&!l?1:0;b.preventDefault=function(){g--<=0&&c.cancel(e)}}})}}}function D(a,b,c){return{restrict:"A",controller:["$scope","$element","$attrs",function(b,d,e){function f(){g()?d.addClass(j):d.removeClass(j)}function g(){return"undefined"!=typeof e.uiSrefActiveEq?h&&a.is(h.name,i):h&&a.includes(h.name,i)}var h,i,j;j=c(e.uiSrefActiveEq||e.uiSrefActive||"",!1)(b),this.$$setStateInfo=function(b,c){h=a.get(b,B(d)),i=c,f()},b.$on("$stateChangeSuccess",f)}]}}function E(a){var b=function(b){return a.is(b)};return b.$stateful=!0,b}function F(a){var b=function(b){return a.includes(b)};return b.$stateful=!0,b}var G=b.isDefined,H=b.isFunction,I=b.isString,J=b.isObject,K=b.isArray,L=b.forEach,M=b.extend,N=b.copy;b.module("ui.router.util",["ng"]),b.module("ui.router.router",["ui.router.util"]),b.module("ui.router.state",["ui.router.router","ui.router.util"]),b.module("ui.router",["ui.router.state"]),b.module("ui.router.compat",["ui.router"]),o.$inject=["$q","$injector"],b.module("ui.router.util").service("$resolve",o),p.$inject=["$http","$templateCache","$injector"],b.module("ui.router.util").service("$templateFactory",p);var O;q.prototype.concat=function(a,b){var c={caseInsensitive:O.caseInsensitive(),strict:O.strictMode(),squash:O.defaultSquashPolicy()};return new q(this.sourcePath+a+this.sourceSearch,M(c,b),this)},q.prototype.toString=function(){return this.source},q.prototype.exec=function(a,b){function c(a){function b(a){return a.split("").reverse().join("")}function c(a){return a.replace(/\\-/,"-")}var d=b(a).split(/-(?!\\)/),e=n(d,b);return n(e,c).reverse()}var d=this.regexp.exec(a);if(!d)return null;b=b||{};var e,f,g,h=this.parameters(),i=h.length,j=this.segments.length-1,k={};if(j!==d.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");for(e=0;j>e;e++){g=h[e];var l=this.params[g],m=d[e+1];for(f=0;fe;e++)g=h[e],k[g]=this.params[g].value(b[g]);return k},q.prototype.parameters=function(a){return G(a)?this.params[a]||null:this.$$paramNames},q.prototype.validates=function(a){return this.params.$$validates(a)},q.prototype.format=function(a){function b(a){return encodeURIComponent(a).replace(/-/g,function(a){return"%5C%"+a.charCodeAt(0).toString(16).toUpperCase()})}a=a||{};var c=this.segments,d=this.parameters(),e=this.params;if(!this.validates(a))return null;var f,g=!1,h=c.length-1,i=d.length,j=c[0];for(f=0;i>f;f++){var k=h>f,l=d[f],m=e[l],o=m.value(a[l]),p=m.isOptional&&m.type.equals(m.value(),o),q=p?m.squash:!1,r=m.type.encode(o);if(k){var s=c[f+1];if(q===!1)null!=r&&(j+=K(r)?n(r,b).join("-"):encodeURIComponent(r)),j+=s;else if(q===!0){var t=j.match(/\/$/)?/\/?(.*)/:/(.*)/;j+=s.match(t)[1]}else I(q)&&(j+=q+s)}else{if(null==r||p&&q!==!1)continue;K(r)||(r=[r]),r=n(r,encodeURIComponent).join("&"+l+"="),j+=(g?"&":"?")+(l+"="+r),g=!0}}return j},r.prototype.is=function(){return!0},r.prototype.encode=function(a){return a},r.prototype.decode=function(a){return a},r.prototype.equals=function(a,b){return a==b},r.prototype.$subPattern=function(){var a=this.pattern.toString();return a.substr(1,a.length-2)},r.prototype.pattern=/.*/,r.prototype.toString=function(){return"{Type:"+this.name+"}"},r.prototype.$asArray=function(a,b){function d(a,b){function d(a,b){return function(){return a[b].apply(a,arguments)}}function e(a){return K(a)?a:G(a)?[a]:[]}function f(a){switch(a.length){case 0:return c;case 1:return"auto"===b?a[0]:a;default:return a}}function g(a){return!a}function h(a,b){return function(c){c=e(c);var d=n(c,a);return b===!0?0===m(d,g).length:f(d)}}function i(a){return function(b,c){var d=e(b),f=e(c);if(d.length!==f.length)return!1;for(var g=0;g 0) { + className += (i > 0) ? ' ' : ''; + className += isPrefix ? fix + klass + : klass + fix; + } + }); + return className; +} + +function removeFromArray(arr, val) { + var index = arr.indexOf(val); + if (val >= 0) { + arr.splice(index, 1); + } +} + +function stripCommentsFromElement(element) { + if (element instanceof jqLite) { + switch (element.length) { + case 0: + return []; + break; + + case 1: + // there is no point of stripping anything if the element + // is the only element within the jqLite wrapper. + // (it's important that we retain the element instance.) + if (element[0].nodeType === ELEMENT_NODE) { + return element; + } + break; + + default: + return jqLite(extractElementNode(element)); + break; + } + } + + if (element.nodeType === ELEMENT_NODE) { + return jqLite(element); + } +} + +function extractElementNode(element) { + if (!element[0]) return element; + for (var i = 0; i < element.length; i++) { + var elm = element[i]; + if (elm.nodeType == ELEMENT_NODE) { + return elm; + } + } +} + +function $$addClass($$jqLite, element, className) { + forEach(element, function(elm) { + $$jqLite.addClass(elm, className); + }); +} + +function $$removeClass($$jqLite, element, className) { + forEach(element, function(elm) { + $$jqLite.removeClass(elm, className); + }); +} + +function applyAnimationClassesFactory($$jqLite) { + return function(element, options) { + if (options.addClass) { + $$addClass($$jqLite, element, options.addClass); + options.addClass = null; + } + if (options.removeClass) { + $$removeClass($$jqLite, element, options.removeClass); + options.removeClass = null; + } + } +} + +function prepareAnimationOptions(options) { + options = options || {}; + if (!options.$$prepared) { + var domOperation = options.domOperation || noop; + options.domOperation = function() { + options.$$domOperationFired = true; + domOperation(); + domOperation = noop; + }; + options.$$prepared = true; + } + return options; +} + +function applyAnimationStyles(element, options) { + applyAnimationFromStyles(element, options); + applyAnimationToStyles(element, options); +} + +function applyAnimationFromStyles(element, options) { + if (options.from) { + element.css(options.from); + options.from = null; + } +} + +function applyAnimationToStyles(element, options) { + if (options.to) { + element.css(options.to); + options.to = null; + } +} + +function mergeAnimationOptions(element, target, newOptions) { + var toAdd = (target.addClass || '') + ' ' + (newOptions.addClass || ''); + var toRemove = (target.removeClass || '') + ' ' + (newOptions.removeClass || ''); + var classes = resolveElementClasses(element.attr('class'), toAdd, toRemove); + + extend(target, newOptions); + + if (classes.addClass) { + target.addClass = classes.addClass; + } else { + target.addClass = null; + } + + if (classes.removeClass) { + target.removeClass = classes.removeClass; + } else { + target.removeClass = null; + } + + return target; +} + +function resolveElementClasses(existing, toAdd, toRemove) { + var ADD_CLASS = 1; + var REMOVE_CLASS = -1; + + var flags = {}; + existing = splitClassesToLookup(existing); + + toAdd = splitClassesToLookup(toAdd); + forEach(toAdd, function(value, key) { + flags[key] = ADD_CLASS; + }); + + toRemove = splitClassesToLookup(toRemove); + forEach(toRemove, function(value, key) { + flags[key] = flags[key] === ADD_CLASS ? null : REMOVE_CLASS; + }); + + var classes = { + addClass: '', + removeClass: '' + }; + + forEach(flags, function(val, klass) { + var prop, allow; + if (val === ADD_CLASS) { + prop = 'addClass'; + allow = !existing[klass]; + } else if (val === REMOVE_CLASS) { + prop = 'removeClass'; + allow = existing[klass]; + } + if (allow) { + if (classes[prop].length) { + classes[prop] += ' '; + } + classes[prop] += klass; + } + }); + + function splitClassesToLookup(classes) { + if (isString(classes)) { + classes = classes.split(' '); + } + + var obj = {}; + forEach(classes, function(klass) { + // sometimes the split leaves empty string values + // incase extra spaces were applied to the options + if (klass.length) { + obj[klass] = true; + } + }); + return obj; + } + + return classes; +} + +function getDomNode(element) { + return (element instanceof angular.element) ? element[0] : element; +} + +var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) { + var tickQueue = []; + var cancelFn; + + function scheduler(tasks) { + // we make a copy since RAFScheduler mutates the state + // of the passed in array variable and this would be difficult + // to track down on the outside code + tickQueue.push([].concat(tasks)); + nextTick(); + } + + /* waitUntilQuiet does two things: + * 1. It will run the FINAL `fn` value only when an uncancelled RAF has passed through + * 2. It will delay the next wave of tasks from running until the quiet `fn` has run. + * + * The motivation here is that animation code can request more time from the scheduler + * before the next wave runs. This allows for certain DOM properties such as classes to + * be resolved in time for the next animation to run. + */ + scheduler.waitUntilQuiet = function(fn) { + if (cancelFn) cancelFn(); + + cancelFn = $$rAF(function() { + cancelFn = null; + fn(); + nextTick(); + }); + }; + + return scheduler; + + function nextTick() { + if (!tickQueue.length) return; + + var updatedQueue = []; + for (var i = 0; i < tickQueue.length; i++) { + var innerQueue = tickQueue[i]; + runNextTask(innerQueue); + if (innerQueue.length) { + updatedQueue.push(innerQueue); + } + } + tickQueue = updatedQueue; + + if (!cancelFn) { + $$rAF(function() { + if (!cancelFn) nextTick(); + }); + } + } + + function runNextTask(tasks) { + var nextTask = tasks.shift(); + nextTask(); + } +}]; + +var $$AnimateChildrenDirective = [function() { + return function(scope, element, attrs) { + var val = attrs.ngAnimateChildren; + if (angular.isString(val) && val.length === 0) { //empty attribute + element.data(NG_ANIMATE_CHILDREN_DATA, true); + } else { + attrs.$observe('ngAnimateChildren', function(value) { + value = value === 'on' || value === 'true'; + element.data(NG_ANIMATE_CHILDREN_DATA, value); + }); + } + }; +}]; + +/** + * @ngdoc service + * @name $animateCss + * @kind object + * + * @description + * The `$animateCss` service is a useful utility to trigger customized CSS-based transitions/keyframes + * from a JavaScript-based animation or directly from a directive. The purpose of `$animateCss` is NOT + * to side-step how `$animate` and ngAnimate work, but the goal is to allow pre-existing animations or + * directives to create more complex animations that can be purely driven using CSS code. + * + * Note that only browsers that support CSS transitions and/or keyframe animations are capable of + * rendering animations triggered via `$animateCss` (bad news for IE9 and lower). + * + * ## Usage + * Once again, `$animateCss` is designed to be used inside of a registered JavaScript animation that + * is powered by ngAnimate. It is possible to use `$animateCss` directly inside of a directive, however, + * any automatic control over cancelling animations and/or preventing animations from being run on + * child elements will not be handled by Angular. For this to work as expected, please use `$animate` to + * trigger the animation and then setup a JavaScript animation that injects `$animateCss` to trigger + * the CSS animation. + * + * The example below shows how we can create a folding animation on an element using `ng-if`: + * + * ```html + * + *
    + * This element will go BOOM + *
    + * + * ``` + * + * Now we create the **JavaScript animation** that will trigger the CSS transition: + * + * ```js + * ngModule.animation('.fold-animation', ['$animateCss', function($animateCss) { + * return { + * enter: function(element, doneFn) { + * var height = element[0].offsetHeight; + * return $animateCss(element, { + * from: { height:'0px' }, + * to: { height:height + 'px' }, + * duration: 1 // one second + * }); + * } + * } + * }]); + * ``` + * + * ## More Advanced Uses + * + * `$animateCss` is the underlying code that ngAnimate uses to power **CSS-based animations** behind the scenes. Therefore CSS hooks + * like `.ng-EVENT`, `.ng-EVENT-active`, `.ng-EVENT-stagger` are all features that can be triggered using `$animateCss` via JavaScript code. + * + * This also means that just about any combination of adding classes, removing classes, setting styles, dynamically setting a keyframe animation, + * applying a hardcoded duration or delay value, changing the animation easing or applying a stagger animation are all options that work with + * `$animateCss`. The service itself is smart enough to figure out the combination of options and examine the element styling properties in order + * to provide a working animation that will run in CSS. + * + * The example below showcases a more advanced version of the `.fold-animation` from the example above: + * + * ```js + * ngModule.animation('.fold-animation', ['$animateCss', function($animateCss) { + * return { + * enter: function(element, doneFn) { + * var height = element[0].offsetHeight; + * return $animateCss(element, { + * addClass: 'red large-text pulse-twice', + * easing: 'ease-out', + * from: { height:'0px' }, + * to: { height:height + 'px' }, + * duration: 1 // one second + * }); + * } + * } + * }]); + * ``` + * + * Since we're adding/removing CSS classes then the CSS transition will also pick those up: + * + * ```css + * /* since a hardcoded duration value of 1 was provided in the JavaScript animation code, + * the CSS classes below will be transitioned despite them being defined as regular CSS classes */ + * .red { background:red; } + * .large-text { font-size:20px; } + * + * /* we can also use a keyframe animation and $animateCss will make it work alongside the transition */ + * .pulse-twice { + * animation: 0.5s pulse linear 2; + * -webkit-animation: 0.5s pulse linear 2; + * } + * + * @keyframes pulse { + * from { transform: scale(0.5); } + * to { transform: scale(1.5); } + * } + * + * @-webkit-keyframes pulse { + * from { -webkit-transform: scale(0.5); } + * to { -webkit-transform: scale(1.5); } + * } + * ``` + * + * Given this complex combination of CSS classes, styles and options, `$animateCss` will figure everything out and make the animation happen. + * + * ## How the Options are handled + * + * `$animateCss` is very versatile and intelligent when it comes to figuring out what configurations to apply to the element to ensure the animation + * works with the options provided. Say for example we were adding a class that contained a keyframe value and we wanted to also animate some inline + * styles using the `from` and `to` properties. + * + * ```js + * var animator = $animateCss(element, { + * from: { background:'red' }, + * to: { background:'blue' } + * }); + * animator.start(); + * ``` + * + * ```css + * .rotating-animation { + * animation:0.5s rotate linear; + * -webkit-animation:0.5s rotate linear; + * } + * + * @keyframes rotate { + * from { transform: rotate(0deg); } + * to { transform: rotate(360deg); } + * } + * + * @-webkit-keyframes rotate { + * from { -webkit-transform: rotate(0deg); } + * to { -webkit-transform: rotate(360deg); } + * } + * ``` + * + * The missing pieces here are that we do not have a transition set (within the CSS code nor within the `$animateCss` options) and the duration of the animation is + * going to be detected from what the keyframe styles on the CSS class are. In this event, `$animateCss` will automatically create an inline transition + * style matching the duration detected from the keyframe style (which is present in the CSS class that is being added) and then prepare both the transition + * and keyframe animations to run in parallel on the element. Then when the animation is underway the provided `from` and `to` CSS styles will be applied + * and spread across the transition and keyframe animation. + * + * ## What is returned + * + * `$animateCss` works in two stages: a preparation phase and an animation phase. Therefore when `$animateCss` is first called it will NOT actually + * start the animation. All that is going on here is that the element is being prepared for the animation (which means that the generated CSS classes are + * added and removed on the element). Once `$animateCss` is called it will return an object with the following properties: + * + * ```js + * var animator = $animateCss(element, { ... }); + * ``` + * + * Now what do the contents of our `animator` variable look like: + * + * ```js + * { + * // starts the animation + * start: Function, + * + * // ends (aborts) the animation + * end: Function + * } + * ``` + * + * To actually start the animation we need to run `animation.start()` which will then return a promise that we can hook into to detect when the animation ends. + * If we choose not to run the animation then we MUST run `animation.end()` to perform a cleanup on the element (since some CSS classes and stlyes may have been + * applied to the element during the preparation phase). Note that all other properties such as duration, delay, transitions and keyframes are just properties + * and that changing them will not reconfigure the parameters of the animation. + * + * ### runner.done() vs runner.then() + * It is documented that `animation.start()` will return a promise object and this is true, however, there is also an additional method available on the + * runner called `.done(callbackFn)`. The done method works the same as `.finally(callbackFn)`, however, it does **not trigger a digest to occur**. + * Therefore, for performance reasons, it's always best to use `runner.done(callback)` instead of `runner.then()`, `runner.catch()` or `runner.finally()` + * unless you really need a digest to kick off afterwards. + * + * Keep in mind that, to make this easier, ngAnimate has tweaked the JS animations API to recognize when a runner instance is returned from $animateCss + * (so there is no need to call `runner.done(doneFn)` inside of your JavaScript animation code). + * Check the {@link ngAnimate.$animateCss#usage animation code above} to see how this works. + * + * @param {DOMElement} element the element that will be animated + * @param {object} options the animation-related options that will be applied during the animation + * + * * `event` - The DOM event (e.g. enter, leave, move). When used, a generated CSS class of `ng-EVENT` and `ng-EVENT-active` will be applied + * to the element during the animation. Multiple events can be provided when spaces are used as a separator. (Note that this will not perform any DOM operation.) + * * `easing` - The CSS easing value that will be applied to the transition or keyframe animation (or both). + * * `transition` - The raw CSS transition style that will be used (e.g. `1s linear all`). + * * `keyframeStyle` - The raw CSS keyframe animation style that will be used (e.g. `1s my_animation linear`). + * * `from` - The starting CSS styles (a key/value object) that will be applied at the start of the animation. + * * `to` - The ending CSS styles (a key/value object) that will be applied across the animation via a CSS transition. + * * `addClass` - A space separated list of CSS classes that will be added to the element and spread across the animation. + * * `removeClass` - A space separated list of CSS classes that will be removed from the element and spread across the animation. + * * `duration` - A number value representing the total duration of the transition and/or keyframe (note that a value of 1 is 1000ms). If a value of `0` + * is provided then the animation will be skipped entirely. + * * `delay` - A number value representing the total delay of the transition and/or keyframe (note that a value of 1 is 1000ms). If a value of `true` is + * used then whatever delay value is detected from the CSS classes will be mirrored on the elements styles (e.g. by setting delay true then the style value + * of the element will be `transition-delay: DETECTED_VALUE`). Using `true` is useful when you want the CSS classes and inline styles to all share the same + * CSS delay value. + * * `stagger` - A numeric time value representing the delay between successively animated elements + * ({@link ngAnimate#css-staggering-animations Click here to learn how CSS-based staggering works in ngAnimate.}) + * * `staggerIndex` - The numeric index representing the stagger item (e.g. a value of 5 is equal to the sixth item in the stagger; therefore when a + * `stagger` option value of `0.1` is used then there will be a stagger delay of `600ms`) + * `applyClassesEarly` - Whether or not the classes being added or removed will be used when detecting the animation. This is set by `$animate` when enter/leave/move animations are fired to ensure that the CSS classes are resolved in time. (Note that this will prevent any transitions from occuring on the classes being added and removed.) + * + * @return {object} an object with start and end methods and details about the animation. + * + * * `start` - The method to start the animation. This will return a `Promise` when called. + * * `end` - This method will cancel the animation and remove all applied CSS classes and styles. + */ + +// Detect proper transitionend/animationend event names. +var CSS_PREFIX = '', TRANSITION_PROP, TRANSITIONEND_EVENT, ANIMATION_PROP, ANIMATIONEND_EVENT; + +// If unprefixed events are not supported but webkit-prefixed are, use the latter. +// Otherwise, just use W3C names, browsers not supporting them at all will just ignore them. +// Note: Chrome implements `window.onwebkitanimationend` and doesn't implement `window.onanimationend` +// but at the same time dispatches the `animationend` event and not `webkitAnimationEnd`. +// Register both events in case `window.onanimationend` is not supported because of that, +// do the same for `transitionend` as Safari is likely to exhibit similar behavior. +// Also, the only modern browser that uses vendor prefixes for transitions/keyframes is webkit +// therefore there is no reason to test anymore for other vendor prefixes: +// http://caniuse.com/#search=transition +if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) { + CSS_PREFIX = '-webkit-'; + TRANSITION_PROP = 'WebkitTransition'; + TRANSITIONEND_EVENT = 'webkitTransitionEnd transitionend'; +} else { + TRANSITION_PROP = 'transition'; + TRANSITIONEND_EVENT = 'transitionend'; +} + +if (window.onanimationend === undefined && window.onwebkitanimationend !== undefined) { + CSS_PREFIX = '-webkit-'; + ANIMATION_PROP = 'WebkitAnimation'; + ANIMATIONEND_EVENT = 'webkitAnimationEnd animationend'; +} else { + ANIMATION_PROP = 'animation'; + ANIMATIONEND_EVENT = 'animationend'; +} + +var DURATION_KEY = 'Duration'; +var PROPERTY_KEY = 'Property'; +var DELAY_KEY = 'Delay'; +var TIMING_KEY = 'TimingFunction'; +var ANIMATION_ITERATION_COUNT_KEY = 'IterationCount'; +var ANIMATION_PLAYSTATE_KEY = 'PlayState'; +var ELAPSED_TIME_MAX_DECIMAL_PLACES = 3; +var CLOSING_TIME_BUFFER = 1.5; +var ONE_SECOND = 1000; +var BASE_TEN = 10; + +var SAFE_FAST_FORWARD_DURATION_VALUE = 9999; + +var ANIMATION_DELAY_PROP = ANIMATION_PROP + DELAY_KEY; +var ANIMATION_DURATION_PROP = ANIMATION_PROP + DURATION_KEY; + +var TRANSITION_DELAY_PROP = TRANSITION_PROP + DELAY_KEY; +var TRANSITION_DURATION_PROP = TRANSITION_PROP + DURATION_KEY; + +var DETECT_CSS_PROPERTIES = { + transitionDuration: TRANSITION_DURATION_PROP, + transitionDelay: TRANSITION_DELAY_PROP, + transitionProperty: TRANSITION_PROP + PROPERTY_KEY, + animationDuration: ANIMATION_DURATION_PROP, + animationDelay: ANIMATION_DELAY_PROP, + animationIterationCount: ANIMATION_PROP + ANIMATION_ITERATION_COUNT_KEY +}; + +var DETECT_STAGGER_CSS_PROPERTIES = { + transitionDuration: TRANSITION_DURATION_PROP, + transitionDelay: TRANSITION_DELAY_PROP, + animationDuration: ANIMATION_DURATION_PROP, + animationDelay: ANIMATION_DELAY_PROP +}; + +function computeCssStyles($window, element, properties) { + var styles = Object.create(null); + var detectedStyles = $window.getComputedStyle(element) || {}; + forEach(properties, function(formalStyleName, actualStyleName) { + var val = detectedStyles[formalStyleName]; + if (val) { + var c = val.charAt(0); + + // only numerical-based values have a negative sign or digit as the first value + if (c === '-' || c === '+' || c >= 0) { + val = parseMaxTime(val); + } + + // by setting this to null in the event that the delay is not set or is set directly as 0 + // then we can still allow for zegative values to be used later on and not mistake this + // value for being greater than any other negative value. + if (val === 0) { + val = null; + } + styles[actualStyleName] = val; + } + }); + + return styles; +} + +function parseMaxTime(str) { + var maxValue = 0; + var values = str.split(/\s*,\s*/); + forEach(values, function(value) { + // it's always safe to consider only second values and omit `ms` values since + // getComputedStyle will always handle the conversion for us + if (value.charAt(value.length - 1) == 's') { + value = value.substring(0, value.length - 1); + } + value = parseFloat(value) || 0; + maxValue = maxValue ? Math.max(value, maxValue) : value; + }); + return maxValue; +} + +function truthyTimingValue(val) { + return val === 0 || val != null; +} + +function getCssTransitionDurationStyle(duration, applyOnlyDuration) { + var style = TRANSITION_PROP; + var value = duration + 's'; + if (applyOnlyDuration) { + style += DURATION_KEY; + } else { + value += ' linear all'; + } + return [style, value]; +} + +function getCssKeyframeDurationStyle(duration) { + return [ANIMATION_DURATION_PROP, duration + 's']; +} + +function getCssDelayStyle(delay, isKeyframeAnimation) { + var prop = isKeyframeAnimation ? ANIMATION_DELAY_PROP : TRANSITION_DELAY_PROP; + return [prop, delay + 's']; +} + +function blockTransitions(node, duration) { + // we use a negative delay value since it performs blocking + // yet it doesn't kill any existing transitions running on the + // same element which makes this safe for class-based animations + var value = duration ? '-' + duration + 's' : ''; + applyInlineStyle(node, [TRANSITION_DELAY_PROP, value]); + return [TRANSITION_DELAY_PROP, value]; +} + +function blockKeyframeAnimations(node, applyBlock) { + var value = applyBlock ? 'paused' : ''; + var key = ANIMATION_PROP + ANIMATION_PLAYSTATE_KEY; + applyInlineStyle(node, [key, value]); + return [key, value]; +} + +function applyInlineStyle(node, styleTuple) { + var prop = styleTuple[0]; + var value = styleTuple[1]; + node.style[prop] = value; +} + +function createLocalCacheLookup() { + var cache = Object.create(null); + return { + flush: function() { + cache = Object.create(null); + }, + + count: function(key) { + var entry = cache[key]; + return entry ? entry.total : 0; + }, + + get: function(key) { + var entry = cache[key]; + return entry && entry.value; + }, + + put: function(key, value) { + if (!cache[key]) { + cache[key] = { total: 1, value: value }; + } else { + cache[key].total++; + } + } + }; +} + +var $AnimateCssProvider = ['$animateProvider', function($animateProvider) { + var gcsLookup = createLocalCacheLookup(); + var gcsStaggerLookup = createLocalCacheLookup(); + + this.$get = ['$window', '$$jqLite', '$$AnimateRunner', '$timeout', + '$document', '$sniffer', '$$rAFScheduler', + function($window, $$jqLite, $$AnimateRunner, $timeout, + $document, $sniffer, $$rAFScheduler) { + + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + + var parentCounter = 0; + function gcsHashFn(node, extraClasses) { + var KEY = "$$ngAnimateParentKey"; + var parentNode = node.parentNode; + var parentID = parentNode[KEY] || (parentNode[KEY] = ++parentCounter); + return parentID + '-' + node.getAttribute('class') + '-' + extraClasses; + } + + function computeCachedCssStyles(node, className, cacheKey, properties) { + var timings = gcsLookup.get(cacheKey); + + if (!timings) { + timings = computeCssStyles($window, node, properties); + if (timings.animationIterationCount === 'infinite') { + timings.animationIterationCount = 1; + } + } + + // we keep putting this in multiple times even though the value and the cacheKey are the same + // because we're keeping an interal tally of how many duplicate animations are detected. + gcsLookup.put(cacheKey, timings); + return timings; + } + + function computeCachedCssStaggerStyles(node, className, cacheKey, properties) { + var stagger; + + // if we have one or more existing matches of matching elements + // containing the same parent + CSS styles (which is how cacheKey works) + // then staggering is possible + if (gcsLookup.count(cacheKey) > 0) { + stagger = gcsStaggerLookup.get(cacheKey); + + if (!stagger) { + var staggerClassName = pendClasses(className, '-stagger'); + + $$jqLite.addClass(node, staggerClassName); + + stagger = computeCssStyles($window, node, properties); + + // force the conversion of a null value to zero incase not set + stagger.animationDuration = Math.max(stagger.animationDuration, 0); + stagger.transitionDuration = Math.max(stagger.transitionDuration, 0); + + $$jqLite.removeClass(node, staggerClassName); + + gcsStaggerLookup.put(cacheKey, stagger); + } + } + + return stagger || {}; + } + + var bod = getDomNode($document).body; + var rafWaitQueue = []; + function waitUntilQuiet(callback) { + rafWaitQueue.push(callback); + $$rAFScheduler.waitUntilQuiet(function() { + gcsLookup.flush(); + gcsStaggerLookup.flush(); + + //the line below will force the browser to perform a repaint so + //that all the animated elements within the animation frame will + //be properly updated and drawn on screen. This is required to + //ensure that the preparation animation is properly flushed so that + //the active state picks up from there. DO NOT REMOVE THIS LINE. + //DO NOT OPTIMIZE THIS LINE. THE MINIFIER WILL REMOVE IT OTHERWISE WHICH + //WILL RESULT IN AN UNPREDICTABLE BUG THAT IS VERY HARD TO TRACK DOWN AND + //WILL TAKE YEARS AWAY FROM YOUR LIFE. + var width = bod.offsetWidth + 1; + + // we use a for loop to ensure that if the queue is changed + // during this looping then it will consider new requests + for (var i = 0; i < rafWaitQueue.length; i++) { + rafWaitQueue[i](width); + } + rafWaitQueue.length = 0; + }); + } + + return init; + + function computeTimings(node, className, cacheKey) { + var timings = computeCachedCssStyles(node, className, cacheKey, DETECT_CSS_PROPERTIES); + var aD = timings.animationDelay; + var tD = timings.transitionDelay; + timings.maxDelay = aD && tD + ? Math.max(aD, tD) + : (aD || tD); + timings.maxDuration = Math.max( + timings.animationDuration * timings.animationIterationCount, + timings.transitionDuration); + + return timings; + } + + function init(element, options) { + var node = getDomNode(element); + if (!node || !node.parentNode) { + return closeAndReturnNoopAnimator(); + } + + options = prepareAnimationOptions(options); + + var temporaryStyles = []; + var classes = element.attr('class'); + var styles = packageStyles(options); + var animationClosed; + var animationPaused; + var animationCompleted; + var runner; + var runnerHost; + var maxDelay; + var maxDelayTime; + var maxDuration; + var maxDurationTime; + + if (options.duration === 0 || (!$sniffer.animations && !$sniffer.transitions)) { + return closeAndReturnNoopAnimator(); + } + + var method = options.event && isArray(options.event) + ? options.event.join(' ') + : options.event; + + var isStructural = method && options.structural; + var structuralClassName = ''; + var addRemoveClassName = ''; + + if (isStructural) { + structuralClassName = pendClasses(method, 'ng-', true); + } else if (method) { + structuralClassName = method; + } + + if (options.addClass) { + addRemoveClassName += pendClasses(options.addClass, '-add'); + } + + if (options.removeClass) { + if (addRemoveClassName.length) { + addRemoveClassName += ' '; + } + addRemoveClassName += pendClasses(options.removeClass, '-remove'); + } + + // there may be a situation where a structural animation is combined together + // with CSS classes that need to resolve before the animation is computed. + // However this means that there is no explicit CSS code to block the animation + // from happening (by setting 0s none in the class name). If this is the case + // we need to apply the classes before the first rAF so we know to continue if + // there actually is a detected transition or keyframe animation + if (options.applyClassesEarly && addRemoveClassName.length) { + applyAnimationClasses(element, options); + addRemoveClassName = ''; + } + + var setupClasses = [structuralClassName, addRemoveClassName].join(' ').trim(); + var fullClassName = classes + ' ' + setupClasses; + var activeClasses = pendClasses(setupClasses, '-active'); + var hasToStyles = styles.to && Object.keys(styles.to).length > 0; + var containsKeyframeAnimation = (options.keyframeStyle || '').length > 0; + + // there is no way we can trigger an animation if no styles and + // no classes are being applied which would then trigger a transition, + // unless there a is raw keyframe value that is applied to the element. + if (!containsKeyframeAnimation + && !hasToStyles + && !setupClasses) { + return closeAndReturnNoopAnimator(); + } + + var cacheKey, stagger; + if (options.stagger > 0) { + var staggerVal = parseFloat(options.stagger); + stagger = { + transitionDelay: staggerVal, + animationDelay: staggerVal, + transitionDuration: 0, + animationDuration: 0 + }; + } else { + cacheKey = gcsHashFn(node, fullClassName); + stagger = computeCachedCssStaggerStyles(node, setupClasses, cacheKey, DETECT_STAGGER_CSS_PROPERTIES); + } + + $$jqLite.addClass(element, setupClasses); + + var applyOnlyDuration; + + if (options.transitionStyle) { + var transitionStyle = [TRANSITION_PROP, options.transitionStyle]; + applyInlineStyle(node, transitionStyle); + temporaryStyles.push(transitionStyle); + } + + if (options.duration >= 0) { + applyOnlyDuration = node.style[TRANSITION_PROP].length > 0; + var durationStyle = getCssTransitionDurationStyle(options.duration, applyOnlyDuration); + + // we set the duration so that it will be picked up by getComputedStyle later + applyInlineStyle(node, durationStyle); + temporaryStyles.push(durationStyle); + } + + if (options.keyframeStyle) { + var keyframeStyle = [ANIMATION_PROP, options.keyframeStyle]; + applyInlineStyle(node, keyframeStyle); + temporaryStyles.push(keyframeStyle); + } + + var itemIndex = stagger + ? options.staggerIndex >= 0 + ? options.staggerIndex + : gcsLookup.count(cacheKey) + : 0; + + var isFirst = itemIndex === 0; + + // this is a pre-emptive way of forcing the setup classes to be added and applied INSTANTLY + // without causing any combination of transitions to kick in. By adding a negative delay value + // it forces the setup class' transition to end immediately. We later then remove the negative + // transition delay to allow for the transition to naturally do it's thing. The beauty here is + // that if there is no transition defined then nothing will happen and this will also allow + // other transitions to be stacked on top of each other without any chopping them out. + if (isFirst) { + blockTransitions(node, SAFE_FAST_FORWARD_DURATION_VALUE); + } + + var timings = computeTimings(node, fullClassName, cacheKey); + var relativeDelay = timings.maxDelay; + maxDelay = Math.max(relativeDelay, 0); + maxDuration = timings.maxDuration; + + var flags = {}; + flags.hasTransitions = timings.transitionDuration > 0; + flags.hasAnimations = timings.animationDuration > 0; + flags.hasTransitionAll = flags.hasTransitions && timings.transitionProperty == 'all'; + flags.applyTransitionDuration = hasToStyles && ( + (flags.hasTransitions && !flags.hasTransitionAll) + || (flags.hasAnimations && !flags.hasTransitions)); + flags.applyAnimationDuration = options.duration && flags.hasAnimations; + flags.applyTransitionDelay = truthyTimingValue(options.delay) && (flags.applyTransitionDuration || flags.hasTransitions); + flags.applyAnimationDelay = truthyTimingValue(options.delay) && flags.hasAnimations; + flags.recalculateTimingStyles = addRemoveClassName.length > 0; + + if (flags.applyTransitionDuration || flags.applyAnimationDuration) { + maxDuration = options.duration ? parseFloat(options.duration) : maxDuration; + + if (flags.applyTransitionDuration) { + flags.hasTransitions = true; + timings.transitionDuration = maxDuration; + applyOnlyDuration = node.style[TRANSITION_PROP + PROPERTY_KEY].length > 0; + temporaryStyles.push(getCssTransitionDurationStyle(maxDuration, applyOnlyDuration)); + } + + if (flags.applyAnimationDuration) { + flags.hasAnimations = true; + timings.animationDuration = maxDuration; + temporaryStyles.push(getCssKeyframeDurationStyle(maxDuration)); + } + } + + if (maxDuration === 0 && !flags.recalculateTimingStyles) { + return closeAndReturnNoopAnimator(); + } + + // we need to recalculate the delay value since we used a pre-emptive negative + // delay value and the delay value is required for the final event checking. This + // property will ensure that this will happen after the RAF phase has passed. + if (options.duration == null && timings.transitionDuration > 0) { + flags.recalculateTimingStyles = flags.recalculateTimingStyles || isFirst; + } + + maxDelayTime = maxDelay * ONE_SECOND; + maxDurationTime = maxDuration * ONE_SECOND; + if (!options.skipBlocking) { + flags.blockTransition = timings.transitionDuration > 0; + flags.blockKeyframeAnimation = timings.animationDuration > 0 && + stagger.animationDelay > 0 && + stagger.animationDuration === 0; + } + + applyAnimationFromStyles(element, options); + if (!flags.blockTransition) { + blockTransitions(node, false); + } + + applyBlocking(maxDuration); + + // TODO(matsko): for 1.5 change this code to have an animator object for better debugging + return { + $$willAnimate: true, + end: endFn, + start: function() { + if (animationClosed) return; + + runnerHost = { + end: endFn, + cancel: cancelFn, + resume: null, //this will be set during the start() phase + pause: null + }; + + runner = new $$AnimateRunner(runnerHost); + + waitUntilQuiet(start); + + // we don't have access to pause/resume the animation + // since it hasn't run yet. AnimateRunner will therefore + // set noop functions for resume and pause and they will + // later be overridden once the animation is triggered + return runner; + } + }; + + function endFn() { + close(); + } + + function cancelFn() { + close(true); + } + + function close(rejected) { // jshint ignore:line + // if the promise has been called already then we shouldn't close + // the animation again + if (animationClosed || (animationCompleted && animationPaused)) return; + animationClosed = true; + animationPaused = false; + + $$jqLite.removeClass(element, setupClasses); + $$jqLite.removeClass(element, activeClasses); + + blockKeyframeAnimations(node, false); + blockTransitions(node, false); + + forEach(temporaryStyles, function(entry) { + // There is only one way to remove inline style properties entirely from elements. + // By using `removeProperty` this works, but we need to convert camel-cased CSS + // styles down to hyphenated values. + node.style[entry[0]] = ''; + }); + + applyAnimationClasses(element, options); + applyAnimationStyles(element, options); + + // the reason why we have this option is to allow a synchronous closing callback + // that is fired as SOON as the animation ends (when the CSS is removed) or if + // the animation never takes off at all. A good example is a leave animation since + // the element must be removed just after the animation is over or else the element + // will appear on screen for one animation frame causing an overbearing flicker. + if (options.onDone) { + options.onDone(); + } + + // if the preparation function fails then the promise is not setup + if (runner) { + runner.complete(!rejected); + } + } + + function applyBlocking(duration) { + if (flags.blockTransition) { + blockTransitions(node, duration); + } + + if (flags.blockKeyframeAnimation) { + blockKeyframeAnimations(node, !!duration); + } + } + + function closeAndReturnNoopAnimator() { + runner = new $$AnimateRunner({ + end: endFn, + cancel: cancelFn + }); + + close(); + + return { + $$willAnimate: false, + start: function() { + return runner; + }, + end: endFn + }; + } + + function start() { + if (animationClosed) return; + if (!node.parentNode) { + close(); + return; + } + + var startTime, events = []; + + // even though we only pause keyframe animations here the pause flag + // will still happen when transitions are used. Only the transition will + // not be paused since that is not possible. If the animation ends when + // paused then it will not complete until unpaused or cancelled. + var playPause = function(playAnimation) { + if (!animationCompleted) { + animationPaused = !playAnimation; + if (timings.animationDuration) { + var value = blockKeyframeAnimations(node, animationPaused); + animationPaused + ? temporaryStyles.push(value) + : removeFromArray(temporaryStyles, value); + } + } else if (animationPaused && playAnimation) { + animationPaused = false; + close(); + } + }; + + // checking the stagger duration prevents an accidently cascade of the CSS delay style + // being inherited from the parent. If the transition duration is zero then we can safely + // rely that the delay value is an intential stagger delay style. + var maxStagger = itemIndex > 0 + && ((timings.transitionDuration && stagger.transitionDuration === 0) || + (timings.animationDuration && stagger.animationDuration === 0)) + && Math.max(stagger.animationDelay, stagger.transitionDelay); + if (maxStagger) { + $timeout(triggerAnimationStart, + Math.floor(maxStagger * itemIndex * ONE_SECOND), + false); + } else { + triggerAnimationStart(); + } + + // this will decorate the existing promise runner with pause/resume methods + runnerHost.resume = function() { + playPause(true); + }; + + runnerHost.pause = function() { + playPause(false); + }; + + function triggerAnimationStart() { + // just incase a stagger animation kicks in when the animation + // itself was cancelled entirely + if (animationClosed) return; + + applyBlocking(false); + + forEach(temporaryStyles, function(entry) { + var key = entry[0]; + var value = entry[1]; + node.style[key] = value; + }); + + applyAnimationClasses(element, options); + $$jqLite.addClass(element, activeClasses); + + if (flags.recalculateTimingStyles) { + fullClassName = node.className + ' ' + setupClasses; + cacheKey = gcsHashFn(node, fullClassName); + + timings = computeTimings(node, fullClassName, cacheKey); + relativeDelay = timings.maxDelay; + maxDelay = Math.max(relativeDelay, 0); + maxDuration = timings.maxDuration; + + if (maxDuration === 0) { + close(); + return; + } + + flags.hasTransitions = timings.transitionDuration > 0; + flags.hasAnimations = timings.animationDuration > 0; + } + + if (flags.applyTransitionDelay || flags.applyAnimationDelay) { + relativeDelay = typeof options.delay !== "boolean" && truthyTimingValue(options.delay) + ? parseFloat(options.delay) + : relativeDelay; + + maxDelay = Math.max(relativeDelay, 0); + + var delayStyle; + if (flags.applyTransitionDelay) { + timings.transitionDelay = relativeDelay; + delayStyle = getCssDelayStyle(relativeDelay); + temporaryStyles.push(delayStyle); + node.style[delayStyle[0]] = delayStyle[1]; + } + + if (flags.applyAnimationDelay) { + timings.animationDelay = relativeDelay; + delayStyle = getCssDelayStyle(relativeDelay, true); + temporaryStyles.push(delayStyle); + node.style[delayStyle[0]] = delayStyle[1]; + } + } + + maxDelayTime = maxDelay * ONE_SECOND; + maxDurationTime = maxDuration * ONE_SECOND; + + if (options.easing) { + var easeProp, easeVal = options.easing; + if (flags.hasTransitions) { + easeProp = TRANSITION_PROP + TIMING_KEY; + temporaryStyles.push([easeProp, easeVal]); + node.style[easeProp] = easeVal; + } + if (flags.hasAnimations) { + easeProp = ANIMATION_PROP + TIMING_KEY; + temporaryStyles.push([easeProp, easeVal]); + node.style[easeProp] = easeVal; + } + } + + if (timings.transitionDuration) { + events.push(TRANSITIONEND_EVENT); + } + + if (timings.animationDuration) { + events.push(ANIMATIONEND_EVENT); + } + + startTime = Date.now(); + element.on(events.join(' '), onAnimationProgress); + $timeout(onAnimationExpired, maxDelayTime + CLOSING_TIME_BUFFER * maxDurationTime); + + applyAnimationToStyles(element, options); + } + + function onAnimationExpired() { + // although an expired animation is a failed animation, getting to + // this outcome is very easy if the CSS code screws up. Therefore we + // should still continue normally as if the animation completed correctly. + close(); + } + + function onAnimationProgress(event) { + event.stopPropagation(); + var ev = event.originalEvent || event; + var timeStamp = ev.$manualTimeStamp || ev.timeStamp || Date.now(); + + /* Firefox (or possibly just Gecko) likes to not round values up + * when a ms measurement is used for the animation */ + var elapsedTime = parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES)); + + /* $manualTimeStamp is a mocked timeStamp value which is set + * within browserTrigger(). This is only here so that tests can + * mock animations properly. Real events fallback to event.timeStamp, + * or, if they don't, then a timeStamp is automatically created for them. + * We're checking to see if the timeStamp surpasses the expected delay, + * but we're using elapsedTime instead of the timeStamp on the 2nd + * pre-condition since animations sometimes close off early */ + if (Math.max(timeStamp - startTime, 0) >= maxDelayTime && elapsedTime >= maxDuration) { + // we set this flag to ensure that if the transition is paused then, when resumed, + // the animation will automatically close itself since transitions cannot be paused. + animationCompleted = true; + close(); + } + } + } + } + }]; +}]; + +var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationProvider) { + $$animationProvider.drivers.push('$$animateCssDriver'); + + var NG_ANIMATE_SHIM_CLASS_NAME = 'ng-animate-shim'; + var NG_ANIMATE_ANCHOR_CLASS_NAME = 'ng-anchor'; + + var NG_OUT_ANCHOR_CLASS_NAME = 'ng-anchor-out'; + var NG_IN_ANCHOR_CLASS_NAME = 'ng-anchor-in'; + + this.$get = ['$animateCss', '$rootScope', '$$AnimateRunner', '$rootElement', '$document', '$sniffer', + function($animateCss, $rootScope, $$AnimateRunner, $rootElement, $document, $sniffer) { + + // only browsers that support these properties can render animations + if (!$sniffer.animations && !$sniffer.transitions) return noop; + + var bodyNode = getDomNode($document).body; + var rootNode = getDomNode($rootElement); + + var rootBodyElement = jqLite(bodyNode.parentNode === rootNode ? bodyNode : rootNode); + + return function initDriverFn(animationDetails) { + return animationDetails.from && animationDetails.to + ? prepareFromToAnchorAnimation(animationDetails.from, + animationDetails.to, + animationDetails.classes, + animationDetails.anchors) + : prepareRegularAnimation(animationDetails); + }; + + function filterCssClasses(classes) { + //remove all the `ng-` stuff + return classes.replace(/\bng-\S+\b/g, ''); + } + + function getUniqueValues(a, b) { + if (isString(a)) a = a.split(' '); + if (isString(b)) b = b.split(' '); + return a.filter(function(val) { + return b.indexOf(val) === -1; + }).join(' '); + } + + function prepareAnchoredAnimation(classes, outAnchor, inAnchor) { + var clone = jqLite(getDomNode(outAnchor).cloneNode(true)); + var startingClasses = filterCssClasses(getClassVal(clone)); + + outAnchor.addClass(NG_ANIMATE_SHIM_CLASS_NAME); + inAnchor.addClass(NG_ANIMATE_SHIM_CLASS_NAME); + + clone.addClass(NG_ANIMATE_ANCHOR_CLASS_NAME); + + rootBodyElement.append(clone); + + var animatorIn, animatorOut = prepareOutAnimation(); + + // the user may not end up using the `out` animation and + // only making use of the `in` animation or vice-versa. + // In either case we should allow this and not assume the + // animation is over unless both animations are not used. + if (!animatorOut) { + animatorIn = prepareInAnimation(); + if (!animatorIn) { + return end(); + } + } + + var startingAnimator = animatorOut || animatorIn; + + return { + start: function() { + var runner; + + var currentAnimation = startingAnimator.start(); + currentAnimation.done(function() { + currentAnimation = null; + if (!animatorIn) { + animatorIn = prepareInAnimation(); + if (animatorIn) { + currentAnimation = animatorIn.start(); + currentAnimation.done(function() { + currentAnimation = null; + end(); + runner.complete(); + }); + return currentAnimation; + } + } + // in the event that there is no `in` animation + end(); + runner.complete(); + }); + + runner = new $$AnimateRunner({ + end: endFn, + cancel: endFn + }); + + return runner; + + function endFn() { + if (currentAnimation) { + currentAnimation.end(); + } + } + } + }; + + function calculateAnchorStyles(anchor) { + var styles = {}; + + var coords = getDomNode(anchor).getBoundingClientRect(); + + // we iterate directly since safari messes up and doesn't return + // all the keys for the coods object when iterated + forEach(['width','height','top','left'], function(key) { + var value = coords[key]; + switch (key) { + case 'top': + value += bodyNode.scrollTop; + break; + case 'left': + value += bodyNode.scrollLeft; + break; + } + styles[key] = Math.floor(value) + 'px'; + }); + return styles; + } + + function prepareOutAnimation() { + var animator = $animateCss(clone, { + addClass: NG_OUT_ANCHOR_CLASS_NAME, + delay: true, + from: calculateAnchorStyles(outAnchor) + }); + + // read the comment within `prepareRegularAnimation` to understand + // why this check is necessary + return animator.$$willAnimate ? animator : null; + } + + function getClassVal(element) { + return element.attr('class') || ''; + } + + function prepareInAnimation() { + var endingClasses = filterCssClasses(getClassVal(inAnchor)); + var toAdd = getUniqueValues(endingClasses, startingClasses); + var toRemove = getUniqueValues(startingClasses, endingClasses); + + var animator = $animateCss(clone, { + to: calculateAnchorStyles(inAnchor), + addClass: NG_IN_ANCHOR_CLASS_NAME + ' ' + toAdd, + removeClass: NG_OUT_ANCHOR_CLASS_NAME + ' ' + toRemove, + delay: true + }); + + // read the comment within `prepareRegularAnimation` to understand + // why this check is necessary + return animator.$$willAnimate ? animator : null; + } + + function end() { + clone.remove(); + outAnchor.removeClass(NG_ANIMATE_SHIM_CLASS_NAME); + inAnchor.removeClass(NG_ANIMATE_SHIM_CLASS_NAME); + } + } + + function prepareFromToAnchorAnimation(from, to, classes, anchors) { + var fromAnimation = prepareRegularAnimation(from); + var toAnimation = prepareRegularAnimation(to); + + var anchorAnimations = []; + forEach(anchors, function(anchor) { + var outElement = anchor['out']; + var inElement = anchor['in']; + var animator = prepareAnchoredAnimation(classes, outElement, inElement); + if (animator) { + anchorAnimations.push(animator); + } + }); + + // no point in doing anything when there are no elements to animate + if (!fromAnimation && !toAnimation && anchorAnimations.length === 0) return; + + return { + start: function() { + var animationRunners = []; + + if (fromAnimation) { + animationRunners.push(fromAnimation.start()); + } + + if (toAnimation) { + animationRunners.push(toAnimation.start()); + } + + forEach(anchorAnimations, function(animation) { + animationRunners.push(animation.start()); + }); + + var runner = new $$AnimateRunner({ + end: endFn, + cancel: endFn // CSS-driven animations cannot be cancelled, only ended + }); + + $$AnimateRunner.all(animationRunners, function(status) { + runner.complete(status); + }); + + return runner; + + function endFn() { + forEach(animationRunners, function(runner) { + runner.end(); + }); + } + } + }; + } + + function prepareRegularAnimation(animationDetails) { + var element = animationDetails.element; + var options = animationDetails.options || {}; + + if (animationDetails.structural) { + // structural animations ensure that the CSS classes are always applied + // before the detection starts. + options.structural = options.applyClassesEarly = true; + + // we special case the leave animation since we want to ensure that + // the element is removed as soon as the animation is over. Otherwise + // a flicker might appear or the element may not be removed at all + options.event = animationDetails.event; + if (options.event === 'leave') { + options.onDone = options.domOperation; + } + } else { + options.event = null; + } + + var animator = $animateCss(element, options); + + // the driver lookup code inside of $$animation attempts to spawn a + // driver one by one until a driver returns a.$$willAnimate animator object. + // $animateCss will always return an object, however, it will pass in + // a flag as a hint as to whether an animation was detected or not + return animator.$$willAnimate ? animator : null; + } + }]; +}]; + +// TODO(matsko): use caching here to speed things up for detection +// TODO(matsko): add documentation +// by the time... + +var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) { + this.$get = ['$injector', '$$AnimateRunner', '$$rAFMutex', '$$jqLite', + function($injector, $$AnimateRunner, $$rAFMutex, $$jqLite) { + + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + // $animateJs(element, 'enter'); + return function(element, event, classes, options) { + // the `classes` argument is optional and if it is not used + // then the classes will be resolved from the element's className + // property as well as options.addClass/options.removeClass. + if (arguments.length === 3 && isObject(classes)) { + options = classes; + classes = null; + } + + options = prepareAnimationOptions(options); + if (!classes) { + classes = element.attr('class') || ''; + if (options.addClass) { + classes += ' ' + options.addClass; + } + if (options.removeClass) { + classes += ' ' + options.removeClass; + } + } + + var classesToAdd = options.addClass; + var classesToRemove = options.removeClass; + + // the lookupAnimations function returns a series of animation objects that are + // matched up with one or more of the CSS classes. These animation objects are + // defined via the module.animation factory function. If nothing is detected then + // we don't return anything which then makes $animation query the next driver. + var animations = lookupAnimations(classes); + var before, after; + if (animations.length) { + var afterFn, beforeFn; + if (event == 'leave') { + beforeFn = 'leave'; + afterFn = 'afterLeave'; // TODO(matsko): get rid of this + } else { + beforeFn = 'before' + event.charAt(0).toUpperCase() + event.substr(1); + afterFn = event; + } + + if (event !== 'enter' && event !== 'move') { + before = packageAnimations(element, event, options, animations, beforeFn); + } + after = packageAnimations(element, event, options, animations, afterFn); + } + + // no matching animations + if (!before && !after) return; + + function applyOptions() { + options.domOperation(); + applyAnimationClasses(element, options); + } + + return { + start: function() { + var closeActiveAnimations; + var chain = []; + + if (before) { + chain.push(function(fn) { + closeActiveAnimations = before(fn); + }); + } + + if (chain.length) { + chain.push(function(fn) { + applyOptions(); + fn(true); + }); + } else { + applyOptions(); + } + + if (after) { + chain.push(function(fn) { + closeActiveAnimations = after(fn); + }); + } + + var animationClosed = false; + var runner = new $$AnimateRunner({ + end: function() { + endAnimations(); + }, + cancel: function() { + endAnimations(true); + } + }); + + $$AnimateRunner.chain(chain, onComplete); + return runner; + + function onComplete(success) { + animationClosed = true; + applyOptions(); + applyAnimationStyles(element, options); + runner.complete(success); + } + + function endAnimations(cancelled) { + if (!animationClosed) { + (closeActiveAnimations || noop)(cancelled); + onComplete(cancelled); + } + } + } + }; + + function executeAnimationFn(fn, element, event, options, onDone) { + var args; + switch (event) { + case 'animate': + args = [element, options.from, options.to, onDone]; + break; + + case 'setClass': + args = [element, classesToAdd, classesToRemove, onDone]; + break; + + case 'addClass': + args = [element, classesToAdd, onDone]; + break; + + case 'removeClass': + args = [element, classesToRemove, onDone]; + break; + + default: + args = [element, onDone]; + break; + } + + args.push(options); + + var value = fn.apply(fn, args); + if (value) { + if (isFunction(value.start)) { + value = value.start(); + } + + if (value instanceof $$AnimateRunner) { + value.done(onDone); + } else if (isFunction(value)) { + // optional onEnd / onCancel callback + return value; + } + } + + return noop; + } + + function groupEventedAnimations(element, event, options, animations, fnName) { + var operations = []; + forEach(animations, function(ani) { + var animation = ani[fnName]; + if (!animation) return; + + // note that all of these animations will run in parallel + operations.push(function() { + var runner; + var endProgressCb; + + var resolved = false; + var onAnimationComplete = function(rejected) { + if (!resolved) { + resolved = true; + (endProgressCb || noop)(rejected); + runner.complete(!rejected); + } + }; + + runner = new $$AnimateRunner({ + end: function() { + onAnimationComplete(); + }, + cancel: function() { + onAnimationComplete(true); + } + }); + + endProgressCb = executeAnimationFn(animation, element, event, options, function(result) { + var cancelled = result === false; + onAnimationComplete(cancelled); + }); + + return runner; + }); + }); + + return operations; + } + + function packageAnimations(element, event, options, animations, fnName) { + var operations = groupEventedAnimations(element, event, options, animations, fnName); + if (operations.length === 0) { + var a,b; + if (fnName === 'beforeSetClass') { + a = groupEventedAnimations(element, 'removeClass', options, animations, 'beforeRemoveClass'); + b = groupEventedAnimations(element, 'addClass', options, animations, 'beforeAddClass'); + } else if (fnName === 'setClass') { + a = groupEventedAnimations(element, 'removeClass', options, animations, 'removeClass'); + b = groupEventedAnimations(element, 'addClass', options, animations, 'addClass'); + } + + if (a) { + operations = operations.concat(a); + } + if (b) { + operations = operations.concat(b); + } + } + + if (operations.length === 0) return; + + // TODO(matsko): add documentation + return function startAnimation(callback) { + var runners = []; + if (operations.length) { + forEach(operations, function(animateFn) { + runners.push(animateFn()); + }); + } + + runners.length ? $$AnimateRunner.all(runners, callback) : callback(); + + return function endFn(reject) { + forEach(runners, function(runner) { + reject ? runner.cancel() : runner.end(); + }); + }; + }; + } + }; + + function lookupAnimations(classes) { + classes = isArray(classes) ? classes : classes.split(' '); + var matches = [], flagMap = {}; + for (var i=0; i < classes.length; i++) { + var klass = classes[i], + animationFactory = $animateProvider.$$registeredAnimations[klass]; + if (animationFactory && !flagMap[klass]) { + matches.push($injector.get(animationFactory)); + flagMap[klass] = true; + } + } + return matches; + } + }]; +}]; + +var $$AnimateJsDriverProvider = ['$$animationProvider', function($$animationProvider) { + $$animationProvider.drivers.push('$$animateJsDriver'); + this.$get = ['$$animateJs', '$$AnimateRunner', function($$animateJs, $$AnimateRunner) { + return function initDriverFn(animationDetails) { + if (animationDetails.from && animationDetails.to) { + var fromAnimation = prepareAnimation(animationDetails.from); + var toAnimation = prepareAnimation(animationDetails.to); + if (!fromAnimation && !toAnimation) return; + + return { + start: function() { + var animationRunners = []; + + if (fromAnimation) { + animationRunners.push(fromAnimation.start()); + } + + if (toAnimation) { + animationRunners.push(toAnimation.start()); + } + + $$AnimateRunner.all(animationRunners, done); + + var runner = new $$AnimateRunner({ + end: endFnFactory(), + cancel: endFnFactory() + }); + + return runner; + + function endFnFactory() { + return function() { + forEach(animationRunners, function(runner) { + // at this point we cannot cancel animations for groups just yet. 1.5+ + runner.end(); + }); + }; + } + + function done(status) { + runner.complete(status); + } + } + }; + } else { + return prepareAnimation(animationDetails); + } + }; + + function prepareAnimation(animationDetails) { + // TODO(matsko): make sure to check for grouped animations and delegate down to normal animations + var element = animationDetails.element; + var event = animationDetails.event; + var options = animationDetails.options; + var classes = animationDetails.classes; + return $$animateJs(element, event, classes, options); + } + }]; +}]; + +var NG_ANIMATE_ATTR_NAME = 'data-ng-animate'; +var NG_ANIMATE_PIN_DATA = '$ngAnimatePin'; +var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) { + var PRE_DIGEST_STATE = 1; + var RUNNING_STATE = 2; + + var rules = this.rules = { + skip: [], + cancel: [], + join: [] + }; + + function isAllowed(ruleType, element, currentAnimation, previousAnimation) { + return rules[ruleType].some(function(fn) { + return fn(element, currentAnimation, previousAnimation); + }); + } + + function hasAnimationClasses(options, and) { + options = options || {}; + var a = (options.addClass || '').length > 0; + var b = (options.removeClass || '').length > 0; + return and ? a && b : a || b; + } + + rules.join.push(function(element, newAnimation, currentAnimation) { + // if the new animation is class-based then we can just tack that on + return !newAnimation.structural && hasAnimationClasses(newAnimation.options); + }); + + rules.skip.push(function(element, newAnimation, currentAnimation) { + // there is no need to animate anything if no classes are being added and + // there is no structural animation that will be triggered + return !newAnimation.structural && !hasAnimationClasses(newAnimation.options); + }); + + rules.skip.push(function(element, newAnimation, currentAnimation) { + // why should we trigger a new structural animation if the element will + // be removed from the DOM anyway? + return currentAnimation.event == 'leave' && newAnimation.structural; + }); + + rules.skip.push(function(element, newAnimation, currentAnimation) { + // if there is a current animation then skip the class-based animation + return currentAnimation.structural && !newAnimation.structural; + }); + + rules.cancel.push(function(element, newAnimation, currentAnimation) { + // there can never be two structural animations running at the same time + return currentAnimation.structural && newAnimation.structural; + }); + + rules.cancel.push(function(element, newAnimation, currentAnimation) { + // if the previous animation is already running, but the new animation will + // be triggered, but the new animation is structural + return currentAnimation.state === RUNNING_STATE && newAnimation.structural; + }); + + rules.cancel.push(function(element, newAnimation, currentAnimation) { + var nO = newAnimation.options; + var cO = currentAnimation.options; + + // if the exact same CSS class is added/removed then it's safe to cancel it + return (nO.addClass && nO.addClass === cO.removeClass) || (nO.removeClass && nO.removeClass === cO.addClass); + }); + + this.$get = ['$$rAF', '$rootScope', '$rootElement', '$document', '$$HashMap', + '$$animation', '$$AnimateRunner', '$templateRequest', '$$jqLite', + function($$rAF, $rootScope, $rootElement, $document, $$HashMap, + $$animation, $$AnimateRunner, $templateRequest, $$jqLite) { + + var activeAnimationsLookup = new $$HashMap(); + var disabledElementsLookup = new $$HashMap(); + + var animationsEnabled = null; + + // Wait until all directive and route-related templates are downloaded and + // compiled. The $templateRequest.totalPendingRequests variable keeps track of + // all of the remote templates being currently downloaded. If there are no + // templates currently downloading then the watcher will still fire anyway. + var deregisterWatch = $rootScope.$watch( + function() { return $templateRequest.totalPendingRequests === 0; }, + function(isEmpty) { + if (!isEmpty) return; + deregisterWatch(); + + // Now that all templates have been downloaded, $animate will wait until + // the post digest queue is empty before enabling animations. By having two + // calls to $postDigest calls we can ensure that the flag is enabled at the + // very end of the post digest queue. Since all of the animations in $animate + // use $postDigest, it's important that the code below executes at the end. + // This basically means that the page is fully downloaded and compiled before + // any animations are triggered. + $rootScope.$$postDigest(function() { + $rootScope.$$postDigest(function() { + // we check for null directly in the event that the application already called + // .enabled() with whatever arguments that it provided it with + if (animationsEnabled === null) { + animationsEnabled = true; + } + }); + }); + } + ); + + var bodyElement = jqLite($document[0].body); + + var callbackRegistry = {}; + + // remember that the classNameFilter is set during the provider/config + // stage therefore we can optimize here and setup a helper function + var classNameFilter = $animateProvider.classNameFilter(); + var isAnimatableClassName = !classNameFilter + ? function() { return true; } + : function(className) { + return classNameFilter.test(className); + }; + + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + + function normalizeAnimationOptions(element, options) { + return mergeAnimationOptions(element, options, {}); + } + + function findCallbacks(element, event) { + var targetNode = getDomNode(element); + + var matches = []; + var entries = callbackRegistry[event]; + if (entries) { + forEach(entries, function(entry) { + if (entry.node.contains(targetNode)) { + matches.push(entry.callback); + } + }); + } + + return matches; + } + + function triggerCallback(event, element, phase, data) { + $$rAF(function() { + forEach(findCallbacks(element, event), function(callback) { + callback(element, phase, data); + }); + }); + } + + return { + on: function(event, container, callback) { + var node = extractElementNode(container); + callbackRegistry[event] = callbackRegistry[event] || []; + callbackRegistry[event].push({ + node: node, + callback: callback + }); + }, + + off: function(event, container, callback) { + var entries = callbackRegistry[event]; + if (!entries) return; + + callbackRegistry[event] = arguments.length === 1 + ? null + : filterFromRegistry(entries, container, callback); + + function filterFromRegistry(list, matchContainer, matchCallback) { + var containerNode = extractElementNode(matchContainer); + return list.filter(function(entry) { + var isMatch = entry.node === containerNode && + (!matchCallback || entry.callback === matchCallback); + return !isMatch; + }); + } + }, + + pin: function(element, parentElement) { + assertArg(isElement(element), 'element', 'not an element'); + assertArg(isElement(parentElement), 'parentElement', 'not an element'); + element.data(NG_ANIMATE_PIN_DATA, parentElement); + }, + + push: function(element, event, options, domOperation) { + options = options || {}; + options.domOperation = domOperation; + return queueAnimation(element, event, options); + }, + + // this method has four signatures: + // () - global getter + // (bool) - global setter + // (element) - element getter + // (element, bool) - element setter + enabled: function(element, bool) { + var argCount = arguments.length; + + if (argCount === 0) { + // () - Global getter + bool = !!animationsEnabled; + } else { + var hasElement = isElement(element); + + if (!hasElement) { + // (bool) - Global setter + bool = animationsEnabled = !!element; + } else { + var node = getDomNode(element); + var recordExists = disabledElementsLookup.get(node); + + if (argCount === 1) { + // (element) - Element getter + bool = !recordExists; + } else { + // (element, bool) - Element setter + bool = !!bool; + if (!bool) { + disabledElementsLookup.put(node, true); + } else if (recordExists) { + disabledElementsLookup.remove(node); + } + } + } + } + + return bool; + } + }; + + function queueAnimation(element, event, options) { + var node, parent; + element = stripCommentsFromElement(element); + if (element) { + node = getDomNode(element); + parent = element.parent(); + } + + options = prepareAnimationOptions(options); + + // we create a fake runner with a working promise. + // These methods will become available after the digest has passed + var runner = new $$AnimateRunner(); + + // there are situations where a directive issues an animation for + // a jqLite wrapper that contains only comment nodes... If this + // happens then there is no way we can perform an animation + if (!node) { + close(); + return runner; + } + + if (isArray(options.addClass)) { + options.addClass = options.addClass.join(' '); + } + + if (isArray(options.removeClass)) { + options.removeClass = options.removeClass.join(' '); + } + + if (options.from && !isObject(options.from)) { + options.from = null; + } + + if (options.to && !isObject(options.to)) { + options.to = null; + } + + var className = [node.className, options.addClass, options.removeClass].join(' '); + if (!isAnimatableClassName(className)) { + close(); + return runner; + } + + var isStructural = ['enter', 'move', 'leave'].indexOf(event) >= 0; + + // this is a hard disable of all animations for the application or on + // the element itself, therefore there is no need to continue further + // past this point if not enabled + var skipAnimations = !animationsEnabled || disabledElementsLookup.get(node); + var existingAnimation = (!skipAnimations && activeAnimationsLookup.get(node)) || {}; + var hasExistingAnimation = !!existingAnimation.state; + + // there is no point in traversing the same collection of parent ancestors if a followup + // animation will be run on the same element that already did all that checking work + if (!skipAnimations && (!hasExistingAnimation || existingAnimation.state != PRE_DIGEST_STATE)) { + skipAnimations = !areAnimationsAllowed(element, parent, event); + } + + if (skipAnimations) { + close(); + return runner; + } + + if (isStructural) { + closeChildAnimations(element); + } + + var newAnimation = { + structural: isStructural, + element: element, + event: event, + close: close, + options: options, + runner: runner + }; + + if (hasExistingAnimation) { + var skipAnimationFlag = isAllowed('skip', element, newAnimation, existingAnimation); + if (skipAnimationFlag) { + if (existingAnimation.state === RUNNING_STATE) { + close(); + return runner; + } else { + mergeAnimationOptions(element, existingAnimation.options, options); + return existingAnimation.runner; + } + } + + var cancelAnimationFlag = isAllowed('cancel', element, newAnimation, existingAnimation); + if (cancelAnimationFlag) { + if (existingAnimation.state === RUNNING_STATE) { + // this will end the animation right away and it is safe + // to do so since the animation is already running and the + // runner callback code will run in async + existingAnimation.runner.end(); + } else if (existingAnimation.structural) { + // this means that the animation is queued into a digest, but + // hasn't started yet. Therefore it is safe to run the close + // method which will call the runner methods in async. + existingAnimation.close(); + } else { + // this will merge the existing animation options into this new follow-up animation + mergeAnimationOptions(element, newAnimation.options, existingAnimation.options); + } + } else { + // a joined animation means that this animation will take over the existing one + // so an example would involve a leave animation taking over an enter. Then when + // the postDigest kicks in the enter will be ignored. + var joinAnimationFlag = isAllowed('join', element, newAnimation, existingAnimation); + if (joinAnimationFlag) { + if (existingAnimation.state === RUNNING_STATE) { + normalizeAnimationOptions(element, options); + } else { + event = newAnimation.event = existingAnimation.event; + options = mergeAnimationOptions(element, existingAnimation.options, newAnimation.options); + return runner; + } + } + } + } else { + // normalization in this case means that it removes redundant CSS classes that + // already exist (addClass) or do not exist (removeClass) on the element + normalizeAnimationOptions(element, options); + } + + // when the options are merged and cleaned up we may end up not having to do + // an animation at all, therefore we should check this before issuing a post + // digest callback. Structural animations will always run no matter what. + var isValidAnimation = newAnimation.structural; + if (!isValidAnimation) { + // animate (from/to) can be quickly checked first, otherwise we check if any classes are present + isValidAnimation = (newAnimation.event === 'animate' && Object.keys(newAnimation.options.to || {}).length > 0) + || hasAnimationClasses(newAnimation.options); + } + + if (!isValidAnimation) { + close(); + clearElementAnimationState(element); + return runner; + } + + if (isStructural) { + closeParentClassBasedAnimations(parent); + } + + // the counter keeps track of cancelled animations + var counter = (existingAnimation.counter || 0) + 1; + newAnimation.counter = counter; + + markElementAnimationState(element, PRE_DIGEST_STATE, newAnimation); + + $rootScope.$$postDigest(function() { + var animationDetails = activeAnimationsLookup.get(node); + var animationCancelled = !animationDetails; + animationDetails = animationDetails || {}; + + // if addClass/removeClass is called before something like enter then the + // registered parent element may not be present. The code below will ensure + // that a final value for parent element is obtained + var parentElement = element.parent() || []; + + // animate/structural/class-based animations all have requirements. Otherwise there + // is no point in performing an animation. The parent node must also be set. + var isValidAnimation = parentElement.length > 0 + && (animationDetails.event === 'animate' + || animationDetails.structural + || hasAnimationClasses(animationDetails.options)); + + // this means that the previous animation was cancelled + // even if the follow-up animation is the same event + if (animationCancelled || animationDetails.counter !== counter || !isValidAnimation) { + // if another animation did not take over then we need + // to make sure that the domOperation and options are + // handled accordingly + if (animationCancelled) { + applyAnimationClasses(element, options); + applyAnimationStyles(element, options); + } + + // if the event changed from something like enter to leave then we do + // it, otherwise if it's the same then the end result will be the same too + if (animationCancelled || (isStructural && animationDetails.event !== event)) { + options.domOperation(); + runner.end(); + } + + // in the event that the element animation was not cancelled or a follow-up animation + // isn't allowed to animate from here then we need to clear the state of the element + // so that any future animations won't read the expired animation data. + if (!isValidAnimation) { + clearElementAnimationState(element); + } + + return; + } + + // this combined multiple class to addClass / removeClass into a setClass event + // so long as a structural event did not take over the animation + event = !animationDetails.structural && hasAnimationClasses(animationDetails.options, true) + ? 'setClass' + : animationDetails.event; + + if (animationDetails.structural) { + closeParentClassBasedAnimations(parentElement); + } + + markElementAnimationState(element, RUNNING_STATE); + var realRunner = $$animation(element, event, animationDetails.options); + realRunner.done(function(status) { + close(!status); + var animationDetails = activeAnimationsLookup.get(node); + if (animationDetails && animationDetails.counter === counter) { + clearElementAnimationState(getDomNode(element)); + } + notifyProgress(runner, event, 'close', {}); + }); + + // this will update the runner's flow-control events based on + // the `realRunner` object. + runner.setHost(realRunner); + notifyProgress(runner, event, 'start', {}); + }); + + return runner; + + function notifyProgress(runner, event, phase, data) { + triggerCallback(event, element, phase, data); + runner.progress(event, phase, data); + } + + function close(reject) { // jshint ignore:line + applyAnimationClasses(element, options); + applyAnimationStyles(element, options); + options.domOperation(); + runner.complete(!reject); + } + } + + function closeChildAnimations(element) { + var node = getDomNode(element); + var children = node.querySelectorAll('[' + NG_ANIMATE_ATTR_NAME + ']'); + forEach(children, function(child) { + var state = parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME)); + var animationDetails = activeAnimationsLookup.get(child); + switch (state) { + case RUNNING_STATE: + animationDetails.runner.end(); + /* falls through */ + case PRE_DIGEST_STATE: + if (animationDetails) { + activeAnimationsLookup.remove(child); + } + break; + } + }); + } + + function clearElementAnimationState(element) { + var node = getDomNode(element); + node.removeAttribute(NG_ANIMATE_ATTR_NAME); + activeAnimationsLookup.remove(node); + } + + function isMatchingElement(nodeOrElmA, nodeOrElmB) { + return getDomNode(nodeOrElmA) === getDomNode(nodeOrElmB); + } + + function closeParentClassBasedAnimations(startingElement) { + var parentNode = getDomNode(startingElement); + do { + if (!parentNode || parentNode.nodeType !== ELEMENT_NODE) break; + + var animationDetails = activeAnimationsLookup.get(parentNode); + if (animationDetails) { + examineParentAnimation(parentNode, animationDetails); + } + + parentNode = parentNode.parentNode; + } while (true); + + // since animations are detected from CSS classes, we need to flush all parent + // class-based animations so that the parent classes are all present for child + // animations to properly function (otherwise any CSS selectors may not work) + function examineParentAnimation(node, animationDetails) { + // enter/leave/move always have priority + if (animationDetails.structural || !hasAnimationClasses(animationDetails.options)) return; + + if (animationDetails.state === RUNNING_STATE) { + animationDetails.runner.end(); + } + clearElementAnimationState(node); + } + } + + function areAnimationsAllowed(element, parentElement, event) { + var bodyElementDetected = false; + var rootElementDetected = false; + var parentAnimationDetected = false; + var animateChildren; + + var parentHost = element.data(NG_ANIMATE_PIN_DATA); + if (parentHost) { + parentElement = parentHost; + } + + while (parentElement && parentElement.length) { + if (!rootElementDetected) { + // angular doesn't want to attempt to animate elements outside of the application + // therefore we need to ensure that the rootElement is an ancestor of the current element + rootElementDetected = isMatchingElement(parentElement, $rootElement); + } + + var parentNode = parentElement[0]; + if (parentNode.nodeType !== ELEMENT_NODE) { + // no point in inspecting the #document element + break; + } + + var details = activeAnimationsLookup.get(parentNode) || {}; + // either an enter, leave or move animation will commence + // therefore we can't allow any animations to take place + // but if a parent animation is class-based then that's ok + if (!parentAnimationDetected) { + parentAnimationDetected = details.structural || disabledElementsLookup.get(parentNode); + } + + if (isUndefined(animateChildren) || animateChildren === true) { + var value = parentElement.data(NG_ANIMATE_CHILDREN_DATA); + if (isDefined(value)) { + animateChildren = value; + } + } + + // there is no need to continue traversing at this point + if (parentAnimationDetected && animateChildren === false) break; + + if (!rootElementDetected) { + // angular doesn't want to attempt to animate elements outside of the application + // therefore we need to ensure that the rootElement is an ancestor of the current element + rootElementDetected = isMatchingElement(parentElement, $rootElement); + if (!rootElementDetected) { + parentHost = parentElement.data(NG_ANIMATE_PIN_DATA); + if (parentHost) { + parentElement = parentHost; + } + } + } + + if (!bodyElementDetected) { + // we also need to ensure that the element is or will be apart of the body element + // otherwise it is pointless to even issue an animation to be rendered + bodyElementDetected = isMatchingElement(parentElement, bodyElement); + } + + parentElement = parentElement.parent(); + } + + var allowAnimation = !parentAnimationDetected || animateChildren; + return allowAnimation && rootElementDetected && bodyElementDetected; + } + + function markElementAnimationState(element, state, details) { + details = details || {}; + details.state = state; + + var node = getDomNode(element); + node.setAttribute(NG_ANIMATE_ATTR_NAME, state); + + var oldValue = activeAnimationsLookup.get(node); + var newValue = oldValue + ? extend(oldValue, details) + : details; + activeAnimationsLookup.put(node, newValue); + } + }]; +}]; + +var $$rAFMutexFactory = ['$$rAF', function($$rAF) { + return function() { + var passed = false; + $$rAF(function() { + passed = true; + }); + return function(fn) { + passed ? fn() : $$rAF(fn); + }; + }; +}]; + +var $$AnimateRunnerFactory = ['$q', '$$rAFMutex', function($q, $$rAFMutex) { + var INITIAL_STATE = 0; + var DONE_PENDING_STATE = 1; + var DONE_COMPLETE_STATE = 2; + + AnimateRunner.chain = function(chain, callback) { + var index = 0; + + next(); + function next() { + if (index === chain.length) { + callback(true); + return; + } + + chain[index](function(response) { + if (response === false) { + callback(false); + return; + } + index++; + next(); + }); + } + }; + + AnimateRunner.all = function(runners, callback) { + var count = 0; + var status = true; + forEach(runners, function(runner) { + runner.done(onProgress); + }); + + function onProgress(response) { + status = status && response; + if (++count === runners.length) { + callback(status); + } + } + }; + + function AnimateRunner(host) { + this.setHost(host); + + this._doneCallbacks = []; + this._runInAnimationFrame = $$rAFMutex(); + this._state = 0; + } + + AnimateRunner.prototype = { + setHost: function(host) { + this.host = host || {}; + }, + + done: function(fn) { + if (this._state === DONE_COMPLETE_STATE) { + fn(); + } else { + this._doneCallbacks.push(fn); + } + }, + + progress: noop, + + getPromise: function() { + if (!this.promise) { + var self = this; + this.promise = $q(function(resolve, reject) { + self.done(function(status) { + status === false ? reject() : resolve(); + }); + }); + } + return this.promise; + }, + + then: function(resolveHandler, rejectHandler) { + return this.getPromise().then(resolveHandler, rejectHandler); + }, + + 'catch': function(handler) { + return this.getPromise()['catch'](handler); + }, + + 'finally': function(handler) { + return this.getPromise()['finally'](handler); + }, + + pause: function() { + if (this.host.pause) { + this.host.pause(); + } + }, + + resume: function() { + if (this.host.resume) { + this.host.resume(); + } + }, + + end: function() { + if (this.host.end) { + this.host.end(); + } + this._resolve(true); + }, + + cancel: function() { + if (this.host.cancel) { + this.host.cancel(); + } + this._resolve(false); + }, + + complete: function(response) { + var self = this; + if (self._state === INITIAL_STATE) { + self._state = DONE_PENDING_STATE; + self._runInAnimationFrame(function() { + self._resolve(response); + }); + } + }, + + _resolve: function(response) { + if (this._state !== DONE_COMPLETE_STATE) { + forEach(this._doneCallbacks, function(fn) { + fn(response); + }); + this._doneCallbacks.length = 0; + this._state = DONE_COMPLETE_STATE; + } + } + }; + + return AnimateRunner; +}]; + +var $$AnimationProvider = ['$animateProvider', function($animateProvider) { + var NG_ANIMATE_REF_ATTR = 'ng-animate-ref'; + + var drivers = this.drivers = []; + + var RUNNER_STORAGE_KEY = '$$animationRunner'; + + function setRunner(element, runner) { + element.data(RUNNER_STORAGE_KEY, runner); + } + + function removeRunner(element) { + element.removeData(RUNNER_STORAGE_KEY); + } + + function getRunner(element) { + return element.data(RUNNER_STORAGE_KEY); + } + + this.$get = ['$$jqLite', '$rootScope', '$injector', '$$AnimateRunner', '$$rAFScheduler', + function($$jqLite, $rootScope, $injector, $$AnimateRunner, $$rAFScheduler) { + + var animationQueue = []; + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + + var totalPendingClassBasedAnimations = 0; + var totalActiveClassBasedAnimations = 0; + var classBasedAnimationsQueue = []; + + // TODO(matsko): document the signature in a better way + return function(element, event, options) { + options = prepareAnimationOptions(options); + var isStructural = ['enter', 'move', 'leave'].indexOf(event) >= 0; + + // there is no animation at the current moment, however + // these runner methods will get later updated with the + // methods leading into the driver's end/cancel methods + // for now they just stop the animation from starting + var runner = new $$AnimateRunner({ + end: function() { close(); }, + cancel: function() { close(true); } + }); + + if (!drivers.length) { + close(); + return runner; + } + + setRunner(element, runner); + + var classes = mergeClasses(element.attr('class'), mergeClasses(options.addClass, options.removeClass)); + var tempClasses = options.tempClasses; + if (tempClasses) { + classes += ' ' + tempClasses; + options.tempClasses = null; + } + + var classBasedIndex; + if (!isStructural) { + classBasedIndex = totalPendingClassBasedAnimations; + totalPendingClassBasedAnimations += 1; + } + + animationQueue.push({ + // this data is used by the postDigest code and passed into + // the driver step function + element: element, + classes: classes, + event: event, + classBasedIndex: classBasedIndex, + structural: isStructural, + options: options, + beforeStart: beforeStart, + close: close + }); + + element.on('$destroy', handleDestroyedElement); + + // we only want there to be one function called within the post digest + // block. This way we can group animations for all the animations that + // were apart of the same postDigest flush call. + if (animationQueue.length > 1) return runner; + + $rootScope.$$postDigest(function() { + totalActiveClassBasedAnimations = totalPendingClassBasedAnimations; + totalPendingClassBasedAnimations = 0; + classBasedAnimationsQueue.length = 0; + + var animations = []; + forEach(animationQueue, function(entry) { + // the element was destroyed early on which removed the runner + // form its storage. This means we can't animate this element + // at all and it already has been closed due to destruction. + if (getRunner(entry.element)) { + animations.push(entry); + } + }); + + // now any future animations will be in another postDigest + animationQueue.length = 0; + + forEach(groupAnimations(animations), function(animationEntry) { + if (animationEntry.structural) { + triggerAnimationStart(); + } else { + classBasedAnimationsQueue.push({ + node: getDomNode(animationEntry.element), + fn: triggerAnimationStart + }); + + if (animationEntry.classBasedIndex === totalActiveClassBasedAnimations - 1) { + // we need to sort each of the animations in order of parent to child + // relationships. This ensures that the child classes are applied at the + // right time. + classBasedAnimationsQueue = classBasedAnimationsQueue.sort(function(a,b) { + return b.node.contains(a.node); + }).map(function(entry) { + return entry.fn; + }); + + $$rAFScheduler(classBasedAnimationsQueue); + } + } + + function triggerAnimationStart() { + // it's important that we apply the `ng-animate` CSS class and the + // temporary classes before we do any driver invoking since these + // CSS classes may be required for proper CSS detection. + animationEntry.beforeStart(); + + var startAnimationFn, closeFn = animationEntry.close; + + // in the event that the element was removed before the digest runs or + // during the RAF sequencing then we should not trigger the animation. + var targetElement = animationEntry.anchors + ? (animationEntry.from.element || animationEntry.to.element) + : animationEntry.element; + + if (getRunner(targetElement) && getDomNode(targetElement).parentNode) { + var operation = invokeFirstDriver(animationEntry); + if (operation) { + startAnimationFn = operation.start; + } + } + + if (!startAnimationFn) { + closeFn(); + } else { + var animationRunner = startAnimationFn(); + animationRunner.done(function(status) { + closeFn(!status); + }); + updateAnimationRunners(animationEntry, animationRunner); + } + } + }); + }); + + return runner; + + // TODO(matsko): change to reference nodes + function getAnchorNodes(node) { + var SELECTOR = '[' + NG_ANIMATE_REF_ATTR + ']'; + var items = node.hasAttribute(NG_ANIMATE_REF_ATTR) + ? [node] + : node.querySelectorAll(SELECTOR); + var anchors = []; + forEach(items, function(node) { + var attr = node.getAttribute(NG_ANIMATE_REF_ATTR); + if (attr && attr.length) { + anchors.push(node); + } + }); + return anchors; + } + + function groupAnimations(animations) { + var preparedAnimations = []; + var refLookup = {}; + forEach(animations, function(animation, index) { + var element = animation.element; + var node = getDomNode(element); + var event = animation.event; + var enterOrMove = ['enter', 'move'].indexOf(event) >= 0; + var anchorNodes = animation.structural ? getAnchorNodes(node) : []; + + if (anchorNodes.length) { + var direction = enterOrMove ? 'to' : 'from'; + + forEach(anchorNodes, function(anchor) { + var key = anchor.getAttribute(NG_ANIMATE_REF_ATTR); + refLookup[key] = refLookup[key] || {}; + refLookup[key][direction] = { + animationID: index, + element: jqLite(anchor) + }; + }); + } else { + preparedAnimations.push(animation); + } + }); + + var usedIndicesLookup = {}; + var anchorGroups = {}; + forEach(refLookup, function(operations, key) { + var from = operations.from; + var to = operations.to; + + if (!from || !to) { + // only one of these is set therefore we can't have an + // anchor animation since all three pieces are required + var index = from ? from.animationID : to.animationID; + var indexKey = index.toString(); + if (!usedIndicesLookup[indexKey]) { + usedIndicesLookup[indexKey] = true; + preparedAnimations.push(animations[index]); + } + return; + } + + var fromAnimation = animations[from.animationID]; + var toAnimation = animations[to.animationID]; + var lookupKey = from.animationID.toString(); + if (!anchorGroups[lookupKey]) { + var group = anchorGroups[lookupKey] = { + structural: true, + beforeStart: function() { + fromAnimation.beforeStart(); + toAnimation.beforeStart(); + }, + close: function() { + fromAnimation.close(); + toAnimation.close(); + }, + classes: cssClassesIntersection(fromAnimation.classes, toAnimation.classes), + from: fromAnimation, + to: toAnimation, + anchors: [] // TODO(matsko): change to reference nodes + }; + + // the anchor animations require that the from and to elements both have at least + // one shared CSS class which effictively marries the two elements together to use + // the same animation driver and to properly sequence the anchor animation. + if (group.classes.length) { + preparedAnimations.push(group); + } else { + preparedAnimations.push(fromAnimation); + preparedAnimations.push(toAnimation); + } + } + + anchorGroups[lookupKey].anchors.push({ + 'out': from.element, 'in': to.element + }); + }); + + return preparedAnimations; + } + + function cssClassesIntersection(a,b) { + a = a.split(' '); + b = b.split(' '); + var matches = []; + + for (var i = 0; i < a.length; i++) { + var aa = a[i]; + if (aa.substring(0,3) === 'ng-') continue; + + for (var j = 0; j < b.length; j++) { + if (aa === b[j]) { + matches.push(aa); + break; + } + } + } + + return matches.join(' '); + } + + function invokeFirstDriver(animationDetails) { + // we loop in reverse order since the more general drivers (like CSS and JS) + // may attempt more elements, but custom drivers are more particular + for (var i = drivers.length - 1; i >= 0; i--) { + var driverName = drivers[i]; + if (!$injector.has(driverName)) continue; // TODO(matsko): remove this check + + var factory = $injector.get(driverName); + var driver = factory(animationDetails); + if (driver) { + return driver; + } + } + } + + function beforeStart() { + element.addClass(NG_ANIMATE_CLASSNAME); + if (tempClasses) { + $$jqLite.addClass(element, tempClasses); + } + } + + function updateAnimationRunners(animation, newRunner) { + if (animation.from && animation.to) { + update(animation.from.element); + update(animation.to.element); + } else { + update(animation.element); + } + + function update(element) { + getRunner(element).setHost(newRunner); + } + } + + function handleDestroyedElement() { + var runner = getRunner(element); + if (runner && (event !== 'leave' || !options.$$domOperationFired)) { + runner.end(); + } + } + + function close(rejected) { // jshint ignore:line + element.off('$destroy', handleDestroyedElement); + removeRunner(element); + + applyAnimationClasses(element, options); + applyAnimationStyles(element, options); + options.domOperation(); + + if (tempClasses) { + $$jqLite.removeClass(element, tempClasses); + } + + element.removeClass(NG_ANIMATE_CLASSNAME); + runner.complete(!rejected); + } + }; + }]; +}]; + +/* global angularAnimateModule: true, + + $$rAFMutexFactory, + $$rAFSchedulerFactory, + $$AnimateChildrenDirective, + $$AnimateRunnerFactory, + $$AnimateQueueProvider, + $$AnimationProvider, + $AnimateCssProvider, + $$AnimateCssDriverProvider, + $$AnimateJsProvider, + $$AnimateJsDriverProvider, +*/ + +/** + * @ngdoc module + * @name ngAnimate + * @description + * + * The `ngAnimate` module provides support for CSS-based animations (keyframes and transitions) as well as JavaScript-based animations via + * callback hooks. Animations are not enabled by default, however, by including `ngAnimate` then the animation hooks are enabled for an Angular app. + * + *
    + * + * # Usage + * Simply put, there are two ways to make use of animations when ngAnimate is used: by using **CSS** and **JavaScript**. The former works purely based + * using CSS (by using matching CSS selectors/styles) and the latter triggers animations that are registered via `module.animation()`. For + * both CSS and JS animations the sole requirement is to have a matching `CSS class` that exists both in the registered animation and within + * the HTML element that the animation will be triggered on. + * + * ## Directive Support + * The following directives are "animation aware": + * + * | Directive | Supported Animations | + * |----------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------| + * | {@link ng.directive:ngRepeat#animations ngRepeat} | enter, leave and move | + * | {@link ngRoute.directive:ngView#animations ngView} | enter and leave | + * | {@link ng.directive:ngInclude#animations ngInclude} | enter and leave | + * | {@link ng.directive:ngSwitch#animations ngSwitch} | enter and leave | + * | {@link ng.directive:ngIf#animations ngIf} | enter and leave | + * | {@link ng.directive:ngClass#animations ngClass} | add and remove (the CSS class(es) present) | + * | {@link ng.directive:ngShow#animations ngShow} & {@link ng.directive:ngHide#animations ngHide} | add and remove (the ng-hide class value) | + * | {@link ng.directive:form#animation-hooks form} & {@link ng.directive:ngModel#animation-hooks ngModel} | add and remove (dirty, pristine, valid, invalid & all other validations) | + * | {@link module:ngMessages#animations ngMessages} | add and remove (ng-active & ng-inactive) | + * | {@link module:ngMessages#animations ngMessage} | enter and leave | + * + * (More information can be found by visiting each the documentation associated with each directive.) + * + * ## CSS-based Animations + * + * CSS-based animations with ngAnimate are unique since they require no JavaScript code at all. By using a CSS class that we reference between our HTML + * and CSS code we can create an animation that will be picked up by Angular when an the underlying directive performs an operation. + * + * The example below shows how an `enter` animation can be made possible on a element using `ng-if`: + * + * ```html + *
    + * Fade me in out + *
    + * + * + * ``` + * + * Notice the CSS class **fade**? We can now create the CSS transition code that references this class: + * + * ```css + * /* The starting CSS styles for the enter animation */ + * .fade.ng-enter { + * transition:0.5s linear all; + * opacity:0; + * } + * + * /* The finishing CSS styles for the enter animation */ + * .fade.ng-enter.ng-enter-active { + * opacity:1; + * } + * ``` + * + * The key thing to remember here is that, depending on the animation event (which each of the directives above trigger depending on what's going on) two + * generated CSS classes will be applied to the element; in the example above we have `.ng-enter` and `.ng-enter-active`. For CSS transitions, the transition + * code **must** be defined within the starting CSS class (in this case `.ng-enter`). The destination class is what the transition will animate towards. + * + * If for example we wanted to create animations for `leave` and `move` (ngRepeat triggers move) then we can do so using the same CSS naming conventions: + * + * ```css + * /* now the element will fade out before it is removed from the DOM */ + * .fade.ng-leave { + * transition:0.5s linear all; + * opacity:1; + * } + * .fade.ng-leave.ng-leave-active { + * opacity:0; + * } + * ``` + * + * We can also make use of **CSS Keyframes** by referencing the keyframe animation within the starting CSS class: + * + * ```css + * /* there is no need to define anything inside of the destination + * CSS class since the keyframe will take charge of the animation */ + * .fade.ng-leave { + * animation: my_fade_animation 0.5s linear; + * -webkit-animation: my_fade_animation 0.5s linear; + * } + * + * @keyframes my_fade_animation { + * from { opacity:1; } + * to { opacity:0; } + * } + * + * @-webkit-keyframes my_fade_animation { + * from { opacity:1; } + * to { opacity:0; } + * } + * ``` + * + * Feel free also mix transitions and keyframes together as well as any other CSS classes on the same element. + * + * ### CSS Class-based Animations + * + * Class-based animations (animations that are triggered via `ngClass`, `ngShow`, `ngHide` and some other directives) have a slightly different + * naming convention. Class-based animations are basic enough that a standard transition or keyframe can be referenced on the class being added + * and removed. + * + * For example if we wanted to do a CSS animation for `ngHide` then we place an animation on the `.ng-hide` CSS class: + * + * ```html + *
    + * Show and hide me + *
    + * + * + * + * ``` + * + * All that is going on here with ngShow/ngHide behind the scenes is the `.ng-hide` class is added/removed (when the hidden state is valid). Since + * ngShow and ngHide are animation aware then we can match up a transition and ngAnimate handles the rest. + * + * In addition the addition and removal of the CSS class, ngAnimate also provides two helper methods that we can use to further decorate the animation + * with CSS styles. + * + * ```html + *
    + * Highlight this box + *
    + * + * + * + * ``` + * + * We can also make use of CSS keyframes by placing them within the CSS classes. + * + * + * ### CSS Staggering Animations + * A Staggering animation is a collection of animations that are issued with a slight delay in between each successive operation resulting in a + * curtain-like effect. The ngAnimate module (versions >=1.2) supports staggering animations and the stagger effect can be + * performed by creating a **ng-EVENT-stagger** CSS class and attaching that class to the base CSS class used for + * the animation. The style property expected within the stagger class can either be a **transition-delay** or an + * **animation-delay** property (or both if your animation contains both transitions and keyframe animations). + * + * ```css + * .my-animation.ng-enter { + * /* standard transition code */ + * transition: 1s linear all; + * opacity:0; + * } + * .my-animation.ng-enter-stagger { + * /* this will have a 100ms delay between each successive leave animation */ + * transition-delay: 0.1s; + * + * /* in case the stagger doesn't work then the duration value + * must be set to 0 to avoid an accidental CSS inheritance */ + * transition-duration: 0s; + * } + * .my-animation.ng-enter.ng-enter-active { + * /* standard transition styles */ + * opacity:1; + * } + * ``` + * + * Staggering animations work by default in ngRepeat (so long as the CSS class is defined). Outside of ngRepeat, to use staggering animations + * on your own, they can be triggered by firing multiple calls to the same event on $animate. However, the restrictions surrounding this + * are that each of the elements must have the same CSS className value as well as the same parent element. A stagger operation + * will also be reset if one or more animation frames have passed since the multiple calls to `$animate` were fired. + * + * The following code will issue the **ng-leave-stagger** event on the element provided: + * + * ```js + * var kids = parent.children(); + * + * $animate.leave(kids[0]); //stagger index=0 + * $animate.leave(kids[1]); //stagger index=1 + * $animate.leave(kids[2]); //stagger index=2 + * $animate.leave(kids[3]); //stagger index=3 + * $animate.leave(kids[4]); //stagger index=4 + * + * window.requestAnimationFrame(function() { + * //stagger has reset itself + * $animate.leave(kids[5]); //stagger index=0 + * $animate.leave(kids[6]); //stagger index=1 + * + * $scope.$digest(); + * }); + * ``` + * + * Stagger animations are currently only supported within CSS-defined animations. + * + * ### The `ng-animate` CSS class + * + * When ngAnimate is animating an element it will apply the `ng-animate` CSS class to the element for the duration of the animation. + * This is a temporary CSS class and it will be removed once the animation is over (for both JavaScript and CSS-based animations). + * + * Therefore, animations can be applied to an element using this temporary class directly via CSS. + * + * ```css + * .zipper.ng-animate { + * transition:0.5s linear all; + * } + * .zipper.ng-enter { + * opacity:0; + * } + * .zipper.ng-enter.ng-enter-active { + * opacity:1; + * } + * .zipper.ng-leave { + * opacity:1; + * } + * .zipper.ng-leave.ng-leave-active { + * opacity:0; + * } + * ``` + * + * (Note that the `ng-animate` CSS class is reserved and it cannot be applied on an element directly since ngAnimate will always remove + * the CSS class once an animation has completed.) + * + * + * ## JavaScript-based Animations + * + * ngAnimate also allows for animations to be consumed by JavaScript code. The approach is similar to CSS-based animations (where there is a shared + * CSS class that is referenced in our HTML code) but in addition we need to register the JavaScript animation on the module. By making use of the + * `module.animation()` module function we can register the ainmation. + * + * Let's see an example of a enter/leave animation using `ngRepeat`: + * + * ```html + *
    + * {{ item }} + *
    + * ``` + * + * See the **slide** CSS class? Let's use that class to define an animation that we'll structure in our module code by using `module.animation`: + * + * ```js + * myModule.animation('.slide', [function() { + * return { + * // make note that other events (like addClass/removeClass) + * // have different function input parameters + * enter: function(element, doneFn) { + * jQuery(element).fadeIn(1000, doneFn); + * + * // remember to call doneFn so that angular + * // knows that the animation has concluded + * }, + * + * move: function(element, doneFn) { + * jQuery(element).fadeIn(1000, doneFn); + * }, + * + * leave: function(element, doneFn) { + * jQuery(element).fadeOut(1000, doneFn); + * } + * } + * }] + * ``` + * + * The nice thing about JS-based animations is that we can inject other services and make use of advanced animation libraries such as + * greensock.js and velocity.js. + * + * If our animation code class-based (meaning that something like `ngClass`, `ngHide` and `ngShow` triggers it) then we can still define + * our animations inside of the same registered animation, however, the function input arguments are a bit different: + * + * ```html + *
    + * this box is moody + *
    + * + * + * + * ``` + * + * ```js + * myModule.animation('.colorful', [function() { + * return { + * addClass: function(element, className, doneFn) { + * // do some cool animation and call the doneFn + * }, + * removeClass: function(element, className, doneFn) { + * // do some cool animation and call the doneFn + * }, + * setClass: function(element, addedClass, removedClass, doneFn) { + * // do some cool animation and call the doneFn + * } + * } + * }] + * ``` + * + * ## CSS + JS Animations Together + * + * AngularJS 1.4 and higher has taken steps to make the amalgamation of CSS and JS animations more flexible. However, unlike earlier versions of Angular, + * defining CSS and JS animations to work off of the same CSS class will not work anymore. Therefore the example below will only result in **JS animations taking + * charge of the animation**: + * + * ```html + *
    + * Slide in and out + *
    + * ``` + * + * ```js + * myModule.animation('.slide', [function() { + * return { + * enter: function(element, doneFn) { + * jQuery(element).slideIn(1000, doneFn); + * } + * } + * }] + * ``` + * + * ```css + * .slide.ng-enter { + * transition:0.5s linear all; + * transform:translateY(-100px); + * } + * .slide.ng-enter.ng-enter-active { + * transform:translateY(0); + * } + * ``` + * + * Does this mean that CSS and JS animations cannot be used together? Do JS-based animations always have higher priority? We can make up for the + * lack of CSS animations by using the `$animateCss` service to trigger our own tweaked-out, CSS-based animations directly from + * our own JS-based animation code: + * + * ```js + * myModule.animation('.slide', ['$animateCss', function($animateCss) { + * return { + * enter: function(element, doneFn) { +* // this will trigger `.slide.ng-enter` and `.slide.ng-enter-active`. + * var runner = $animateCss(element, { + * event: 'enter', + * structural: true + * }).start(); +* runner.done(doneFn); + * } + * } + * }] + * ``` + * + * The nice thing here is that we can save bandwidth by sticking to our CSS-based animation code and we don't need to rely on a 3rd-party animation framework. + * + * The `$animateCss` service is very powerful since we can feed in all kinds of extra properties that will be evaluated and fed into a CSS transition or + * keyframe animation. For example if we wanted to animate the height of an element while adding and removing classes then we can do so by providing that + * data into `$animateCss` directly: + * + * ```js + * myModule.animation('.slide', ['$animateCss', function($animateCss) { + * return { + * enter: function(element, doneFn) { + * var runner = $animateCss(element, { + * event: 'enter', + * addClass: 'maroon-setting', + * from: { height:0 }, + * to: { height: 200 } + * }).start(); + * + * runner.done(doneFn); + * } + * } + * }] + * ``` + * + * Now we can fill in the rest via our transition CSS code: + * + * ```css + * /* the transition tells ngAnimate to make the animation happen */ + * .slide.ng-enter { transition:0.5s linear all; } + * + * /* this extra CSS class will be absorbed into the transition + * since the $animateCss code is adding the class */ + * .maroon-setting { background:red; } + * ``` + * + * And `$animateCss` will figure out the rest. Just make sure to have the `done()` callback fire the `doneFn` function to signal when the animation is over. + * + * To learn more about what's possible be sure to visit the {@link ngAnimate.$animateCss $animateCss service}. + * + * ## Animation Anchoring (via `ng-animate-ref`) + * + * ngAnimate in AngularJS 1.4 comes packed with the ability to cross-animate elements between + * structural areas of an application (like views) by pairing up elements using an attribute + * called `ng-animate-ref`. + * + * Let's say for example we have two views that are managed by `ng-view` and we want to show + * that there is a relationship between two components situated in within these views. By using the + * `ng-animate-ref` attribute we can identify that the two components are paired together and we + * can then attach an animation, which is triggered when the view changes. + * + * Say for example we have the following template code: + * + * ```html + * + *
    + *
    + * + * + * + * + * + * + * + * + * ``` + * + * Now, when the view changes (once the link is clicked), ngAnimate will examine the + * HTML contents to see if there is a match reference between any components in the view + * that is leaving and the view that is entering. It will scan both the view which is being + * removed (leave) and inserted (enter) to see if there are any paired DOM elements that + * contain a matching ref value. + * + * The two images match since they share the same ref value. ngAnimate will now create a + * transport element (which is a clone of the first image element) and it will then attempt + * to animate to the position of the second image element in the next view. For the animation to + * work a special CSS class called `ng-anchor` will be added to the transported element. + * + * We can now attach a transition onto the `.banner.ng-anchor` CSS class and then + * ngAnimate will handle the entire transition for us as well as the addition and removal of + * any changes of CSS classes between the elements: + * + * ```css + * .banner.ng-anchor { + * /* this animation will last for 1 second since there are + * two phases to the animation (an `in` and an `out` phase) */ + * transition:0.5s linear all; + * } + * ``` + * + * We also **must** include animations for the views that are being entered and removed + * (otherwise anchoring wouldn't be possible since the new view would be inserted right away). + * + * ```css + * .view-animation.ng-enter, .view-animation.ng-leave { + * transition:0.5s linear all; + * position:fixed; + * left:0; + * top:0; + * width:100%; + * } + * .view-animation.ng-enter { + * transform:translateX(100%); + * } + * .view-animation.ng-leave, + * .view-animation.ng-enter.ng-enter-active { + * transform:translateX(0%); + * } + * .view-animation.ng-leave.ng-leave-active { + * transform:translateX(-100%); + * } + * ``` + * + * Now we can jump back to the anchor animation. When the animation happens, there are two stages that occur: + * an `out` and an `in` stage. The `out` stage happens first and that is when the element is animated away + * from its origin. Once that animation is over then the `in` stage occurs which animates the + * element to its destination. The reason why there are two animations is to give enough time + * for the enter animation on the new element to be ready. + * + * The example above sets up a transition for both the in and out phases, but we can also target the out or + * in phases directly via `ng-anchor-out` and `ng-anchor-in`. + * + * ```css + * .banner.ng-anchor-out { + * transition: 0.5s linear all; + * + * /* the scale will be applied during the out animation, + * but will be animated away when the in animation runs */ + * transform: scale(1.2); + * } + * + * .banner.ng-anchor-in { + * transition: 1s linear all; + * } + * ``` + * + * + * + * + * ### Anchoring Demo + * + + + Home +
    +
    +
    +
    +
    + + angular.module('anchoringExample', ['ngAnimate', 'ngRoute']) + .config(['$routeProvider', function($routeProvider) { + $routeProvider.when('/', { + templateUrl: 'home.html', + controller: 'HomeController as home' + }); + $routeProvider.when('/profile/:id', { + templateUrl: 'profile.html', + controller: 'ProfileController as profile' + }); + }]) + .run(['$rootScope', function($rootScope) { + $rootScope.records = [ + { id:1, title: "Miss Beulah Roob" }, + { id:2, title: "Trent Morissette" }, + { id:3, title: "Miss Ava Pouros" }, + { id:4, title: "Rod Pouros" }, + { id:5, title: "Abdul Rice" }, + { id:6, title: "Laurie Rutherford Sr." }, + { id:7, title: "Nakia McLaughlin" }, + { id:8, title: "Jordon Blanda DVM" }, + { id:9, title: "Rhoda Hand" }, + { id:10, title: "Alexandrea Sauer" } + ]; + }]) + .controller('HomeController', [function() { + //empty + }]) + .controller('ProfileController', ['$rootScope', '$routeParams', function($rootScope, $routeParams) { + var index = parseInt($routeParams.id, 10); + var record = $rootScope.records[index - 1]; + + this.title = record.title; + this.id = record.id; + }]); + + +

    Welcome to the home page

    +

    Please click on an element

    + + {{ record.title }} + +
    + +
    + {{ profile.title }} +
    +
    + + .record { + display:block; + font-size:20px; + } + .profile { + background:black; + color:white; + font-size:100px; + } + .view-container { + position:relative; + } + .view-container > .view.ng-animate { + position:absolute; + top:0; + left:0; + width:100%; + min-height:500px; + } + .view.ng-enter, .view.ng-leave, + .record.ng-anchor { + transition:0.5s linear all; + } + .view.ng-enter { + transform:translateX(100%); + } + .view.ng-enter.ng-enter-active, .view.ng-leave { + transform:translateX(0%); + } + .view.ng-leave.ng-leave-active { + transform:translateX(-100%); + } + .record.ng-anchor-out { + background:red; + } + +
    + * + * ### How is the element transported? + * + * When an anchor animation occurs, ngAnimate will clone the starting element and position it exactly where the starting + * element is located on screen via absolute positioning. The cloned element will be placed inside of the root element + * of the application (where ng-app was defined) and all of the CSS classes of the starting element will be applied. The + * element will then animate into the `out` and `in` animations and will eventually reach the coordinates and match + * the dimensions of the destination element. During the entire animation a CSS class of `.ng-animate-shim` will be applied + * to both the starting and destination elements in order to hide them from being visible (the CSS styling for the class + * is: `visibility:hidden`). Once the anchor reaches its destination then it will be removed and the destination element + * will become visible since the shim class will be removed. + * + * ### How is the morphing handled? + * + * CSS Anchoring relies on transitions and keyframes and the internal code is intelligent enough to figure out + * what CSS classes differ between the starting element and the destination element. These different CSS classes + * will be added/removed on the anchor element and a transition will be applied (the transition that is provided + * in the anchor class). Long story short, ngAnimate will figure out what classes to add and remove which will + * make the transition of the element as smooth and automatic as possible. Be sure to use simple CSS classes that + * do not rely on DOM nesting structure so that the anchor element appears the same as the starting element (since + * the cloned element is placed inside of root element which is likely close to the body element). + * + * Note that if the root element is on the `` element then the cloned node will be placed inside of body. + * + * + * ## Using $animate in your directive code + * + * So far we've explored how to feed in animations into an Angular application, but how do we trigger animations within our own directives in our application? + * By injecting the `$animate` service into our directive code, we can trigger structural and class-based hooks which can then be consumed by animations. Let's + * imagine we have a greeting box that shows and hides itself when the data changes + * + * ```html + * Hi there + * ``` + * + * ```js + * ngModule.directive('greetingBox', ['$animate', function($animate) { + * return function(scope, element, attrs) { + * attrs.$observe('active', function(value) { + * value ? $animate.addClass(element, 'on') : $animate.removeClass(element, 'on'); + * }); + * }); + * }]); + * ``` + * + * Now the `on` CSS class is added and removed on the greeting box component. Now if we add a CSS class on top of the greeting box element + * in our HTML code then we can trigger a CSS or JS animation to happen. + * + * ```css + * /* normally we would create a CSS class to reference on the element */ + * greeting-box.on { transition:0.5s linear all; background:green; color:white; } + * ``` + * + * The `$animate` service contains a variety of other methods like `enter`, `leave`, `animate` and `setClass`. To learn more about what's + * possible be sure to visit the {@link ng.$animate $animate service API page}. + * + * + * ### Preventing Collisions With Third Party Libraries + * + * Some third-party frameworks place animation duration defaults across many element or className + * selectors in order to make their code small and reuseable. This can lead to issues with ngAnimate, which + * is expecting actual animations on these elements and has to wait for their completion. + * + * You can prevent this unwanted behavior by using a prefix on all your animation classes: + * + * ```css + * /* prefixed with animate- */ + * .animate-fade-add.animate-fade-add-active { + * transition:1s linear all; + * opacity:0; + * } + * ``` + * + * You then configure `$animate` to enforce this prefix: + * + * ```js + * $animateProvider.classNameFilter(/animate-/); + * ``` + * + * This also may provide your application with a speed boost since only specific elements containing CSS class prefix + * will be evaluated for animation when any DOM changes occur in the application. + * + * ## Callbacks and Promises + * + * When `$animate` is called it returns a promise that can be used to capture when the animation has ended. Therefore if we were to trigger + * an animation (within our directive code) then we can continue performing directive and scope related activities after the animation has + * ended by chaining onto the returned promise that animation method returns. + * + * ```js + * // somewhere within the depths of the directive + * $animate.enter(element, parent).then(function() { + * //the animation has completed + * }); + * ``` + * + * (Note that earlier versions of Angular prior to v1.4 required the promise code to be wrapped using `$scope.$apply(...)`. This is not the case + * anymore.) + * + * In addition to the animation promise, we can also make use of animation-related callbacks within our directives and controller code by registering + * an event listener using the `$animate` service. Let's say for example that an animation was triggered on our view + * routing controller to hook into that: + * + * ```js + * ngModule.controller('HomePageController', ['$animate', function($animate) { + * $animate.on('enter', ngViewElement, function(element) { + * // the animation for this route has completed + * }]); + * }]) + * ``` + * + * (Note that you will need to trigger a digest within the callback to get angular to notice any scope-related changes.) + */ + +/** + * @ngdoc service + * @name $animate + * @kind object + * + * @description + * The ngAnimate `$animate` service documentation is the same for the core `$animate` service. + * + * Click here {@link ng.$animate $animate to learn more about animations with `$animate`}. + */ +angular.module('ngAnimate', []) + .directive('ngAnimateChildren', $$AnimateChildrenDirective) + + .factory('$$rAFMutex', $$rAFMutexFactory) + .factory('$$rAFScheduler', $$rAFSchedulerFactory) + + .factory('$$AnimateRunner', $$AnimateRunnerFactory) + + .provider('$$animateQueue', $$AnimateQueueProvider) + .provider('$$animation', $$AnimationProvider) + + .provider('$animateCss', $AnimateCssProvider) + .provider('$$animateCssDriver', $$AnimateCssDriverProvider) + + .provider('$$animateJs', $$AnimateJsProvider) + .provider('$$animateJsDriver', $$AnimateJsDriverProvider); + + +})(window, window.angular); diff --git a/1.1.0/js/angular/angular-animate.min.js b/1.1.0/js/angular/angular-animate.min.js new file mode 100644 index 00000000..a99eac13 --- /dev/null +++ b/1.1.0/js/angular/angular-animate.min.js @@ -0,0 +1,52 @@ +/* + AngularJS v1.4.3 + (c) 2010-2015 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(F,t,W){'use strict';function ua(a,b,c){if(!a)throw ngMinErr("areq",b||"?",c||"required");return a}function va(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;X(a)&&(a=a.join(" "));X(b)&&(b=b.join(" "));return a+" "+b}function Ea(a){var b={};a&&(a.to||a.from)&&(b.to=a.to,b.from=a.from);return b}function ba(a,b,c){var d="";a=X(a)?a:a&&U(a)&&a.length?a.split(/\s+/):[];u(a,function(a,s){a&&0=F&&b>=J&&(C=!0,m())}if(!K)if(g.parentNode){var x,p=[],k=function(a){if(C)D&&a&&(D=!1,m());else if(D=!a,y.animationDuration)if(a= +ma(g,D),D)l.push(a);else{var b=l,c=b.indexOf(a);0<=a&&b.splice(c,1)}},r=0 + * + * See {@link ngResource.$resource `$resource`} for usage. + */ + +/** + * @ngdoc service + * @name $resource + * @requires $http + * + * @description + * A factory which creates a resource object that lets you interact with + * [RESTful](http://en.wikipedia.org/wiki/Representational_State_Transfer) server-side data sources. + * + * The returned resource object has action methods which provide high-level behaviors without + * the need to interact with the low level {@link ng.$http $http} service. + * + * Requires the {@link ngResource `ngResource`} module to be installed. + * + * By default, trailing slashes will be stripped from the calculated URLs, + * which can pose problems with server backends that do not expect that + * behavior. This can be disabled by configuring the `$resourceProvider` like + * this: + * + * ```js + app.config(['$resourceProvider', function($resourceProvider) { + // Don't strip trailing slashes from calculated URLs + $resourceProvider.defaults.stripTrailingSlashes = false; + }]); + * ``` + * + * @param {string} url A parameterized URL template with parameters prefixed by `:` as in + * `/user/:username`. If you are using a URL with a port number (e.g. + * `http://example.com:8080/api`), it will be respected. + * + * If you are using a url with a suffix, just add the suffix, like this: + * `$resource('http://example.com/resource.json')` or `$resource('http://example.com/:id.json')` + * or even `$resource('http://example.com/resource/:resource_id.:format')` + * If the parameter before the suffix is empty, :resource_id in this case, then the `/.` will be + * collapsed down to a single `.`. If you need this sequence to appear and not collapse then you + * can escape it with `/\.`. + * + * @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in + * `actions` methods. If any of the parameter value is a function, it will be executed every time + * when a param value needs to be obtained for a request (unless the param was overridden). + * + * Each key value in the parameter object is first bound to url template if present and then any + * excess keys are appended to the url search query after the `?`. + * + * Given a template `/path/:verb` and parameter `{verb:'greet', salutation:'Hello'}` results in + * URL `/path/greet?salutation=Hello`. + * + * If the parameter value is prefixed with `@` then the value for that parameter will be extracted + * from the corresponding property on the `data` object (provided when calling an action method). For + * example, if the `defaultParam` object is `{someParam: '@someProp'}` then the value of `someParam` + * will be `data.someProp`. + * + * @param {Object.=} actions Hash with declaration of custom actions that should extend + * the default set of resource actions. The declaration should be created in the format of {@link + * ng.$http#usage $http.config}: + * + * {action1: {method:?, params:?, isArray:?, headers:?, ...}, + * action2: {method:?, params:?, isArray:?, headers:?, ...}, + * ...} + * + * Where: + * + * - **`action`** – {string} – The name of action. This name becomes the name of the method on + * your resource object. + * - **`method`** – {string} – Case insensitive HTTP method (e.g. `GET`, `POST`, `PUT`, + * `DELETE`, `JSONP`, etc). + * - **`params`** – {Object=} – Optional set of pre-bound parameters for this action. If any of + * the parameter value is a function, it will be executed every time when a param value needs to + * be obtained for a request (unless the param was overridden). + * - **`url`** – {string} – action specific `url` override. The url templating is supported just + * like for the resource-level urls. + * - **`isArray`** – {boolean=} – If true then the returned object for this action is an array, + * see `returns` section. + * - **`transformRequest`** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * request body and headers and returns its transformed (typically serialized) version. + * By default, transformRequest will contain one function that checks if the request data is + * an object and serializes to using `angular.toJson`. To prevent this behavior, set + * `transformRequest` to an empty array: `transformRequest: []` + * - **`transformResponse`** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * response body and headers and returns its transformed (typically deserialized) version. + * By default, transformResponse will contain one function that checks if the response looks like + * a JSON string and deserializes it using `angular.fromJson`. To prevent this behavior, set + * `transformResponse` to an empty array: `transformResponse: []` + * - **`cache`** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the + * GET request, otherwise if a cache instance built with + * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for + * caching. + * - **`timeout`** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise} that + * should abort the request when resolved. + * - **`withCredentials`** - `{boolean}` - whether to set the `withCredentials` flag on the + * XHR object. See + * [requests with credentials](https://developer.mozilla.org/en/http_access_control#section_5) + * for more information. + * - **`responseType`** - `{string}` - see + * [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType). + * - **`interceptor`** - `{Object=}` - The interceptor object has two optional methods - + * `response` and `responseError`. Both `response` and `responseError` interceptors get called + * with `http response` object. See {@link ng.$http $http interceptors}. + * + * @param {Object} options Hash with custom settings that should extend the + * default `$resourceProvider` behavior. The only supported option is + * + * Where: + * + * - **`stripTrailingSlashes`** – {boolean} – If true then the trailing + * slashes from any calculated URL will be stripped. (Defaults to true.) + * + * @returns {Object} A resource "class" object with methods for the default set of resource actions + * optionally extended with custom `actions`. The default set contains these actions: + * ```js + * { 'get': {method:'GET'}, + * 'save': {method:'POST'}, + * 'query': {method:'GET', isArray:true}, + * 'remove': {method:'DELETE'}, + * 'delete': {method:'DELETE'} }; + * ``` + * + * Calling these methods invoke an {@link ng.$http} with the specified http method, + * destination and parameters. When the data is returned from the server then the object is an + * instance of the resource class. The actions `save`, `remove` and `delete` are available on it + * as methods with the `$` prefix. This allows you to easily perform CRUD operations (create, + * read, update, delete) on server-side data like this: + * ```js + * var User = $resource('/user/:userId', {userId:'@id'}); + * var user = User.get({userId:123}, function() { + * user.abc = true; + * user.$save(); + * }); + * ``` + * + * It is important to realize that invoking a $resource object method immediately returns an + * empty reference (object or array depending on `isArray`). Once the data is returned from the + * server the existing reference is populated with the actual data. This is a useful trick since + * usually the resource is assigned to a model which is then rendered by the view. Having an empty + * object results in no rendering, once the data arrives from the server then the object is + * populated with the data and the view automatically re-renders itself showing the new data. This + * means that in most cases one never has to write a callback function for the action methods. + * + * The action methods on the class object or instance object can be invoked with the following + * parameters: + * + * - HTTP GET "class" actions: `Resource.action([parameters], [success], [error])` + * - non-GET "class" actions: `Resource.action([parameters], postData, [success], [error])` + * - non-GET instance actions: `instance.$action([parameters], [success], [error])` + * + * + * Success callback is called with (value, responseHeaders) arguments, where the value is + * the populated resource instance or collection object. The error callback is called + * with (httpResponse) argument. + * + * Class actions return empty instance (with additional properties below). + * Instance actions return promise of the action. + * + * The Resource instances and collection have these additional properties: + * + * - `$promise`: the {@link ng.$q promise} of the original server interaction that created this + * instance or collection. + * + * On success, the promise is resolved with the same resource instance or collection object, + * updated with data from server. This makes it easy to use in + * {@link ngRoute.$routeProvider resolve section of $routeProvider.when()} to defer view + * rendering until the resource(s) are loaded. + * + * On failure, the promise is resolved with the {@link ng.$http http response} object, without + * the `resource` property. + * + * If an interceptor object was provided, the promise will instead be resolved with the value + * returned by the interceptor. + * + * - `$resolved`: `true` after first server interaction is completed (either with success or + * rejection), `false` before that. Knowing if the Resource has been resolved is useful in + * data-binding. + * + * @example + * + * # Credit card resource + * + * ```js + // Define CreditCard class + var CreditCard = $resource('/user/:userId/card/:cardId', + {userId:123, cardId:'@id'}, { + charge: {method:'POST', params:{charge:true}} + }); + + // We can retrieve a collection from the server + var cards = CreditCard.query(function() { + // GET: /user/123/card + // server returns: [ {id:456, number:'1234', name:'Smith'} ]; + + var card = cards[0]; + // each item is an instance of CreditCard + expect(card instanceof CreditCard).toEqual(true); + card.name = "J. Smith"; + // non GET methods are mapped onto the instances + card.$save(); + // POST: /user/123/card/456 {id:456, number:'1234', name:'J. Smith'} + // server returns: {id:456, number:'1234', name: 'J. Smith'}; + + // our custom method is mapped as well. + card.$charge({amount:9.99}); + // POST: /user/123/card/456?amount=9.99&charge=true {id:456, number:'1234', name:'J. Smith'} + }); + + // we can create an instance as well + var newCard = new CreditCard({number:'0123'}); + newCard.name = "Mike Smith"; + newCard.$save(); + // POST: /user/123/card {number:'0123', name:'Mike Smith'} + // server returns: {id:789, number:'0123', name: 'Mike Smith'}; + expect(newCard.id).toEqual(789); + * ``` + * + * The object returned from this function execution is a resource "class" which has "static" method + * for each action in the definition. + * + * Calling these methods invoke `$http` on the `url` template with the given `method`, `params` and + * `headers`. + * When the data is returned from the server then the object is an instance of the resource type and + * all of the non-GET methods are available with `$` prefix. This allows you to easily support CRUD + * operations (create, read, update, delete) on server-side data. + + ```js + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}, function(user) { + user.abc = true; + user.$save(); + }); + ``` + * + * It's worth noting that the success callback for `get`, `query` and other methods gets passed + * in the response that came from the server as well as $http header getter function, so one + * could rewrite the above example and get access to http headers as: + * + ```js + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}, function(u, getResponseHeaders){ + u.abc = true; + u.$save(function(u, putResponseHeaders) { + //u => saved user object + //putResponseHeaders => $http header getter + }); + }); + ``` + * + * You can also access the raw `$http` promise via the `$promise` property on the object returned + * + ``` + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}) + .$promise.then(function(user) { + $scope.user = user; + }); + ``` + + * # Creating a custom 'PUT' request + * In this example we create a custom method on our resource to make a PUT request + * ```js + * var app = angular.module('app', ['ngResource', 'ngRoute']); + * + * // Some APIs expect a PUT request in the format URL/object/ID + * // Here we are creating an 'update' method + * app.factory('Notes', ['$resource', function($resource) { + * return $resource('/notes/:id', null, + * { + * 'update': { method:'PUT' } + * }); + * }]); + * + * // In our controller we get the ID from the URL using ngRoute and $routeParams + * // We pass in $routeParams and our Notes factory along with $scope + * app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes', + function($scope, $routeParams, Notes) { + * // First get a note object from the factory + * var note = Notes.get({ id:$routeParams.id }); + * $id = note.id; + * + * // Now call update passing in the ID first then the object you are updating + * Notes.update({ id:$id }, note); + * + * // This will PUT /notes/ID with the note object in the request payload + * }]); + * ``` + */ +angular.module('ngResource', ['ng']). + provider('$resource', function() { + var provider = this; + + this.defaults = { + // Strip slashes by default + stripTrailingSlashes: true, + + // Default actions configuration + actions: { + 'get': {method: 'GET'}, + 'save': {method: 'POST'}, + 'query': {method: 'GET', isArray: true}, + 'remove': {method: 'DELETE'}, + 'delete': {method: 'DELETE'} + } + }; + + this.$get = ['$http', '$q', function($http, $q) { + + var noop = angular.noop, + forEach = angular.forEach, + extend = angular.extend, + copy = angular.copy, + isFunction = angular.isFunction; + + /** + * We need our custom method because encodeURIComponent is too aggressive and doesn't follow + * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set + * (pchar) allowed in path segments: + * segment = *pchar + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * pct-encoded = "%" HEXDIG HEXDIG + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ + function encodeUriSegment(val) { + return encodeUriQuery(val, true). + replace(/%26/gi, '&'). + replace(/%3D/gi, '='). + replace(/%2B/gi, '+'); + } + + + /** + * This method is intended for encoding *key* or *value* parts of query component. We need a + * custom method because encodeURIComponent is too aggressive and encodes stuff that doesn't + * have to be encoded per http://tools.ietf.org/html/rfc3986: + * query = *( pchar / "/" / "?" ) + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * pct-encoded = "%" HEXDIG HEXDIG + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ + function encodeUriQuery(val, pctEncodeSpaces) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, (pctEncodeSpaces ? '%20' : '+')); + } + + function Route(template, defaults) { + this.template = template; + this.defaults = extend({}, provider.defaults, defaults); + this.urlParams = {}; + } + + Route.prototype = { + setUrlParams: function(config, params, actionUrl) { + var self = this, + url = actionUrl || self.template, + val, + encodedVal; + + var urlParams = self.urlParams = {}; + forEach(url.split(/\W/), function(param) { + if (param === 'hasOwnProperty') { + throw $resourceMinErr('badname', "hasOwnProperty is not a valid parameter name."); + } + if (!(new RegExp("^\\d+$").test(param)) && param && + (new RegExp("(^|[^\\\\]):" + param + "(\\W|$)").test(url))) { + urlParams[param] = true; + } + }); + url = url.replace(/\\:/g, ':'); + + params = params || {}; + forEach(self.urlParams, function(_, urlParam) { + val = params.hasOwnProperty(urlParam) ? params[urlParam] : self.defaults[urlParam]; + if (angular.isDefined(val) && val !== null) { + encodedVal = encodeUriSegment(val); + url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), function(match, p1) { + return encodedVal + p1; + }); + } else { + url = url.replace(new RegExp("(\/?):" + urlParam + "(\\W|$)", "g"), function(match, + leadingSlashes, tail) { + if (tail.charAt(0) == '/') { + return tail; + } else { + return leadingSlashes + tail; + } + }); + } + }); + + // strip trailing slashes and set the url (unless this behavior is specifically disabled) + if (self.defaults.stripTrailingSlashes) { + url = url.replace(/\/+$/, '') || '/'; + } + + // then replace collapse `/.` if found in the last URL path segment before the query + // E.g. `http://url.com/id./format?q=x` becomes `http://url.com/id.format?q=x` + url = url.replace(/\/\.(?=\w+($|\?))/, '.'); + // replace escaped `/\.` with `/.` + config.url = url.replace(/\/\\\./, '/.'); + + + // set params - delegate param encoding to $http + forEach(params, function(value, key) { + if (!self.urlParams[key]) { + config.params = config.params || {}; + config.params[key] = value; + } + }); + } + }; + + + function resourceFactory(url, paramDefaults, actions, options) { + var route = new Route(url, options); + + actions = extend({}, provider.defaults.actions, actions); + + function extractParams(data, actionParams) { + var ids = {}; + actionParams = extend({}, paramDefaults, actionParams); + forEach(actionParams, function(value, key) { + if (isFunction(value)) { value = value(); } + ids[key] = value && value.charAt && value.charAt(0) == '@' ? + lookupDottedPath(data, value.substr(1)) : value; + }); + return ids; + } + + function defaultResponseInterceptor(response) { + return response.resource; + } + + function Resource(value) { + shallowClearAndCopy(value || {}, this); + } + + Resource.prototype.toJSON = function() { + var data = extend({}, this); + delete data.$promise; + delete data.$resolved; + return data; + }; + + forEach(actions, function(action, name) { + var hasBody = /^(POST|PUT|PATCH)$/i.test(action.method); + + Resource[name] = function(a1, a2, a3, a4) { + var params = {}, data, success, error; + + /* jshint -W086 */ /* (purposefully fall through case statements) */ + switch (arguments.length) { + case 4: + error = a4; + success = a3; + //fallthrough + case 3: + case 2: + if (isFunction(a2)) { + if (isFunction(a1)) { + success = a1; + error = a2; + break; + } + + success = a2; + error = a3; + //fallthrough + } else { + params = a1; + data = a2; + success = a3; + break; + } + case 1: + if (isFunction(a1)) success = a1; + else if (hasBody) data = a1; + else params = a1; + break; + case 0: break; + default: + throw $resourceMinErr('badargs', + "Expected up to 4 arguments [params, data, success, error], got {0} arguments", + arguments.length); + } + /* jshint +W086 */ /* (purposefully fall through case statements) */ + + var isInstanceCall = this instanceof Resource; + var value = isInstanceCall ? data : (action.isArray ? [] : new Resource(data)); + var httpConfig = {}; + var responseInterceptor = action.interceptor && action.interceptor.response || + defaultResponseInterceptor; + var responseErrorInterceptor = action.interceptor && action.interceptor.responseError || + undefined; + + forEach(action, function(value, key) { + if (key != 'params' && key != 'isArray' && key != 'interceptor') { + httpConfig[key] = copy(value); + } + }); + + if (hasBody) httpConfig.data = data; + route.setUrlParams(httpConfig, + extend({}, extractParams(data, action.params || {}), params), + action.url); + + var promise = $http(httpConfig).then(function(response) { + var data = response.data, + promise = value.$promise; + + if (data) { + // Need to convert action.isArray to boolean in case it is undefined + // jshint -W018 + if (angular.isArray(data) !== (!!action.isArray)) { + throw $resourceMinErr('badcfg', + 'Error in resource configuration for action `{0}`. Expected response to ' + + 'contain an {1} but got an {2} (Request: {3} {4})', name, action.isArray ? 'array' : 'object', + angular.isArray(data) ? 'array' : 'object', httpConfig.method, httpConfig.url); + } + // jshint +W018 + if (action.isArray) { + value.length = 0; + forEach(data, function(item) { + if (typeof item === "object") { + value.push(new Resource(item)); + } else { + // Valid JSON values may be string literals, and these should not be converted + // into objects. These items will not have access to the Resource prototype + // methods, but unfortunately there + value.push(item); + } + }); + } else { + shallowClearAndCopy(data, value); + value.$promise = promise; + } + } + + value.$resolved = true; + + response.resource = value; + + return response; + }, function(response) { + value.$resolved = true; + + (error || noop)(response); + + return $q.reject(response); + }); + + promise = promise.then( + function(response) { + var value = responseInterceptor(response); + (success || noop)(value, response.headers); + return value; + }, + responseErrorInterceptor); + + if (!isInstanceCall) { + // we are creating instance / collection + // - set the initial promise + // - return the instance / collection + value.$promise = promise; + value.$resolved = false; + + return value; + } + + // instance call + return promise; + }; + + + Resource.prototype['$' + name] = function(params, success, error) { + if (isFunction(params)) { + error = success; success = params; params = {}; + } + var result = Resource[name].call(this, params, this, success, error); + return result.$promise || result; + }; + }); + + Resource.bind = function(additionalParamDefaults) { + return resourceFactory(url, extend({}, paramDefaults, additionalParamDefaults), actions); + }; + + return Resource; + } + + return resourceFactory; + }]; + }); + + +})(window, window.angular); diff --git a/1.1.0/js/angular/angular-resource.min.js b/1.1.0/js/angular/angular-resource.min.js new file mode 100644 index 00000000..07981179 --- /dev/null +++ b/1.1.0/js/angular/angular-resource.min.js @@ -0,0 +1,13 @@ +/* + AngularJS v1.4.3 + (c) 2010-2015 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(I,d,B){'use strict';function D(f,q){q=q||{};d.forEach(q,function(d,h){delete q[h]});for(var h in f)!f.hasOwnProperty(h)||"$"===h.charAt(0)&&"$"===h.charAt(1)||(q[h]=f[h]);return q}var x=d.$$minErr("$resource"),C=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;d.module("ngResource",["ng"]).provider("$resource",function(){var f=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}}; +this.$get=["$http","$q",function(q,h){function u(d,g){this.template=d;this.defaults=s({},f.defaults,g);this.urlParams={}}function w(y,g,l,m){function c(b,k){var c={};k=s({},g,k);r(k,function(a,k){v(a)&&(a=a());var d;if(a&&a.charAt&&"@"==a.charAt(0)){d=b;var e=a.substr(1);if(null==e||""===e||"hasOwnProperty"===e||!C.test("."+e))throw x("badmember",e);for(var e=e.split("."),n=0,g=e.length;n + * + * See {@link ngSanitize.$sanitize `$sanitize`} for usage. + */ + +/* + * HTML Parser By Misko Hevery (misko@hevery.com) + * based on: HTML Parser By John Resig (ejohn.org) + * Original code by Erik Arvidsson, Mozilla Public License + * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js + * + * // Use like so: + * htmlParser(htmlString, { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * }); + * + */ + + +/** + * @ngdoc service + * @name $sanitize + * @kind function + * + * @description + * The input is sanitized by parsing the HTML into tokens. All safe tokens (from a whitelist) are + * then serialized back to properly escaped html string. This means that no unsafe input can make + * it into the returned string, however, since our parser is more strict than a typical browser + * parser, it's possible that some obscure input, which would be recognized as valid HTML by a + * browser, won't make it through the sanitizer. The input may also contain SVG markup. + * The whitelist is configured using the functions `aHrefSanitizationWhitelist` and + * `imgSrcSanitizationWhitelist` of {@link ng.$compileProvider `$compileProvider`}. + * + * @param {string} html HTML input. + * @returns {string} Sanitized HTML. + * + * @example + + + +
    + Snippet: + + + + + + + + + + + + + + + + + + + + + + + + + +
    DirectiveHowSourceRendered
    ng-bind-htmlAutomatically uses $sanitize
    <div ng-bind-html="snippet">
    </div>
    ng-bind-htmlBypass $sanitize by explicitly trusting the dangerous value +
    <div ng-bind-html="deliberatelyTrustDangerousSnippet()">
    +</div>
    +
    ng-bindAutomatically escapes
    <div ng-bind="snippet">
    </div>
    +
    +
    + + it('should sanitize the html snippet by default', function() { + expect(element(by.css('#bind-html-with-sanitize div')).getInnerHtml()). + toBe('

    an html\nclick here\nsnippet

    '); + }); + + it('should inline raw snippet if bound to a trusted value', function() { + expect(element(by.css('#bind-html-with-trust div')).getInnerHtml()). + toBe("

    an html\n" + + "click here\n" + + "snippet

    "); + }); + + it('should escape snippet without any filter', function() { + expect(element(by.css('#bind-default div')).getInnerHtml()). + toBe("<p style=\"color:blue\">an html\n" + + "<em onmouseover=\"this.textContent='PWN3D!'\">click here</em>\n" + + "snippet</p>"); + }); + + it('should update', function() { + element(by.model('snippet')).clear(); + element(by.model('snippet')).sendKeys('new text'); + expect(element(by.css('#bind-html-with-sanitize div')).getInnerHtml()). + toBe('new text'); + expect(element(by.css('#bind-html-with-trust div')).getInnerHtml()).toBe( + 'new text'); + expect(element(by.css('#bind-default div')).getInnerHtml()).toBe( + "new <b onclick=\"alert(1)\">text</b>"); + }); +
    +
    + */ +function $SanitizeProvider() { + this.$get = ['$$sanitizeUri', function($$sanitizeUri) { + return function(html) { + var buf = []; + htmlParser(html, htmlSanitizeWriter(buf, function(uri, isImage) { + return !/^unsafe/.test($$sanitizeUri(uri, isImage)); + })); + return buf.join(''); + }; + }]; +} + +function sanitizeText(chars) { + var buf = []; + var writer = htmlSanitizeWriter(buf, angular.noop); + writer.chars(chars); + return buf.join(''); +} + + +// Regular Expressions for parsing tags and attributes +var START_TAG_REGEXP = + /^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/, + END_TAG_REGEXP = /^<\/\s*([\w:-]+)[^>]*>/, + ATTR_REGEXP = /([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g, + BEGIN_TAG_REGEXP = /^/g, + DOCTYPE_REGEXP = /]*?)>/i, + CDATA_REGEXP = //g, + SURROGATE_PAIR_REGEXP = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, + // Match everything outside of normal chars and " (quote character) + NON_ALPHANUMERIC_REGEXP = /([^\#-~| |!])/g; + + +// Good source of info about elements and attributes +// http://dev.w3.org/html5/spec/Overview.html#semantics +// http://simon.html5.org/html-elements + +// Safe Void Elements - HTML5 +// http://dev.w3.org/html5/spec/Overview.html#void-elements +var voidElements = makeMap("area,br,col,hr,img,wbr"); + +// Elements that you can, intentionally, leave open (and which close themselves) +// http://dev.w3.org/html5/spec/Overview.html#optional-tags +var optionalEndTagBlockElements = makeMap("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"), + optionalEndTagInlineElements = makeMap("rp,rt"), + optionalEndTagElements = angular.extend({}, + optionalEndTagInlineElements, + optionalEndTagBlockElements); + +// Safe Block Elements - HTML5 +var blockElements = angular.extend({}, optionalEndTagBlockElements, makeMap("address,article," + + "aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5," + + "h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")); + +// Inline Elements - HTML5 +var inlineElements = angular.extend({}, optionalEndTagInlineElements, makeMap("a,abbr,acronym,b," + + "bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s," + + "samp,small,span,strike,strong,sub,sup,time,tt,u,var")); + +// SVG Elements +// https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Elements +// Note: the elements animate,animateColor,animateMotion,animateTransform,set are intentionally omitted. +// They can potentially allow for arbitrary javascript to be executed. See #11290 +var svgElements = makeMap("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph," + + "hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline," + + "radialGradient,rect,stop,svg,switch,text,title,tspan,use"); + +// Special Elements (can contain anything) +var specialElements = makeMap("script,style"); + +var validElements = angular.extend({}, + voidElements, + blockElements, + inlineElements, + optionalEndTagElements, + svgElements); + +//Attributes that have href and hence need to be sanitized +var uriAttrs = makeMap("background,cite,href,longdesc,src,usemap,xlink:href"); + +var htmlAttrs = makeMap('abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,' + + 'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,' + + 'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,' + + 'scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,' + + 'valign,value,vspace,width'); + +// SVG attributes (without "id" and "name" attributes) +// https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Attributes +var svgAttrs = makeMap('accent-height,accumulate,additive,alphabetic,arabic-form,ascent,' + + 'baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,' + + 'cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,' + + 'font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,' + + 'height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,' + + 'marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,' + + 'max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,' + + 'path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,' + + 'requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,' + + 'stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,' + + 'stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,' + + 'stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,' + + 'underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,' + + 'width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,' + + 'xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan', true); + +var validAttrs = angular.extend({}, + uriAttrs, + svgAttrs, + htmlAttrs); + +function makeMap(str, lowercaseKeys) { + var obj = {}, items = str.split(','), i; + for (i = 0; i < items.length; i++) { + obj[lowercaseKeys ? angular.lowercase(items[i]) : items[i]] = true; + } + return obj; +} + + +/** + * @example + * htmlParser(htmlString, { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * }); + * + * @param {string} html string + * @param {object} handler + */ +function htmlParser(html, handler) { + if (typeof html !== 'string') { + if (html === null || typeof html === 'undefined') { + html = ''; + } else { + html = '' + html; + } + } + var index, chars, match, stack = [], last = html, text; + stack.last = function() { return stack[stack.length - 1]; }; + + while (html) { + text = ''; + chars = true; + + // Make sure we're not in a script or style element + if (!stack.last() || !specialElements[stack.last()]) { + + // Comment + if (html.indexOf("", index) === index) { + if (handler.comment) handler.comment(html.substring(4, index)); + html = html.substring(index + 3); + chars = false; + } + // DOCTYPE + } else if (DOCTYPE_REGEXP.test(html)) { + match = html.match(DOCTYPE_REGEXP); + + if (match) { + html = html.replace(match[0], ''); + chars = false; + } + // end tag + } else if (BEGING_END_TAGE_REGEXP.test(html)) { + match = html.match(END_TAG_REGEXP); + + if (match) { + html = html.substring(match[0].length); + match[0].replace(END_TAG_REGEXP, parseEndTag); + chars = false; + } + + // start tag + } else if (BEGIN_TAG_REGEXP.test(html)) { + match = html.match(START_TAG_REGEXP); + + if (match) { + // We only have a valid start-tag if there is a '>'. + if (match[4]) { + html = html.substring(match[0].length); + match[0].replace(START_TAG_REGEXP, parseStartTag); + } + chars = false; + } else { + // no ending tag found --- this piece should be encoded as an entity. + text += '<'; + html = html.substring(1); + } + } + + if (chars) { + index = html.indexOf("<"); + + text += index < 0 ? html : html.substring(0, index); + html = index < 0 ? "" : html.substring(index); + + if (handler.chars) handler.chars(decodeEntities(text)); + } + + } else { + // IE versions 9 and 10 do not understand the regex '[^]', so using a workaround with [\W\w]. + html = html.replace(new RegExp("([\\W\\w]*)<\\s*\\/\\s*" + stack.last() + "[^>]*>", 'i'), + function(all, text) { + text = text.replace(COMMENT_REGEXP, "$1").replace(CDATA_REGEXP, "$1"); + + if (handler.chars) handler.chars(decodeEntities(text)); + + return ""; + }); + + parseEndTag("", stack.last()); + } + + if (html == last) { + throw $sanitizeMinErr('badparse', "The sanitizer was unable to parse the following block " + + "of html: {0}", html); + } + last = html; + } + + // Clean up any remaining tags + parseEndTag(); + + function parseStartTag(tag, tagName, rest, unary) { + tagName = angular.lowercase(tagName); + if (blockElements[tagName]) { + while (stack.last() && inlineElements[stack.last()]) { + parseEndTag("", stack.last()); + } + } + + if (optionalEndTagElements[tagName] && stack.last() == tagName) { + parseEndTag("", tagName); + } + + unary = voidElements[tagName] || !!unary; + + if (!unary) { + stack.push(tagName); + } + + var attrs = {}; + + rest.replace(ATTR_REGEXP, + function(match, name, doubleQuotedValue, singleQuotedValue, unquotedValue) { + var value = doubleQuotedValue + || singleQuotedValue + || unquotedValue + || ''; + + attrs[name] = decodeEntities(value); + }); + if (handler.start) handler.start(tagName, attrs, unary); + } + + function parseEndTag(tag, tagName) { + var pos = 0, i; + tagName = angular.lowercase(tagName); + if (tagName) { + // Find the closest opened tag of the same type + for (pos = stack.length - 1; pos >= 0; pos--) { + if (stack[pos] == tagName) break; + } + } + + if (pos >= 0) { + // Close all the open elements, up the stack + for (i = stack.length - 1; i >= pos; i--) + if (handler.end) handler.end(stack[i]); + + // Remove the open elements from the stack + stack.length = pos; + } + } +} + +var hiddenPre=document.createElement("pre"); +/** + * decodes all entities into regular string + * @param value + * @returns {string} A string with decoded entities. + */ +function decodeEntities(value) { + if (!value) { return ''; } + + hiddenPre.innerHTML = value.replace(//g, '>'); +} + +/** + * create an HTML/XML writer which writes to buffer + * @param {Array} buf use buf.jain('') to get out sanitized html string + * @returns {object} in the form of { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * } + */ +function htmlSanitizeWriter(buf, uriValidator) { + var ignore = false; + var out = angular.bind(buf, buf.push); + return { + start: function(tag, attrs, unary) { + tag = angular.lowercase(tag); + if (!ignore && specialElements[tag]) { + ignore = tag; + } + if (!ignore && validElements[tag] === true) { + out('<'); + out(tag); + angular.forEach(attrs, function(value, key) { + var lkey=angular.lowercase(key); + var isImage = (tag === 'img' && lkey === 'src') || (lkey === 'background'); + if (validAttrs[lkey] === true && + (uriAttrs[lkey] !== true || uriValidator(value, isImage))) { + out(' '); + out(key); + out('="'); + out(encodeEntities(value)); + out('"'); + } + }); + out(unary ? '/>' : '>'); + } + }, + end: function(tag) { + tag = angular.lowercase(tag); + if (!ignore && validElements[tag] === true) { + out(''); + } + if (tag == ignore) { + ignore = false; + } + }, + chars: function(chars) { + if (!ignore) { + out(encodeEntities(chars)); + } + } + }; +} + + +// define ngSanitize module and register $sanitize service +angular.module('ngSanitize', []).provider('$sanitize', $SanitizeProvider); + +/* global sanitizeText: false */ + +/** + * @ngdoc filter + * @name linky + * @kind function + * + * @description + * Finds links in text input and turns them into html links. Supports http/https/ftp/mailto and + * plain email address links. + * + * Requires the {@link ngSanitize `ngSanitize`} module to be installed. + * + * @param {string} text Input text. + * @param {string} target Window (_blank|_self|_parent|_top) or named frame to open links in. + * @returns {string} Html-linkified text. + * + * @usage + + * + * @example + + + +
    + Snippet: + + + + + + + + + + + + + + + + + + + + + +
    FilterSourceRendered
    linky filter +
    <div ng-bind-html="snippet | linky">
    </div>
    +
    +
    +
    linky target +
    <div ng-bind-html="snippetWithTarget | linky:'_blank'">
    </div>
    +
    +
    +
    no filter
    <div ng-bind="snippet">
    </div>
    + + + it('should linkify the snippet with urls', function() { + expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()). + toBe('Pretty text with some links: http://angularjs.org/, us@somewhere.org, ' + + 'another@somewhere.org, and one more: ftp://127.0.0.1/.'); + expect(element.all(by.css('#linky-filter a')).count()).toEqual(4); + }); + + it('should not linkify snippet without the linky filter', function() { + expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText()). + toBe('Pretty text with some links: http://angularjs.org/, mailto:us@somewhere.org, ' + + 'another@somewhere.org, and one more: ftp://127.0.0.1/.'); + expect(element.all(by.css('#escaped-html a')).count()).toEqual(0); + }); + + it('should update', function() { + element(by.model('snippet')).clear(); + element(by.model('snippet')).sendKeys('new http://link.'); + expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()). + toBe('new http://link.'); + expect(element.all(by.css('#linky-filter a')).count()).toEqual(1); + expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText()) + .toBe('new http://link.'); + }); + + it('should work with the target property', function() { + expect(element(by.id('linky-target')). + element(by.binding("snippetWithTarget | linky:'_blank'")).getText()). + toBe('http://angularjs.org/'); + expect(element(by.css('#linky-target a')).getAttribute('target')).toEqual('_blank'); + }); + + + */ +angular.module('ngSanitize').filter('linky', ['$sanitize', function($sanitize) { + var LINKY_URL_REGEXP = + /((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"”’]/i, + MAILTO_REGEXP = /^mailto:/i; + + return function(text, target) { + if (!text) return text; + var match; + var raw = text; + var html = []; + var url; + var i; + while ((match = raw.match(LINKY_URL_REGEXP))) { + // We can not end in these as they are sometimes found at the end of the sentence + url = match[0]; + // if we did not match ftp/http/www/mailto then assume mailto + if (!match[2] && !match[4]) { + url = (match[3] ? 'http://' : 'mailto:') + url; + } + i = match.index; + addText(raw.substr(0, i)); + addLink(url, match[0].replace(MAILTO_REGEXP, '')); + raw = raw.substring(i + match[0].length); + } + addText(raw); + return $sanitize(html.join('')); + + function addText(text) { + if (!text) { + return; + } + html.push(sanitizeText(text)); + } + + function addLink(url, text) { + html.push(''); + addText(text); + html.push(''); + } + }; +}]); + + +})(window, window.angular); diff --git a/1.1.0/js/angular/angular-sanitize.min.js b/1.1.0/js/angular/angular-sanitize.min.js new file mode 100644 index 00000000..e8c42264 --- /dev/null +++ b/1.1.0/js/angular/angular-sanitize.min.js @@ -0,0 +1,16 @@ +/* + AngularJS v1.4.3 + (c) 2010-2015 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(n,h,p){'use strict';function E(a){var f=[];r(f,h.noop).chars(a);return f.join("")}function g(a,f){var d={},c=a.split(","),b;for(b=0;b=c;d--)f.end&&f.end(e[d]);e.length=c}}"string"!==typeof a&&(a=null===a||"undefined"===typeof a?"":""+a);var b,k,e=[],m=a,l;for(e.last=function(){return e[e.length-1]};a;){l="";k=!0;if(e.last()&&w[e.last()])a=a.replace(new RegExp("([\\W\\w]*)<\\s*\\/\\s*"+e.last()+"[^>]*>","i"),function(a,b){b=b.replace(H,"$1").replace(I,"$1");f.chars&&f.chars(q(b));return""}),c("",e.last());else{if(0===a.indexOf("\x3c!--"))b=a.indexOf("--",4),0<=b&&a.lastIndexOf("--\x3e", +b)===b&&(f.comment&&f.comment(a.substring(4,b)),a=a.substring(b+3),k=!1);else if(x.test(a)){if(b=a.match(x))a=a.replace(b[0],""),k=!1}else if(J.test(a)){if(b=a.match(y))a=a.substring(b[0].length),b[0].replace(y,c),k=!1}else K.test(a)&&((b=a.match(z))?(b[4]&&(a=a.substring(b[0].length),b[0].replace(z,d)),k=!1):(l+="<",a=a.substring(1)));k&&(b=a.indexOf("<"),l+=0>b?a:a.substring(0,b),a=0>b?"":a.substring(b),f.chars&&f.chars(q(l)))}if(a==m)throw L("badparse",a);m=a}c()}function q(a){if(!a)return"";A.innerHTML= +a.replace(//g,">")}function r(a,f){var d=!1,c=h.bind(a,a.push);return{start:function(a,k,e){a=h.lowercase(a);!d&&w[a]&&(d=a);d||!0!==C[a]||(c("<"),c(a),h.forEach(k,function(d,e){var k=h.lowercase(e),g="img"===a&&"src"===k|| +"background"===k;!0!==O[k]||!0===D[k]&&!f(d,g)||(c(" "),c(e),c('="'),c(B(d)),c('"'))}),c(e?"/>":">"))},end:function(a){a=h.lowercase(a);d||!0!==C[a]||(c(""));a==d&&(d=!1)},chars:function(a){d||c(B(a))}}}var L=h.$$minErr("$sanitize"),z=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,y=/^<\/\s*([\w:-]+)[^>]*>/,G=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,K=/^]*?)>/i, +I=/"\u201d\u2019]/i,d=/^mailto:/i;return function(c,b){function k(a){a&&g.push(E(a))}function e(a, +c){g.push("');k(c);g.push("")}if(!c)return c;for(var m,l=c,g=[],n,p;m=l.match(f);)n=m[0],m[2]||m[4]||(n=(m[3]?"http://":"mailto:")+n),p=m.index,k(l.substr(0,p)),e(n,m[0].replace(d,"")),l=l.substring(p+m[0].length);k(l);return a(g.join(""))}}])})(window,window.angular); +//# sourceMappingURL=angular-sanitize.min.js.map diff --git a/1.1.0/js/angular/angular.js b/1.1.0/js/angular/angular.js new file mode 100644 index 00000000..f7442c0b --- /dev/null +++ b/1.1.0/js/angular/angular.js @@ -0,0 +1,28364 @@ +/** + * @license AngularJS v1.4.3 + * (c) 2010-2015 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, document, undefined) {'use strict'; + +/** + * @description + * + * This object provides a utility for producing rich Error messages within + * Angular. It can be called as follows: + * + * var exampleMinErr = minErr('example'); + * throw exampleMinErr('one', 'This {0} is {1}', foo, bar); + * + * The above creates an instance of minErr in the example namespace. The + * resulting error will have a namespaced error code of example.one. The + * resulting error will replace {0} with the value of foo, and {1} with the + * value of bar. The object is not restricted in the number of arguments it can + * take. + * + * If fewer arguments are specified than necessary for interpolation, the extra + * interpolation markers will be preserved in the final string. + * + * Since data will be parsed statically during a build step, some restrictions + * are applied with respect to how minErr instances are created and called. + * Instances should have names of the form namespaceMinErr for a minErr created + * using minErr('namespace') . Error codes, namespaces and template strings + * should all be static strings, not variables or general expressions. + * + * @param {string} module The namespace to use for the new minErr instance. + * @param {function} ErrorConstructor Custom error constructor to be instantiated when returning + * error from returned function, for cases when a particular type of error is useful. + * @returns {function(code:string, template:string, ...templateArgs): Error} minErr instance + */ + +function minErr(module, ErrorConstructor) { + ErrorConstructor = ErrorConstructor || Error; + return function() { + var SKIP_INDEXES = 2; + + var templateArgs = arguments, + code = templateArgs[0], + message = '[' + (module ? module + ':' : '') + code + '] ', + template = templateArgs[1], + paramPrefix, i; + + message += template.replace(/\{\d+\}/g, function(match) { + var index = +match.slice(1, -1), + shiftedIndex = index + SKIP_INDEXES; + + if (shiftedIndex < templateArgs.length) { + return toDebugString(templateArgs[shiftedIndex]); + } + + return match; + }); + + message += '\nhttp://errors.angularjs.org/1.4.3/' + + (module ? module + '/' : '') + code; + + for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') { + message += paramPrefix + 'p' + (i - SKIP_INDEXES) + '=' + + encodeURIComponent(toDebugString(templateArgs[i])); + } + + return new ErrorConstructor(message); + }; +} + +/* We need to tell jshint what variables are being exported */ +/* global angular: true, + msie: true, + jqLite: true, + jQuery: true, + slice: true, + splice: true, + push: true, + toString: true, + ngMinErr: true, + angularModule: true, + uid: true, + REGEX_STRING_REGEXP: true, + VALIDITY_STATE_PROPERTY: true, + + lowercase: true, + uppercase: true, + manualLowercase: true, + manualUppercase: true, + nodeName_: true, + isArrayLike: true, + forEach: true, + forEachSorted: true, + reverseParams: true, + nextUid: true, + setHashKey: true, + extend: true, + toInt: true, + inherit: true, + merge: true, + noop: true, + identity: true, + valueFn: true, + isUndefined: true, + isDefined: true, + isObject: true, + isBlankObject: true, + isString: true, + isNumber: true, + isDate: true, + isArray: true, + isFunction: true, + isRegExp: true, + isWindow: true, + isScope: true, + isFile: true, + isFormData: true, + isBlob: true, + isBoolean: true, + isPromiseLike: true, + trim: true, + escapeForRegexp: true, + isElement: true, + makeMap: true, + includes: true, + arrayRemove: true, + copy: true, + shallowCopy: true, + equals: true, + csp: true, + jq: true, + concat: true, + sliceArgs: true, + bind: true, + toJsonReplacer: true, + toJson: true, + fromJson: true, + convertTimezoneToLocal: true, + timezoneToOffset: true, + startingTag: true, + tryDecodeURIComponent: true, + parseKeyValue: true, + toKeyValue: true, + encodeUriSegment: true, + encodeUriQuery: true, + angularInit: true, + bootstrap: true, + getTestability: true, + snake_case: true, + bindJQuery: true, + assertArg: true, + assertArgFn: true, + assertNotHasOwnProperty: true, + getter: true, + getBlockNodes: true, + hasOwnProperty: true, + createMap: true, + + NODE_TYPE_ELEMENT: true, + NODE_TYPE_ATTRIBUTE: true, + NODE_TYPE_TEXT: true, + NODE_TYPE_COMMENT: true, + NODE_TYPE_DOCUMENT: true, + NODE_TYPE_DOCUMENT_FRAGMENT: true, +*/ + +//////////////////////////////////// + +/** + * @ngdoc module + * @name ng + * @module ng + * @description + * + * # ng (core module) + * The ng module is loaded by default when an AngularJS application is started. The module itself + * contains the essential components for an AngularJS application to function. The table below + * lists a high level breakdown of each of the services/factories, filters, directives and testing + * components available within this core module. + * + *
    + */ + +var REGEX_STRING_REGEXP = /^\/(.+)\/([a-z]*)$/; + +// The name of a form control's ValidityState property. +// This is used so that it's possible for internal tests to create mock ValidityStates. +var VALIDITY_STATE_PROPERTY = 'validity'; + +/** + * @ngdoc function + * @name angular.lowercase + * @module ng + * @kind function + * + * @description Converts the specified string to lowercase. + * @param {string} string String to be converted to lowercase. + * @returns {string} Lowercased string. + */ +var lowercase = function(string) {return isString(string) ? string.toLowerCase() : string;}; +var hasOwnProperty = Object.prototype.hasOwnProperty; + +/** + * @ngdoc function + * @name angular.uppercase + * @module ng + * @kind function + * + * @description Converts the specified string to uppercase. + * @param {string} string String to be converted to uppercase. + * @returns {string} Uppercased string. + */ +var uppercase = function(string) {return isString(string) ? string.toUpperCase() : string;}; + + +var manualLowercase = function(s) { + /* jshint bitwise: false */ + return isString(s) + ? s.replace(/[A-Z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) | 32);}) + : s; +}; +var manualUppercase = function(s) { + /* jshint bitwise: false */ + return isString(s) + ? s.replace(/[a-z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) & ~32);}) + : s; +}; + + +// String#toLowerCase and String#toUpperCase don't produce correct results in browsers with Turkish +// locale, for this reason we need to detect this case and redefine lowercase/uppercase methods +// with correct but slower alternatives. +if ('i' !== 'I'.toLowerCase()) { + lowercase = manualLowercase; + uppercase = manualUppercase; +} + + +var + msie, // holds major version number for IE, or NaN if UA is not IE. + jqLite, // delay binding since jQuery could be loaded after us. + jQuery, // delay binding + slice = [].slice, + splice = [].splice, + push = [].push, + toString = Object.prototype.toString, + getPrototypeOf = Object.getPrototypeOf, + ngMinErr = minErr('ng'), + + /** @name angular */ + angular = window.angular || (window.angular = {}), + angularModule, + uid = 0; + +/** + * documentMode is an IE-only property + * http://msdn.microsoft.com/en-us/library/ie/cc196988(v=vs.85).aspx + */ +msie = document.documentMode; + + +/** + * @private + * @param {*} obj + * @return {boolean} Returns true if `obj` is an array or array-like object (NodeList, Arguments, + * String ...) + */ +function isArrayLike(obj) { + if (obj == null || isWindow(obj)) { + return false; + } + + // Support: iOS 8.2 (not reproducible in simulator) + // "length" in obj used to prevent JIT error (gh-11508) + var length = "length" in Object(obj) && obj.length; + + if (obj.nodeType === NODE_TYPE_ELEMENT && length) { + return true; + } + + return isString(obj) || isArray(obj) || length === 0 || + typeof length === 'number' && length > 0 && (length - 1) in obj; +} + +/** + * @ngdoc function + * @name angular.forEach + * @module ng + * @kind function + * + * @description + * Invokes the `iterator` function once for each item in `obj` collection, which can be either an + * object or an array. The `iterator` function is invoked with `iterator(value, key, obj)`, where `value` + * is the value of an object property or an array element, `key` is the object property key or + * array element index and obj is the `obj` itself. Specifying a `context` for the function is optional. + * + * It is worth noting that `.forEach` does not iterate over inherited properties because it filters + * using the `hasOwnProperty` method. + * + * Unlike ES262's + * [Array.prototype.forEach](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.18), + * Providing 'undefined' or 'null' values for `obj` will not throw a TypeError, but rather just + * return the value provided. + * + ```js + var values = {name: 'misko', gender: 'male'}; + var log = []; + angular.forEach(values, function(value, key) { + this.push(key + ': ' + value); + }, log); + expect(log).toEqual(['name: misko', 'gender: male']); + ``` + * + * @param {Object|Array} obj Object to iterate over. + * @param {Function} iterator Iterator function. + * @param {Object=} context Object to become context (`this`) for the iterator function. + * @returns {Object|Array} Reference to `obj`. + */ + +function forEach(obj, iterator, context) { + var key, length; + if (obj) { + if (isFunction(obj)) { + for (key in obj) { + // Need to check if hasOwnProperty exists, + // as on IE8 the result of querySelectorAll is an object without a hasOwnProperty function + if (key != 'prototype' && key != 'length' && key != 'name' && (!obj.hasOwnProperty || obj.hasOwnProperty(key))) { + iterator.call(context, obj[key], key, obj); + } + } + } else if (isArray(obj) || isArrayLike(obj)) { + var isPrimitive = typeof obj !== 'object'; + for (key = 0, length = obj.length; key < length; key++) { + if (isPrimitive || key in obj) { + iterator.call(context, obj[key], key, obj); + } + } + } else if (obj.forEach && obj.forEach !== forEach) { + obj.forEach(iterator, context, obj); + } else if (isBlankObject(obj)) { + // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty + for (key in obj) { + iterator.call(context, obj[key], key, obj); + } + } else if (typeof obj.hasOwnProperty === 'function') { + // Slow path for objects inheriting Object.prototype, hasOwnProperty check needed + for (key in obj) { + if (obj.hasOwnProperty(key)) { + iterator.call(context, obj[key], key, obj); + } + } + } else { + // Slow path for objects which do not have a method `hasOwnProperty` + for (key in obj) { + if (hasOwnProperty.call(obj, key)) { + iterator.call(context, obj[key], key, obj); + } + } + } + } + return obj; +} + +function forEachSorted(obj, iterator, context) { + var keys = Object.keys(obj).sort(); + for (var i = 0; i < keys.length; i++) { + iterator.call(context, obj[keys[i]], keys[i]); + } + return keys; +} + + +/** + * when using forEach the params are value, key, but it is often useful to have key, value. + * @param {function(string, *)} iteratorFn + * @returns {function(*, string)} + */ +function reverseParams(iteratorFn) { + return function(value, key) { iteratorFn(key, value); }; +} + +/** + * A consistent way of creating unique IDs in angular. + * + * Using simple numbers allows us to generate 28.6 million unique ids per second for 10 years before + * we hit number precision issues in JavaScript. + * + * Math.pow(2,53) / 60 / 60 / 24 / 365 / 10 = 28.6M + * + * @returns {number} an unique alpha-numeric string + */ +function nextUid() { + return ++uid; +} + + +/** + * Set or clear the hashkey for an object. + * @param obj object + * @param h the hashkey (!truthy to delete the hashkey) + */ +function setHashKey(obj, h) { + if (h) { + obj.$$hashKey = h; + } else { + delete obj.$$hashKey; + } +} + + +function baseExtend(dst, objs, deep) { + var h = dst.$$hashKey; + + for (var i = 0, ii = objs.length; i < ii; ++i) { + var obj = objs[i]; + if (!isObject(obj) && !isFunction(obj)) continue; + var keys = Object.keys(obj); + for (var j = 0, jj = keys.length; j < jj; j++) { + var key = keys[j]; + var src = obj[key]; + + if (deep && isObject(src)) { + if (isDate(src)) { + dst[key] = new Date(src.valueOf()); + } else { + if (!isObject(dst[key])) dst[key] = isArray(src) ? [] : {}; + baseExtend(dst[key], [src], true); + } + } else { + dst[key] = src; + } + } + } + + setHashKey(dst, h); + return dst; +} + +/** + * @ngdoc function + * @name angular.extend + * @module ng + * @kind function + * + * @description + * Extends the destination object `dst` by copying own enumerable properties from the `src` object(s) + * to `dst`. You can specify multiple `src` objects. If you want to preserve original objects, you can do so + * by passing an empty object as the target: `var object = angular.extend({}, object1, object2)`. + * + * **Note:** Keep in mind that `angular.extend` does not support recursive merge (deep copy). Use + * {@link angular.merge} for this. + * + * @param {Object} dst Destination object. + * @param {...Object} src Source object(s). + * @returns {Object} Reference to `dst`. + */ +function extend(dst) { + return baseExtend(dst, slice.call(arguments, 1), false); +} + + +/** +* @ngdoc function +* @name angular.merge +* @module ng +* @kind function +* +* @description +* Deeply extends the destination object `dst` by copying own enumerable properties from the `src` object(s) +* to `dst`. You can specify multiple `src` objects. If you want to preserve original objects, you can do so +* by passing an empty object as the target: `var object = angular.merge({}, object1, object2)`. +* +* Unlike {@link angular.extend extend()}, `merge()` recursively descends into object properties of source +* objects, performing a deep copy. +* +* @param {Object} dst Destination object. +* @param {...Object} src Source object(s). +* @returns {Object} Reference to `dst`. +*/ +function merge(dst) { + return baseExtend(dst, slice.call(arguments, 1), true); +} + + + +function toInt(str) { + return parseInt(str, 10); +} + + +function inherit(parent, extra) { + return extend(Object.create(parent), extra); +} + +/** + * @ngdoc function + * @name angular.noop + * @module ng + * @kind function + * + * @description + * A function that performs no operations. This function can be useful when writing code in the + * functional style. + ```js + function foo(callback) { + var result = calculateResult(); + (callback || angular.noop)(result); + } + ``` + */ +function noop() {} +noop.$inject = []; + + +/** + * @ngdoc function + * @name angular.identity + * @module ng + * @kind function + * + * @description + * A function that returns its first argument. This function is useful when writing code in the + * functional style. + * + ```js + function transformer(transformationFn, value) { + return (transformationFn || angular.identity)(value); + }; + ``` + * @param {*} value to be returned. + * @returns {*} the value passed in. + */ +function identity($) {return $;} +identity.$inject = []; + + +function valueFn(value) {return function() {return value;};} + +function hasCustomToString(obj) { + return isFunction(obj.toString) && obj.toString !== Object.prototype.toString; +} + + +/** + * @ngdoc function + * @name angular.isUndefined + * @module ng + * @kind function + * + * @description + * Determines if a reference is undefined. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is undefined. + */ +function isUndefined(value) {return typeof value === 'undefined';} + + +/** + * @ngdoc function + * @name angular.isDefined + * @module ng + * @kind function + * + * @description + * Determines if a reference is defined. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is defined. + */ +function isDefined(value) {return typeof value !== 'undefined';} + + +/** + * @ngdoc function + * @name angular.isObject + * @module ng + * @kind function + * + * @description + * Determines if a reference is an `Object`. Unlike `typeof` in JavaScript, `null`s are not + * considered to be objects. Note that JavaScript arrays are objects. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is an `Object` but not `null`. + */ +function isObject(value) { + // http://jsperf.com/isobject4 + return value !== null && typeof value === 'object'; +} + + +/** + * Determine if a value is an object with a null prototype + * + * @returns {boolean} True if `value` is an `Object` with a null prototype + */ +function isBlankObject(value) { + return value !== null && typeof value === 'object' && !getPrototypeOf(value); +} + + +/** + * @ngdoc function + * @name angular.isString + * @module ng + * @kind function + * + * @description + * Determines if a reference is a `String`. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is a `String`. + */ +function isString(value) {return typeof value === 'string';} + + +/** + * @ngdoc function + * @name angular.isNumber + * @module ng + * @kind function + * + * @description + * Determines if a reference is a `Number`. + * + * This includes the "special" numbers `NaN`, `+Infinity` and `-Infinity`. + * + * If you wish to exclude these then you can use the native + * [`isFinite'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite) + * method. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is a `Number`. + */ +function isNumber(value) {return typeof value === 'number';} + + +/** + * @ngdoc function + * @name angular.isDate + * @module ng + * @kind function + * + * @description + * Determines if a value is a date. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is a `Date`. + */ +function isDate(value) { + return toString.call(value) === '[object Date]'; +} + + +/** + * @ngdoc function + * @name angular.isArray + * @module ng + * @kind function + * + * @description + * Determines if a reference is an `Array`. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is an `Array`. + */ +var isArray = Array.isArray; + +/** + * @ngdoc function + * @name angular.isFunction + * @module ng + * @kind function + * + * @description + * Determines if a reference is a `Function`. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is a `Function`. + */ +function isFunction(value) {return typeof value === 'function';} + + +/** + * Determines if a value is a regular expression object. + * + * @private + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is a `RegExp`. + */ +function isRegExp(value) { + return toString.call(value) === '[object RegExp]'; +} + + +/** + * Checks if `obj` is a window object. + * + * @private + * @param {*} obj Object to check + * @returns {boolean} True if `obj` is a window obj. + */ +function isWindow(obj) { + return obj && obj.window === obj; +} + + +function isScope(obj) { + return obj && obj.$evalAsync && obj.$watch; +} + + +function isFile(obj) { + return toString.call(obj) === '[object File]'; +} + + +function isFormData(obj) { + return toString.call(obj) === '[object FormData]'; +} + + +function isBlob(obj) { + return toString.call(obj) === '[object Blob]'; +} + + +function isBoolean(value) { + return typeof value === 'boolean'; +} + + +function isPromiseLike(obj) { + return obj && isFunction(obj.then); +} + + +var TYPED_ARRAY_REGEXP = /^\[object (Uint8(Clamped)?)|(Uint16)|(Uint32)|(Int8)|(Int16)|(Int32)|(Float(32)|(64))Array\]$/; +function isTypedArray(value) { + return TYPED_ARRAY_REGEXP.test(toString.call(value)); +} + + +var trim = function(value) { + return isString(value) ? value.trim() : value; +}; + +// Copied from: +// http://docs.closure-library.googlecode.com/git/local_closure_goog_string_string.js.source.html#line1021 +// Prereq: s is a string. +var escapeForRegexp = function(s) { + return s.replace(/([-()\[\]{}+?*.$\^|,:#= 0) { + array.splice(index, 1); + } + return index; +} + +/** + * @ngdoc function + * @name angular.copy + * @module ng + * @kind function + * + * @description + * Creates a deep copy of `source`, which should be an object or an array. + * + * * If no destination is supplied, a copy of the object or array is created. + * * If a destination is provided, all of its elements (for arrays) or properties (for objects) + * are deleted and then all elements/properties from the source are copied to it. + * * If `source` is not an object or array (inc. `null` and `undefined`), `source` is returned. + * * If `source` is identical to 'destination' an exception will be thrown. + * + * @param {*} source The source that will be used to make a copy. + * Can be any type, including primitives, `null`, and `undefined`. + * @param {(Object|Array)=} destination Destination into which the source is copied. If + * provided, must be of the same type as `source`. + * @returns {*} The copy or updated `destination`, if `destination` was specified. + * + * @example + + +
    +
    + Name:
    + E-mail:
    + Gender: male + female
    + + +
    +
    form = {{user | json}}
    +
    master = {{master | json}}
    +
    + + +
    +
    + */ +function copy(source, destination, stackSource, stackDest) { + if (isWindow(source) || isScope(source)) { + throw ngMinErr('cpws', + "Can't copy! Making copies of Window or Scope instances is not supported."); + } + if (isTypedArray(destination)) { + throw ngMinErr('cpta', + "Can't copy! TypedArray destination cannot be mutated."); + } + + if (!destination) { + destination = source; + if (isObject(source)) { + var index; + if (stackSource && (index = stackSource.indexOf(source)) !== -1) { + return stackDest[index]; + } + + // TypedArray, Date and RegExp have specific copy functionality and must be + // pushed onto the stack before returning. + // Array and other objects create the base object and recurse to copy child + // objects. The array/object will be pushed onto the stack when recursed. + if (isArray(source)) { + return copy(source, [], stackSource, stackDest); + } else if (isTypedArray(source)) { + destination = new source.constructor(source); + } else if (isDate(source)) { + destination = new Date(source.getTime()); + } else if (isRegExp(source)) { + destination = new RegExp(source.source, source.toString().match(/[^\/]*$/)[0]); + destination.lastIndex = source.lastIndex; + } else { + var emptyObject = Object.create(getPrototypeOf(source)); + return copy(source, emptyObject, stackSource, stackDest); + } + + if (stackDest) { + stackSource.push(source); + stackDest.push(destination); + } + } + } else { + if (source === destination) throw ngMinErr('cpi', + "Can't copy! Source and destination are identical."); + + stackSource = stackSource || []; + stackDest = stackDest || []; + + if (isObject(source)) { + stackSource.push(source); + stackDest.push(destination); + } + + var result, key; + if (isArray(source)) { + destination.length = 0; + for (var i = 0; i < source.length; i++) { + destination.push(copy(source[i], null, stackSource, stackDest)); + } + } else { + var h = destination.$$hashKey; + if (isArray(destination)) { + destination.length = 0; + } else { + forEach(destination, function(value, key) { + delete destination[key]; + }); + } + if (isBlankObject(source)) { + // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty + for (key in source) { + destination[key] = copy(source[key], null, stackSource, stackDest); + } + } else if (source && typeof source.hasOwnProperty === 'function') { + // Slow path, which must rely on hasOwnProperty + for (key in source) { + if (source.hasOwnProperty(key)) { + destination[key] = copy(source[key], null, stackSource, stackDest); + } + } + } else { + // Slowest path --- hasOwnProperty can't be called as a method + for (key in source) { + if (hasOwnProperty.call(source, key)) { + destination[key] = copy(source[key], null, stackSource, stackDest); + } + } + } + setHashKey(destination,h); + } + } + return destination; +} + +/** + * Creates a shallow copy of an object, an array or a primitive. + * + * Assumes that there are no proto properties for objects. + */ +function shallowCopy(src, dst) { + if (isArray(src)) { + dst = dst || []; + + for (var i = 0, ii = src.length; i < ii; i++) { + dst[i] = src[i]; + } + } else if (isObject(src)) { + dst = dst || {}; + + for (var key in src) { + if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) { + dst[key] = src[key]; + } + } + } + + return dst || src; +} + + +/** + * @ngdoc function + * @name angular.equals + * @module ng + * @kind function + * + * @description + * Determines if two objects or two values are equivalent. Supports value types, regular + * expressions, arrays and objects. + * + * Two objects or values are considered equivalent if at least one of the following is true: + * + * * Both objects or values pass `===` comparison. + * * Both objects or values are of the same type and all of their properties are equal by + * comparing them with `angular.equals`. + * * Both values are NaN. (In JavaScript, NaN == NaN => false. But we consider two NaN as equal) + * * Both values represent the same regular expression (In JavaScript, + * /abc/ == /abc/ => false. But we consider two regular expressions as equal when their textual + * representation matches). + * + * During a property comparison, properties of `function` type and properties with names + * that begin with `$` are ignored. + * + * Scope and DOMWindow objects are being compared only by identify (`===`). + * + * @param {*} o1 Object or value to compare. + * @param {*} o2 Object or value to compare. + * @returns {boolean} True if arguments are equal. + */ +function equals(o1, o2) { + if (o1 === o2) return true; + if (o1 === null || o2 === null) return false; + if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN + var t1 = typeof o1, t2 = typeof o2, length, key, keySet; + if (t1 == t2) { + if (t1 == 'object') { + if (isArray(o1)) { + if (!isArray(o2)) return false; + if ((length = o1.length) == o2.length) { + for (key = 0; key < length; key++) { + if (!equals(o1[key], o2[key])) return false; + } + return true; + } + } else if (isDate(o1)) { + if (!isDate(o2)) return false; + return equals(o1.getTime(), o2.getTime()); + } else if (isRegExp(o1)) { + return isRegExp(o2) ? o1.toString() == o2.toString() : false; + } else { + if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) || + isArray(o2) || isDate(o2) || isRegExp(o2)) return false; + keySet = createMap(); + for (key in o1) { + if (key.charAt(0) === '$' || isFunction(o1[key])) continue; + if (!equals(o1[key], o2[key])) return false; + keySet[key] = true; + } + for (key in o2) { + if (!(key in keySet) && + key.charAt(0) !== '$' && + o2[key] !== undefined && + !isFunction(o2[key])) return false; + } + return true; + } + } + } + return false; +} + +var csp = function() { + if (isDefined(csp.isActive_)) return csp.isActive_; + + var active = !!(document.querySelector('[ng-csp]') || + document.querySelector('[data-ng-csp]')); + + if (!active) { + try { + /* jshint -W031, -W054 */ + new Function(''); + /* jshint +W031, +W054 */ + } catch (e) { + active = true; + } + } + + return (csp.isActive_ = active); +}; + +/** + * @ngdoc directive + * @module ng + * @name ngJq + * + * @element ANY + * @param {string=} ngJq the name of the library available under `window` + * to be used for angular.element + * @description + * Use this directive to force the angular.element library. This should be + * used to force either jqLite by leaving ng-jq blank or setting the name of + * the jquery variable under window (eg. jQuery). + * + * Since angular looks for this directive when it is loaded (doesn't wait for the + * DOMContentLoaded event), it must be placed on an element that comes before the script + * which loads angular. Also, only the first instance of `ng-jq` will be used and all + * others ignored. + * + * @example + * This example shows how to force jqLite using the `ngJq` directive to the `html` tag. + ```html + + + ... + ... + + ``` + * @example + * This example shows how to use a jQuery based library of a different name. + * The library name must be available at the top most 'window'. + ```html + + + ... + ... + + ``` + */ +var jq = function() { + if (isDefined(jq.name_)) return jq.name_; + var el; + var i, ii = ngAttrPrefixes.length, prefix, name; + for (i = 0; i < ii; ++i) { + prefix = ngAttrPrefixes[i]; + if (el = document.querySelector('[' + prefix.replace(':', '\\:') + 'jq]')) { + name = el.getAttribute(prefix + 'jq'); + break; + } + } + + return (jq.name_ = name); +}; + +function concat(array1, array2, index) { + return array1.concat(slice.call(array2, index)); +} + +function sliceArgs(args, startIndex) { + return slice.call(args, startIndex || 0); +} + + +/* jshint -W101 */ +/** + * @ngdoc function + * @name angular.bind + * @module ng + * @kind function + * + * @description + * Returns a function which calls function `fn` bound to `self` (`self` becomes the `this` for + * `fn`). You can supply optional `args` that are prebound to the function. This feature is also + * known as [partial application](http://en.wikipedia.org/wiki/Partial_application), as + * distinguished from [function currying](http://en.wikipedia.org/wiki/Currying#Contrast_with_partial_function_application). + * + * @param {Object} self Context which `fn` should be evaluated in. + * @param {function()} fn Function to be bound. + * @param {...*} args Optional arguments to be prebound to the `fn` function call. + * @returns {function()} Function that wraps the `fn` with all the specified bindings. + */ +/* jshint +W101 */ +function bind(self, fn) { + var curryArgs = arguments.length > 2 ? sliceArgs(arguments, 2) : []; + if (isFunction(fn) && !(fn instanceof RegExp)) { + return curryArgs.length + ? function() { + return arguments.length + ? fn.apply(self, concat(curryArgs, arguments, 0)) + : fn.apply(self, curryArgs); + } + : function() { + return arguments.length + ? fn.apply(self, arguments) + : fn.call(self); + }; + } else { + // in IE, native methods are not functions so they cannot be bound (note: they don't need to be) + return fn; + } +} + + +function toJsonReplacer(key, value) { + var val = value; + + if (typeof key === 'string' && key.charAt(0) === '$' && key.charAt(1) === '$') { + val = undefined; + } else if (isWindow(value)) { + val = '$WINDOW'; + } else if (value && document === value) { + val = '$DOCUMENT'; + } else if (isScope(value)) { + val = '$SCOPE'; + } + + return val; +} + + +/** + * @ngdoc function + * @name angular.toJson + * @module ng + * @kind function + * + * @description + * Serializes input into a JSON-formatted string. Properties with leading $$ characters will be + * stripped since angular uses this notation internally. + * + * @param {Object|Array|Date|string|number} obj Input to be serialized into JSON. + * @param {boolean|number} [pretty=2] If set to true, the JSON output will contain newlines and whitespace. + * If set to an integer, the JSON output will contain that many spaces per indentation. + * @returns {string|undefined} JSON-ified string representing `obj`. + */ +function toJson(obj, pretty) { + if (typeof obj === 'undefined') return undefined; + if (!isNumber(pretty)) { + pretty = pretty ? 2 : null; + } + return JSON.stringify(obj, toJsonReplacer, pretty); +} + + +/** + * @ngdoc function + * @name angular.fromJson + * @module ng + * @kind function + * + * @description + * Deserializes a JSON string. + * + * @param {string} json JSON string to deserialize. + * @returns {Object|Array|string|number} Deserialized JSON string. + */ +function fromJson(json) { + return isString(json) + ? JSON.parse(json) + : json; +} + + +function timezoneToOffset(timezone, fallback) { + var requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000; + return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset; +} + + +function addDateMinutes(date, minutes) { + date = new Date(date.getTime()); + date.setMinutes(date.getMinutes() + minutes); + return date; +} + + +function convertTimezoneToLocal(date, timezone, reverse) { + reverse = reverse ? -1 : 1; + var timezoneOffset = timezoneToOffset(timezone, date.getTimezoneOffset()); + return addDateMinutes(date, reverse * (timezoneOffset - date.getTimezoneOffset())); +} + + +/** + * @returns {string} Returns the string representation of the element. + */ +function startingTag(element) { + element = jqLite(element).clone(); + try { + // turns out IE does not let you set .html() on elements which + // are not allowed to have children. So we just ignore it. + element.empty(); + } catch (e) {} + var elemHtml = jqLite('
    ').append(element).html(); + try { + return element[0].nodeType === NODE_TYPE_TEXT ? lowercase(elemHtml) : + elemHtml. + match(/^(<[^>]+>)/)[1]. + replace(/^<([\w\-]+)/, function(match, nodeName) { return '<' + lowercase(nodeName); }); + } catch (e) { + return lowercase(elemHtml); + } + +} + + +///////////////////////////////////////////////// + +/** + * Tries to decode the URI component without throwing an exception. + * + * @private + * @param str value potential URI component to check. + * @returns {boolean} True if `value` can be decoded + * with the decodeURIComponent function. + */ +function tryDecodeURIComponent(value) { + try { + return decodeURIComponent(value); + } catch (e) { + // Ignore any invalid uri component + } +} + + +/** + * Parses an escaped url query string into key-value pairs. + * @returns {Object.} + */ +function parseKeyValue(/**string*/keyValue) { + var obj = {}, key_value, key; + forEach((keyValue || "").split('&'), function(keyValue) { + if (keyValue) { + key_value = keyValue.replace(/\+/g,'%20').split('='); + key = tryDecodeURIComponent(key_value[0]); + if (isDefined(key)) { + var val = isDefined(key_value[1]) ? tryDecodeURIComponent(key_value[1]) : true; + if (!hasOwnProperty.call(obj, key)) { + obj[key] = val; + } else if (isArray(obj[key])) { + obj[key].push(val); + } else { + obj[key] = [obj[key],val]; + } + } + } + }); + return obj; +} + +function toKeyValue(obj) { + var parts = []; + forEach(obj, function(value, key) { + if (isArray(value)) { + forEach(value, function(arrayValue) { + parts.push(encodeUriQuery(key, true) + + (arrayValue === true ? '' : '=' + encodeUriQuery(arrayValue, true))); + }); + } else { + parts.push(encodeUriQuery(key, true) + + (value === true ? '' : '=' + encodeUriQuery(value, true))); + } + }); + return parts.length ? parts.join('&') : ''; +} + + +/** + * We need our custom method because encodeURIComponent is too aggressive and doesn't follow + * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path + * segments: + * segment = *pchar + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * pct-encoded = "%" HEXDIG HEXDIG + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ +function encodeUriSegment(val) { + return encodeUriQuery(val, true). + replace(/%26/gi, '&'). + replace(/%3D/gi, '='). + replace(/%2B/gi, '+'); +} + + +/** + * This method is intended for encoding *key* or *value* parts of query component. We need a custom + * method because encodeURIComponent is too aggressive and encodes stuff that doesn't have to be + * encoded per http://tools.ietf.org/html/rfc3986: + * query = *( pchar / "/" / "?" ) + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * pct-encoded = "%" HEXDIG HEXDIG + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ +function encodeUriQuery(val, pctEncodeSpaces) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%3B/gi, ';'). + replace(/%20/g, (pctEncodeSpaces ? '%20' : '+')); +} + +var ngAttrPrefixes = ['ng-', 'data-ng-', 'ng:', 'x-ng-']; + +function getNgAttribute(element, ngAttr) { + var attr, i, ii = ngAttrPrefixes.length; + for (i = 0; i < ii; ++i) { + attr = ngAttrPrefixes[i] + ngAttr; + if (isString(attr = element.getAttribute(attr))) { + return attr; + } + } + return null; +} + +/** + * @ngdoc directive + * @name ngApp + * @module ng + * + * @element ANY + * @param {angular.Module} ngApp an optional application + * {@link angular.module module} name to load. + * @param {boolean=} ngStrictDi if this attribute is present on the app element, the injector will be + * created in "strict-di" mode. This means that the application will fail to invoke functions which + * do not use explicit function annotation (and are thus unsuitable for minification), as described + * in {@link guide/di the Dependency Injection guide}, and useful debugging info will assist in + * tracking down the root of these bugs. + * + * @description + * + * Use this directive to **auto-bootstrap** an AngularJS application. The `ngApp` directive + * designates the **root element** of the application and is typically placed near the root element + * of the page - e.g. on the `` or `` tags. + * + * Only one AngularJS application can be auto-bootstrapped per HTML document. The first `ngApp` + * found in the document will be used to define the root element to auto-bootstrap as an + * application. To run multiple applications in an HTML document you must manually bootstrap them using + * {@link angular.bootstrap} instead. AngularJS applications cannot be nested within each other. + * + * You can specify an **AngularJS module** to be used as the root module for the application. This + * module will be loaded into the {@link auto.$injector} when the application is bootstrapped. It + * should contain the application code needed or have dependencies on other modules that will + * contain the code. See {@link angular.module} for more information. + * + * In the example below if the `ngApp` directive were not placed on the `html` element then the + * document would not be compiled, the `AppController` would not be instantiated and the `{{ a+b }}` + * would not be resolved to `3`. + * + * `ngApp` is the easiest, and most common way to bootstrap an application. + * + + +
    + I can add: {{a}} + {{b}} = {{ a+b }} +
    +
    + + angular.module('ngAppDemo', []).controller('ngAppDemoController', function($scope) { + $scope.a = 1; + $scope.b = 2; + }); + +
    + * + * Using `ngStrictDi`, you would see something like this: + * + + +
    +
    + I can add: {{a}} + {{b}} = {{ a+b }} + +

    This renders because the controller does not fail to + instantiate, by using explicit annotation style (see + script.js for details) +

    +
    + +
    + Name:
    + Hello, {{name}}! + +

    This renders because the controller does not fail to + instantiate, by using explicit annotation style + (see script.js for details) +

    +
    + +
    + I can add: {{a}} + {{b}} = {{ a+b }} + +

    The controller could not be instantiated, due to relying + on automatic function annotations (which are disabled in + strict mode). As such, the content of this section is not + interpolated, and there should be an error in your web console. +

    +
    +
    +
    + + angular.module('ngAppStrictDemo', []) + // BadController will fail to instantiate, due to relying on automatic function annotation, + // rather than an explicit annotation + .controller('BadController', function($scope) { + $scope.a = 1; + $scope.b = 2; + }) + // Unlike BadController, GoodController1 and GoodController2 will not fail to be instantiated, + // due to using explicit annotations using the array style and $inject property, respectively. + .controller('GoodController1', ['$scope', function($scope) { + $scope.a = 1; + $scope.b = 2; + }]) + .controller('GoodController2', GoodController2); + function GoodController2($scope) { + $scope.name = "World"; + } + GoodController2.$inject = ['$scope']; + + + div[ng-controller] { + margin-bottom: 1em; + -webkit-border-radius: 4px; + border-radius: 4px; + border: 1px solid; + padding: .5em; + } + div[ng-controller^=Good] { + border-color: #d6e9c6; + background-color: #dff0d8; + color: #3c763d; + } + div[ng-controller^=Bad] { + border-color: #ebccd1; + background-color: #f2dede; + color: #a94442; + margin-bottom: 0; + } + +
    + */ +function angularInit(element, bootstrap) { + var appElement, + module, + config = {}; + + // The element `element` has priority over any other element + forEach(ngAttrPrefixes, function(prefix) { + var name = prefix + 'app'; + + if (!appElement && element.hasAttribute && element.hasAttribute(name)) { + appElement = element; + module = element.getAttribute(name); + } + }); + forEach(ngAttrPrefixes, function(prefix) { + var name = prefix + 'app'; + var candidate; + + if (!appElement && (candidate = element.querySelector('[' + name.replace(':', '\\:') + ']'))) { + appElement = candidate; + module = candidate.getAttribute(name); + } + }); + if (appElement) { + config.strictDi = getNgAttribute(appElement, "strict-di") !== null; + bootstrap(appElement, module ? [module] : [], config); + } +} + +/** + * @ngdoc function + * @name angular.bootstrap + * @module ng + * @description + * Use this function to manually start up angular application. + * + * See: {@link guide/bootstrap Bootstrap} + * + * Note that Protractor based end-to-end tests cannot use this function to bootstrap manually. + * They must use {@link ng.directive:ngApp ngApp}. + * + * Angular will detect if it has been loaded into the browser more than once and only allow the + * first loaded script to be bootstrapped and will report a warning to the browser console for + * each of the subsequent scripts. This prevents strange results in applications, where otherwise + * multiple instances of Angular try to work on the DOM. + * + * ```html + * + * + * + *
    + * {{greeting}} + *
    + * + * + * + * + * + * ``` + * + * @param {DOMElement} element DOM element which is the root of angular application. + * @param {Array=} modules an array of modules to load into the application. + * Each item in the array should be the name of a predefined module or a (DI annotated) + * function that will be invoked by the injector as a `config` block. + * See: {@link angular.module modules} + * @param {Object=} config an object for defining configuration options for the application. The + * following keys are supported: + * + * * `strictDi` - disable automatic function annotation for the application. This is meant to + * assist in finding bugs which break minified code. Defaults to `false`. + * + * @returns {auto.$injector} Returns the newly created injector for this app. + */ +function bootstrap(element, modules, config) { + if (!isObject(config)) config = {}; + var defaultConfig = { + strictDi: false + }; + config = extend(defaultConfig, config); + var doBootstrap = function() { + element = jqLite(element); + + if (element.injector()) { + var tag = (element[0] === document) ? 'document' : startingTag(element); + //Encode angle brackets to prevent input from being sanitized to empty string #8683 + throw ngMinErr( + 'btstrpd', + "App Already Bootstrapped with this Element '{0}'", + tag.replace(//,'>')); + } + + modules = modules || []; + modules.unshift(['$provide', function($provide) { + $provide.value('$rootElement', element); + }]); + + if (config.debugInfoEnabled) { + // Pushing so that this overrides `debugInfoEnabled` setting defined in user's `modules`. + modules.push(['$compileProvider', function($compileProvider) { + $compileProvider.debugInfoEnabled(true); + }]); + } + + modules.unshift('ng'); + var injector = createInjector(modules, config.strictDi); + injector.invoke(['$rootScope', '$rootElement', '$compile', '$injector', + function bootstrapApply(scope, element, compile, injector) { + scope.$apply(function() { + element.data('$injector', injector); + compile(element)(scope); + }); + }] + ); + return injector; + }; + + var NG_ENABLE_DEBUG_INFO = /^NG_ENABLE_DEBUG_INFO!/; + var NG_DEFER_BOOTSTRAP = /^NG_DEFER_BOOTSTRAP!/; + + if (window && NG_ENABLE_DEBUG_INFO.test(window.name)) { + config.debugInfoEnabled = true; + window.name = window.name.replace(NG_ENABLE_DEBUG_INFO, ''); + } + + if (window && !NG_DEFER_BOOTSTRAP.test(window.name)) { + return doBootstrap(); + } + + window.name = window.name.replace(NG_DEFER_BOOTSTRAP, ''); + angular.resumeBootstrap = function(extraModules) { + forEach(extraModules, function(module) { + modules.push(module); + }); + return doBootstrap(); + }; + + if (isFunction(angular.resumeDeferredBootstrap)) { + angular.resumeDeferredBootstrap(); + } +} + +/** + * @ngdoc function + * @name angular.reloadWithDebugInfo + * @module ng + * @description + * Use this function to reload the current application with debug information turned on. + * This takes precedence over a call to `$compileProvider.debugInfoEnabled(false)`. + * + * See {@link ng.$compileProvider#debugInfoEnabled} for more. + */ +function reloadWithDebugInfo() { + window.name = 'NG_ENABLE_DEBUG_INFO!' + window.name; + window.location.reload(); +} + +/** + * @name angular.getTestability + * @module ng + * @description + * Get the testability service for the instance of Angular on the given + * element. + * @param {DOMElement} element DOM element which is the root of angular application. + */ +function getTestability(rootElement) { + var injector = angular.element(rootElement).injector(); + if (!injector) { + throw ngMinErr('test', + 'no injector found for element argument to getTestability'); + } + return injector.get('$$testability'); +} + +var SNAKE_CASE_REGEXP = /[A-Z]/g; +function snake_case(name, separator) { + separator = separator || '_'; + return name.replace(SNAKE_CASE_REGEXP, function(letter, pos) { + return (pos ? separator : '') + letter.toLowerCase(); + }); +} + +var bindJQueryFired = false; +var skipDestroyOnNextJQueryCleanData; +function bindJQuery() { + var originalCleanData; + + if (bindJQueryFired) { + return; + } + + // bind to jQuery if present; + var jqName = jq(); + jQuery = window.jQuery; // use default jQuery. + if (isDefined(jqName)) { // `ngJq` present + jQuery = jqName === null ? undefined : window[jqName]; // if empty; use jqLite. if not empty, use jQuery specified by `ngJq`. + } + + // Use jQuery if it exists with proper functionality, otherwise default to us. + // Angular 1.2+ requires jQuery 1.7+ for on()/off() support. + // Angular 1.3+ technically requires at least jQuery 2.1+ but it may work with older + // versions. It will not work for sure with jQuery <1.7, though. + if (jQuery && jQuery.fn.on) { + jqLite = jQuery; + extend(jQuery.fn, { + scope: JQLitePrototype.scope, + isolateScope: JQLitePrototype.isolateScope, + controller: JQLitePrototype.controller, + injector: JQLitePrototype.injector, + inheritedData: JQLitePrototype.inheritedData + }); + + // All nodes removed from the DOM via various jQuery APIs like .remove() + // are passed through jQuery.cleanData. Monkey-patch this method to fire + // the $destroy event on all removed nodes. + originalCleanData = jQuery.cleanData; + jQuery.cleanData = function(elems) { + var events; + if (!skipDestroyOnNextJQueryCleanData) { + for (var i = 0, elem; (elem = elems[i]) != null; i++) { + events = jQuery._data(elem, "events"); + if (events && events.$destroy) { + jQuery(elem).triggerHandler('$destroy'); + } + } + } else { + skipDestroyOnNextJQueryCleanData = false; + } + originalCleanData(elems); + }; + } else { + jqLite = JQLite; + } + + angular.element = jqLite; + + // Prevent double-proxying. + bindJQueryFired = true; +} + +/** + * throw error if the argument is falsy. + */ +function assertArg(arg, name, reason) { + if (!arg) { + throw ngMinErr('areq', "Argument '{0}' is {1}", (name || '?'), (reason || "required")); + } + return arg; +} + +function assertArgFn(arg, name, acceptArrayAnnotation) { + if (acceptArrayAnnotation && isArray(arg)) { + arg = arg[arg.length - 1]; + } + + assertArg(isFunction(arg), name, 'not a function, got ' + + (arg && typeof arg === 'object' ? arg.constructor.name || 'Object' : typeof arg)); + return arg; +} + +/** + * throw error if the name given is hasOwnProperty + * @param {String} name the name to test + * @param {String} context the context in which the name is used, such as module or directive + */ +function assertNotHasOwnProperty(name, context) { + if (name === 'hasOwnProperty') { + throw ngMinErr('badname', "hasOwnProperty is not a valid {0} name", context); + } +} + +/** + * Return the value accessible from the object by path. Any undefined traversals are ignored + * @param {Object} obj starting object + * @param {String} path path to traverse + * @param {boolean} [bindFnToScope=true] + * @returns {Object} value as accessible by path + */ +//TODO(misko): this function needs to be removed +function getter(obj, path, bindFnToScope) { + if (!path) return obj; + var keys = path.split('.'); + var key; + var lastInstance = obj; + var len = keys.length; + + for (var i = 0; i < len; i++) { + key = keys[i]; + if (obj) { + obj = (lastInstance = obj)[key]; + } + } + if (!bindFnToScope && isFunction(obj)) { + return bind(lastInstance, obj); + } + return obj; +} + +/** + * Return the DOM siblings between the first and last node in the given array. + * @param {Array} array like object + * @returns {jqLite} jqLite collection containing the nodes + */ +function getBlockNodes(nodes) { + // TODO(perf): just check if all items in `nodes` are siblings and if they are return the original + // collection, otherwise update the original collection. + var node = nodes[0]; + var endNode = nodes[nodes.length - 1]; + var blockNodes = [node]; + + do { + node = node.nextSibling; + if (!node) break; + blockNodes.push(node); + } while (node !== endNode); + + return jqLite(blockNodes); +} + + +/** + * Creates a new object without a prototype. This object is useful for lookup without having to + * guard against prototypically inherited properties via hasOwnProperty. + * + * Related micro-benchmarks: + * - http://jsperf.com/object-create2 + * - http://jsperf.com/proto-map-lookup/2 + * - http://jsperf.com/for-in-vs-object-keys2 + * + * @returns {Object} + */ +function createMap() { + return Object.create(null); +} + +var NODE_TYPE_ELEMENT = 1; +var NODE_TYPE_ATTRIBUTE = 2; +var NODE_TYPE_TEXT = 3; +var NODE_TYPE_COMMENT = 8; +var NODE_TYPE_DOCUMENT = 9; +var NODE_TYPE_DOCUMENT_FRAGMENT = 11; + +/** + * @ngdoc type + * @name angular.Module + * @module ng + * @description + * + * Interface for configuring angular {@link angular.module modules}. + */ + +function setupModuleLoader(window) { + + var $injectorMinErr = minErr('$injector'); + var ngMinErr = minErr('ng'); + + function ensure(obj, name, factory) { + return obj[name] || (obj[name] = factory()); + } + + var angular = ensure(window, 'angular', Object); + + // We need to expose `angular.$$minErr` to modules such as `ngResource` that reference it during bootstrap + angular.$$minErr = angular.$$minErr || minErr; + + return ensure(angular, 'module', function() { + /** @type {Object.} */ + var modules = {}; + + /** + * @ngdoc function + * @name angular.module + * @module ng + * @description + * + * The `angular.module` is a global place for creating, registering and retrieving Angular + * modules. + * All modules (angular core or 3rd party) that should be available to an application must be + * registered using this mechanism. + * + * When passed two or more arguments, a new module is created. If passed only one argument, an + * existing module (the name passed as the first argument to `module`) is retrieved. + * + * + * # Module + * + * A module is a collection of services, directives, controllers, filters, and configuration information. + * `angular.module` is used to configure the {@link auto.$injector $injector}. + * + * ```js + * // Create a new module + * var myModule = angular.module('myModule', []); + * + * // register a new service + * myModule.value('appName', 'MyCoolApp'); + * + * // configure existing services inside initialization blocks. + * myModule.config(['$locationProvider', function($locationProvider) { + * // Configure existing providers + * $locationProvider.hashPrefix('!'); + * }]); + * ``` + * + * Then you can create an injector and load your modules like this: + * + * ```js + * var injector = angular.injector(['ng', 'myModule']) + * ``` + * + * However it's more likely that you'll just use + * {@link ng.directive:ngApp ngApp} or + * {@link angular.bootstrap} to simplify this process for you. + * + * @param {!string} name The name of the module to create or retrieve. + * @param {!Array.=} requires If specified then new module is being created. If + * unspecified then the module is being retrieved for further configuration. + * @param {Function=} configFn Optional configuration function for the module. Same as + * {@link angular.Module#config Module#config()}. + * @returns {module} new module with the {@link angular.Module} api. + */ + return function module(name, requires, configFn) { + var assertNotHasOwnProperty = function(name, context) { + if (name === 'hasOwnProperty') { + throw ngMinErr('badname', 'hasOwnProperty is not a valid {0} name', context); + } + }; + + assertNotHasOwnProperty(name, 'module'); + if (requires && modules.hasOwnProperty(name)) { + modules[name] = null; + } + return ensure(modules, name, function() { + if (!requires) { + throw $injectorMinErr('nomod', "Module '{0}' is not available! You either misspelled " + + "the module name or forgot to load it. If registering a module ensure that you " + + "specify the dependencies as the second argument.", name); + } + + /** @type {!Array.>} */ + var invokeQueue = []; + + /** @type {!Array.} */ + var configBlocks = []; + + /** @type {!Array.} */ + var runBlocks = []; + + var config = invokeLater('$injector', 'invoke', 'push', configBlocks); + + /** @type {angular.Module} */ + var moduleInstance = { + // Private state + _invokeQueue: invokeQueue, + _configBlocks: configBlocks, + _runBlocks: runBlocks, + + /** + * @ngdoc property + * @name angular.Module#requires + * @module ng + * + * @description + * Holds the list of modules which the injector will load before the current module is + * loaded. + */ + requires: requires, + + /** + * @ngdoc property + * @name angular.Module#name + * @module ng + * + * @description + * Name of the module. + */ + name: name, + + + /** + * @ngdoc method + * @name angular.Module#provider + * @module ng + * @param {string} name service name + * @param {Function} providerType Construction function for creating new instance of the + * service. + * @description + * See {@link auto.$provide#provider $provide.provider()}. + */ + provider: invokeLaterAndSetModuleName('$provide', 'provider'), + + /** + * @ngdoc method + * @name angular.Module#factory + * @module ng + * @param {string} name service name + * @param {Function} providerFunction Function for creating new instance of the service. + * @description + * See {@link auto.$provide#factory $provide.factory()}. + */ + factory: invokeLaterAndSetModuleName('$provide', 'factory'), + + /** + * @ngdoc method + * @name angular.Module#service + * @module ng + * @param {string} name service name + * @param {Function} constructor A constructor function that will be instantiated. + * @description + * See {@link auto.$provide#service $provide.service()}. + */ + service: invokeLaterAndSetModuleName('$provide', 'service'), + + /** + * @ngdoc method + * @name angular.Module#value + * @module ng + * @param {string} name service name + * @param {*} object Service instance object. + * @description + * See {@link auto.$provide#value $provide.value()}. + */ + value: invokeLater('$provide', 'value'), + + /** + * @ngdoc method + * @name angular.Module#constant + * @module ng + * @param {string} name constant name + * @param {*} object Constant value. + * @description + * Because the constant are fixed, they get applied before other provide methods. + * See {@link auto.$provide#constant $provide.constant()}. + */ + constant: invokeLater('$provide', 'constant', 'unshift'), + + /** + * @ngdoc method + * @name angular.Module#decorator + * @module ng + * @param {string} The name of the service to decorate. + * @param {Function} This function will be invoked when the service needs to be + * instantiated and should return the decorated service instance. + * @description + * See {@link auto.$provide#decorator $provide.decorator()}. + */ + decorator: invokeLaterAndSetModuleName('$provide', 'decorator'), + + /** + * @ngdoc method + * @name angular.Module#animation + * @module ng + * @param {string} name animation name + * @param {Function} animationFactory Factory function for creating new instance of an + * animation. + * @description + * + * **NOTE**: animations take effect only if the **ngAnimate** module is loaded. + * + * + * Defines an animation hook that can be later used with + * {@link $animate $animate} service and directives that use this service. + * + * ```js + * module.animation('.animation-name', function($inject1, $inject2) { + * return { + * eventName : function(element, done) { + * //code to run the animation + * //once complete, then run done() + * return function cancellationFunction(element) { + * //code to cancel the animation + * } + * } + * } + * }) + * ``` + * + * See {@link ng.$animateProvider#register $animateProvider.register()} and + * {@link ngAnimate ngAnimate module} for more information. + */ + animation: invokeLaterAndSetModuleName('$animateProvider', 'register'), + + /** + * @ngdoc method + * @name angular.Module#filter + * @module ng + * @param {string} name Filter name - this must be a valid angular expression identifier + * @param {Function} filterFactory Factory function for creating new instance of filter. + * @description + * See {@link ng.$filterProvider#register $filterProvider.register()}. + * + *
    + * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`. + * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace + * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores + * (`myapp_subsection_filterx`). + *
    + */ + filter: invokeLaterAndSetModuleName('$filterProvider', 'register'), + + /** + * @ngdoc method + * @name angular.Module#controller + * @module ng + * @param {string|Object} name Controller name, or an object map of controllers where the + * keys are the names and the values are the constructors. + * @param {Function} constructor Controller constructor function. + * @description + * See {@link ng.$controllerProvider#register $controllerProvider.register()}. + */ + controller: invokeLaterAndSetModuleName('$controllerProvider', 'register'), + + /** + * @ngdoc method + * @name angular.Module#directive + * @module ng + * @param {string|Object} name Directive name, or an object map of directives where the + * keys are the names and the values are the factories. + * @param {Function} directiveFactory Factory function for creating new instance of + * directives. + * @description + * See {@link ng.$compileProvider#directive $compileProvider.directive()}. + */ + directive: invokeLaterAndSetModuleName('$compileProvider', 'directive'), + + /** + * @ngdoc method + * @name angular.Module#config + * @module ng + * @param {Function} configFn Execute this function on module load. Useful for service + * configuration. + * @description + * Use this method to register work which needs to be performed on module loading. + * For more about how to configure services, see + * {@link providers#provider-recipe Provider Recipe}. + */ + config: config, + + /** + * @ngdoc method + * @name angular.Module#run + * @module ng + * @param {Function} initializationFn Execute this function after injector creation. + * Useful for application initialization. + * @description + * Use this method to register work which should be performed when the injector is done + * loading all modules. + */ + run: function(block) { + runBlocks.push(block); + return this; + } + }; + + if (configFn) { + config(configFn); + } + + return moduleInstance; + + /** + * @param {string} provider + * @param {string} method + * @param {String=} insertMethod + * @returns {angular.Module} + */ + function invokeLater(provider, method, insertMethod, queue) { + if (!queue) queue = invokeQueue; + return function() { + queue[insertMethod || 'push']([provider, method, arguments]); + return moduleInstance; + }; + } + + /** + * @param {string} provider + * @param {string} method + * @returns {angular.Module} + */ + function invokeLaterAndSetModuleName(provider, method) { + return function(recipeName, factoryFunction) { + if (factoryFunction && isFunction(factoryFunction)) factoryFunction.$$moduleName = name; + invokeQueue.push([provider, method, arguments]); + return moduleInstance; + }; + } + }); + }; + }); + +} + +/* global: toDebugString: true */ + +function serializeObject(obj) { + var seen = []; + + return JSON.stringify(obj, function(key, val) { + val = toJsonReplacer(key, val); + if (isObject(val)) { + + if (seen.indexOf(val) >= 0) return '<>'; + + seen.push(val); + } + return val; + }); +} + +function toDebugString(obj) { + if (typeof obj === 'function') { + return obj.toString().replace(/ \{[\s\S]*$/, ''); + } else if (typeof obj === 'undefined') { + return 'undefined'; + } else if (typeof obj !== 'string') { + return serializeObject(obj); + } + return obj; +} + +/* global angularModule: true, + version: true, + + $LocaleProvider, + $CompileProvider, + + htmlAnchorDirective, + inputDirective, + inputDirective, + formDirective, + scriptDirective, + selectDirective, + styleDirective, + optionDirective, + ngBindDirective, + ngBindHtmlDirective, + ngBindTemplateDirective, + ngClassDirective, + ngClassEvenDirective, + ngClassOddDirective, + ngCspDirective, + ngCloakDirective, + ngControllerDirective, + ngFormDirective, + ngHideDirective, + ngIfDirective, + ngIncludeDirective, + ngIncludeFillContentDirective, + ngInitDirective, + ngNonBindableDirective, + ngPluralizeDirective, + ngRepeatDirective, + ngShowDirective, + ngStyleDirective, + ngSwitchDirective, + ngSwitchWhenDirective, + ngSwitchDefaultDirective, + ngOptionsDirective, + ngTranscludeDirective, + ngModelDirective, + ngListDirective, + ngChangeDirective, + patternDirective, + patternDirective, + requiredDirective, + requiredDirective, + minlengthDirective, + minlengthDirective, + maxlengthDirective, + maxlengthDirective, + ngValueDirective, + ngModelOptionsDirective, + ngAttributeAliasDirectives, + ngEventDirectives, + + $AnchorScrollProvider, + $AnimateProvider, + $$CoreAnimateQueueProvider, + $$CoreAnimateRunnerProvider, + $BrowserProvider, + $CacheFactoryProvider, + $ControllerProvider, + $DocumentProvider, + $ExceptionHandlerProvider, + $FilterProvider, + $InterpolateProvider, + $IntervalProvider, + $$HashMapProvider, + $HttpProvider, + $HttpParamSerializerProvider, + $HttpParamSerializerJQLikeProvider, + $HttpBackendProvider, + $LocationProvider, + $LogProvider, + $ParseProvider, + $RootScopeProvider, + $QProvider, + $$QProvider, + $$SanitizeUriProvider, + $SceProvider, + $SceDelegateProvider, + $SnifferProvider, + $TemplateCacheProvider, + $TemplateRequestProvider, + $$TestabilityProvider, + $TimeoutProvider, + $$RAFProvider, + $WindowProvider, + $$jqLiteProvider, + $$CookieReaderProvider +*/ + + +/** + * @ngdoc object + * @name angular.version + * @module ng + * @description + * An object that contains information about the current AngularJS version. This object has the + * following properties: + * + * - `full` – `{string}` – Full version string, such as "0.9.18". + * - `major` – `{number}` – Major version number, such as "0". + * - `minor` – `{number}` – Minor version number, such as "9". + * - `dot` – `{number}` – Dot version number, such as "18". + * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat". + */ +var version = { + full: '1.4.3', // all of these placeholder strings will be replaced by grunt's + major: 1, // package task + minor: 4, + dot: 3, + codeName: 'foam-acceleration' +}; + + +function publishExternalAPI(angular) { + extend(angular, { + 'bootstrap': bootstrap, + 'copy': copy, + 'extend': extend, + 'merge': merge, + 'equals': equals, + 'element': jqLite, + 'forEach': forEach, + 'injector': createInjector, + 'noop': noop, + 'bind': bind, + 'toJson': toJson, + 'fromJson': fromJson, + 'identity': identity, + 'isUndefined': isUndefined, + 'isDefined': isDefined, + 'isString': isString, + 'isFunction': isFunction, + 'isObject': isObject, + 'isNumber': isNumber, + 'isElement': isElement, + 'isArray': isArray, + 'version': version, + 'isDate': isDate, + 'lowercase': lowercase, + 'uppercase': uppercase, + 'callbacks': {counter: 0}, + 'getTestability': getTestability, + '$$minErr': minErr, + '$$csp': csp, + 'reloadWithDebugInfo': reloadWithDebugInfo + }); + + angularModule = setupModuleLoader(window); + try { + angularModule('ngLocale'); + } catch (e) { + angularModule('ngLocale', []).provider('$locale', $LocaleProvider); + } + + angularModule('ng', ['ngLocale'], ['$provide', + function ngModule($provide) { + // $$sanitizeUriProvider needs to be before $compileProvider as it is used by it. + $provide.provider({ + $$sanitizeUri: $$SanitizeUriProvider + }); + $provide.provider('$compile', $CompileProvider). + directive({ + a: htmlAnchorDirective, + input: inputDirective, + textarea: inputDirective, + form: formDirective, + script: scriptDirective, + select: selectDirective, + style: styleDirective, + option: optionDirective, + ngBind: ngBindDirective, + ngBindHtml: ngBindHtmlDirective, + ngBindTemplate: ngBindTemplateDirective, + ngClass: ngClassDirective, + ngClassEven: ngClassEvenDirective, + ngClassOdd: ngClassOddDirective, + ngCloak: ngCloakDirective, + ngController: ngControllerDirective, + ngForm: ngFormDirective, + ngHide: ngHideDirective, + ngIf: ngIfDirective, + ngInclude: ngIncludeDirective, + ngInit: ngInitDirective, + ngNonBindable: ngNonBindableDirective, + ngPluralize: ngPluralizeDirective, + ngRepeat: ngRepeatDirective, + ngShow: ngShowDirective, + ngStyle: ngStyleDirective, + ngSwitch: ngSwitchDirective, + ngSwitchWhen: ngSwitchWhenDirective, + ngSwitchDefault: ngSwitchDefaultDirective, + ngOptions: ngOptionsDirective, + ngTransclude: ngTranscludeDirective, + ngModel: ngModelDirective, + ngList: ngListDirective, + ngChange: ngChangeDirective, + pattern: patternDirective, + ngPattern: patternDirective, + required: requiredDirective, + ngRequired: requiredDirective, + minlength: minlengthDirective, + ngMinlength: minlengthDirective, + maxlength: maxlengthDirective, + ngMaxlength: maxlengthDirective, + ngValue: ngValueDirective, + ngModelOptions: ngModelOptionsDirective + }). + directive({ + ngInclude: ngIncludeFillContentDirective + }). + directive(ngAttributeAliasDirectives). + directive(ngEventDirectives); + $provide.provider({ + $anchorScroll: $AnchorScrollProvider, + $animate: $AnimateProvider, + $$animateQueue: $$CoreAnimateQueueProvider, + $$AnimateRunner: $$CoreAnimateRunnerProvider, + $browser: $BrowserProvider, + $cacheFactory: $CacheFactoryProvider, + $controller: $ControllerProvider, + $document: $DocumentProvider, + $exceptionHandler: $ExceptionHandlerProvider, + $filter: $FilterProvider, + $interpolate: $InterpolateProvider, + $interval: $IntervalProvider, + $http: $HttpProvider, + $httpParamSerializer: $HttpParamSerializerProvider, + $httpParamSerializerJQLike: $HttpParamSerializerJQLikeProvider, + $httpBackend: $HttpBackendProvider, + $location: $LocationProvider, + $log: $LogProvider, + $parse: $ParseProvider, + $rootScope: $RootScopeProvider, + $q: $QProvider, + $$q: $$QProvider, + $sce: $SceProvider, + $sceDelegate: $SceDelegateProvider, + $sniffer: $SnifferProvider, + $templateCache: $TemplateCacheProvider, + $templateRequest: $TemplateRequestProvider, + $$testability: $$TestabilityProvider, + $timeout: $TimeoutProvider, + $window: $WindowProvider, + $$rAF: $$RAFProvider, + $$jqLite: $$jqLiteProvider, + $$HashMap: $$HashMapProvider, + $$cookieReader: $$CookieReaderProvider + }); + } + ]); +} + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* global JQLitePrototype: true, + addEventListenerFn: true, + removeEventListenerFn: true, + BOOLEAN_ATTR: true, + ALIASED_ATTR: true, +*/ + +////////////////////////////////// +//JQLite +////////////////////////////////// + +/** + * @ngdoc function + * @name angular.element + * @module ng + * @kind function + * + * @description + * Wraps a raw DOM element or HTML string as a [jQuery](http://jquery.com) element. + * + * If jQuery is available, `angular.element` is an alias for the + * [jQuery](http://api.jquery.com/jQuery/) function. If jQuery is not available, `angular.element` + * delegates to Angular's built-in subset of jQuery, called "jQuery lite" or "jqLite." + * + *
    jqLite is a tiny, API-compatible subset of jQuery that allows + * Angular to manipulate the DOM in a cross-browser compatible way. **jqLite** implements only the most + * commonly needed functionality with the goal of having a very small footprint.
    + * + * To use `jQuery`, simply ensure it is loaded before the `angular.js` file. + * + *
    **Note:** all element references in Angular are always wrapped with jQuery or + * jqLite; they are never raw DOM references.
    + * + * ## Angular's jqLite + * jqLite provides only the following jQuery methods: + * + * - [`addClass()`](http://api.jquery.com/addClass/) + * - [`after()`](http://api.jquery.com/after/) + * - [`append()`](http://api.jquery.com/append/) + * - [`attr()`](http://api.jquery.com/attr/) - Does not support functions as parameters + * - [`bind()`](http://api.jquery.com/bind/) - Does not support namespaces, selectors or eventData + * - [`children()`](http://api.jquery.com/children/) - Does not support selectors + * - [`clone()`](http://api.jquery.com/clone/) + * - [`contents()`](http://api.jquery.com/contents/) + * - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()`. As a setter, does not convert numbers to strings or append 'px'. + * - [`data()`](http://api.jquery.com/data/) + * - [`detach()`](http://api.jquery.com/detach/) + * - [`empty()`](http://api.jquery.com/empty/) + * - [`eq()`](http://api.jquery.com/eq/) + * - [`find()`](http://api.jquery.com/find/) - Limited to lookups by tag name + * - [`hasClass()`](http://api.jquery.com/hasClass/) + * - [`html()`](http://api.jquery.com/html/) + * - [`next()`](http://api.jquery.com/next/) - Does not support selectors + * - [`on()`](http://api.jquery.com/on/) - Does not support namespaces, selectors or eventData + * - [`off()`](http://api.jquery.com/off/) - Does not support namespaces or selectors + * - [`one()`](http://api.jquery.com/one/) - Does not support namespaces or selectors + * - [`parent()`](http://api.jquery.com/parent/) - Does not support selectors + * - [`prepend()`](http://api.jquery.com/prepend/) + * - [`prop()`](http://api.jquery.com/prop/) + * - [`ready()`](http://api.jquery.com/ready/) + * - [`remove()`](http://api.jquery.com/remove/) + * - [`removeAttr()`](http://api.jquery.com/removeAttr/) + * - [`removeClass()`](http://api.jquery.com/removeClass/) + * - [`removeData()`](http://api.jquery.com/removeData/) + * - [`replaceWith()`](http://api.jquery.com/replaceWith/) + * - [`text()`](http://api.jquery.com/text/) + * - [`toggleClass()`](http://api.jquery.com/toggleClass/) + * - [`triggerHandler()`](http://api.jquery.com/triggerHandler/) - Passes a dummy event object to handlers. + * - [`unbind()`](http://api.jquery.com/unbind/) - Does not support namespaces + * - [`val()`](http://api.jquery.com/val/) + * - [`wrap()`](http://api.jquery.com/wrap/) + * + * ## jQuery/jqLite Extras + * Angular also provides the following additional methods and events to both jQuery and jqLite: + * + * ### Events + * - `$destroy` - AngularJS intercepts all jqLite/jQuery's DOM destruction apis and fires this event + * on all DOM nodes being removed. This can be used to clean up any 3rd party bindings to the DOM + * element before it is removed. + * + * ### Methods + * - `controller(name)` - retrieves the controller of the current element or its parent. By default + * retrieves controller associated with the `ngController` directive. If `name` is provided as + * camelCase directive name, then the controller for this directive will be retrieved (e.g. + * `'ngModel'`). + * - `injector()` - retrieves the injector of the current element or its parent. + * - `scope()` - retrieves the {@link ng.$rootScope.Scope scope} of the current + * element or its parent. Requires {@link guide/production#disabling-debug-data Debug Data} to + * be enabled. + * - `isolateScope()` - retrieves an isolate {@link ng.$rootScope.Scope scope} if one is attached directly to the + * current element. This getter should be used only on elements that contain a directive which starts a new isolate + * scope. Calling `scope()` on this element always returns the original non-isolate scope. + * Requires {@link guide/production#disabling-debug-data Debug Data} to be enabled. + * - `inheritedData()` - same as `data()`, but walks up the DOM until a value is found or the top + * parent element is reached. + * + * @param {string|DOMElement} element HTML string or DOMElement to be wrapped into jQuery. + * @returns {Object} jQuery object. + */ + +JQLite.expando = 'ng339'; + +var jqCache = JQLite.cache = {}, + jqId = 1, + addEventListenerFn = function(element, type, fn) { + element.addEventListener(type, fn, false); + }, + removeEventListenerFn = function(element, type, fn) { + element.removeEventListener(type, fn, false); + }; + +/* + * !!! This is an undocumented "private" function !!! + */ +JQLite._data = function(node) { + //jQuery always returns an object on cache miss + return this.cache[node[this.expando]] || {}; +}; + +function jqNextId() { return ++jqId; } + + +var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g; +var MOZ_HACK_REGEXP = /^moz([A-Z])/; +var MOUSE_EVENT_MAP= { mouseleave: "mouseout", mouseenter: "mouseover"}; +var jqLiteMinErr = minErr('jqLite'); + +/** + * Converts snake_case to camelCase. + * Also there is special case for Moz prefix starting with upper case letter. + * @param name Name to normalize + */ +function camelCase(name) { + return name. + replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) { + return offset ? letter.toUpperCase() : letter; + }). + replace(MOZ_HACK_REGEXP, 'Moz$1'); +} + +var SINGLE_TAG_REGEXP = /^<(\w+)\s*\/?>(?:<\/\1>|)$/; +var HTML_REGEXP = /<|&#?\w+;/; +var TAG_NAME_REGEXP = /<([\w:]+)/; +var XHTML_TAG_REGEXP = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi; + +var wrapMap = { + 'option': [1, ''], + + 'thead': [1, '', '
    '], + 'col': [2, '', '
    '], + 'tr': [2, '', '
    '], + 'td': [3, '', '
    '], + '_default': [0, "", ""] +}; + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function jqLiteIsTextNode(html) { + return !HTML_REGEXP.test(html); +} + +function jqLiteAcceptsData(node) { + // The window object can accept data but has no nodeType + // Otherwise we are only interested in elements (1) and documents (9) + var nodeType = node.nodeType; + return nodeType === NODE_TYPE_ELEMENT || !nodeType || nodeType === NODE_TYPE_DOCUMENT; +} + +function jqLiteHasData(node) { + for (var key in jqCache[node.ng339]) { + return true; + } + return false; +} + +function jqLiteBuildFragment(html, context) { + var tmp, tag, wrap, + fragment = context.createDocumentFragment(), + nodes = [], i; + + if (jqLiteIsTextNode(html)) { + // Convert non-html into a text node + nodes.push(context.createTextNode(html)); + } else { + // Convert html into DOM nodes + tmp = tmp || fragment.appendChild(context.createElement("div")); + tag = (TAG_NAME_REGEXP.exec(html) || ["", ""])[1].toLowerCase(); + wrap = wrapMap[tag] || wrapMap._default; + tmp.innerHTML = wrap[1] + html.replace(XHTML_TAG_REGEXP, "<$1>") + wrap[2]; + + // Descend through wrappers to the right content + i = wrap[0]; + while (i--) { + tmp = tmp.lastChild; + } + + nodes = concat(nodes, tmp.childNodes); + + tmp = fragment.firstChild; + tmp.textContent = ""; + } + + // Remove wrapper from fragment + fragment.textContent = ""; + fragment.innerHTML = ""; // Clear inner HTML + forEach(nodes, function(node) { + fragment.appendChild(node); + }); + + return fragment; +} + +function jqLiteParseHTML(html, context) { + context = context || document; + var parsed; + + if ((parsed = SINGLE_TAG_REGEXP.exec(html))) { + return [context.createElement(parsed[1])]; + } + + if ((parsed = jqLiteBuildFragment(html, context))) { + return parsed.childNodes; + } + + return []; +} + +///////////////////////////////////////////// +function JQLite(element) { + if (element instanceof JQLite) { + return element; + } + + var argIsString; + + if (isString(element)) { + element = trim(element); + argIsString = true; + } + if (!(this instanceof JQLite)) { + if (argIsString && element.charAt(0) != '<') { + throw jqLiteMinErr('nosel', 'Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element'); + } + return new JQLite(element); + } + + if (argIsString) { + jqLiteAddNodes(this, jqLiteParseHTML(element)); + } else { + jqLiteAddNodes(this, element); + } +} + +function jqLiteClone(element) { + return element.cloneNode(true); +} + +function jqLiteDealoc(element, onlyDescendants) { + if (!onlyDescendants) jqLiteRemoveData(element); + + if (element.querySelectorAll) { + var descendants = element.querySelectorAll('*'); + for (var i = 0, l = descendants.length; i < l; i++) { + jqLiteRemoveData(descendants[i]); + } + } +} + +function jqLiteOff(element, type, fn, unsupported) { + if (isDefined(unsupported)) throw jqLiteMinErr('offargs', 'jqLite#off() does not support the `selector` argument'); + + var expandoStore = jqLiteExpandoStore(element); + var events = expandoStore && expandoStore.events; + var handle = expandoStore && expandoStore.handle; + + if (!handle) return; //no listeners registered + + if (!type) { + for (type in events) { + if (type !== '$destroy') { + removeEventListenerFn(element, type, handle); + } + delete events[type]; + } + } else { + forEach(type.split(' '), function(type) { + if (isDefined(fn)) { + var listenerFns = events[type]; + arrayRemove(listenerFns || [], fn); + if (listenerFns && listenerFns.length > 0) { + return; + } + } + + removeEventListenerFn(element, type, handle); + delete events[type]; + }); + } +} + +function jqLiteRemoveData(element, name) { + var expandoId = element.ng339; + var expandoStore = expandoId && jqCache[expandoId]; + + if (expandoStore) { + if (name) { + delete expandoStore.data[name]; + return; + } + + if (expandoStore.handle) { + if (expandoStore.events.$destroy) { + expandoStore.handle({}, '$destroy'); + } + jqLiteOff(element); + } + delete jqCache[expandoId]; + element.ng339 = undefined; // don't delete DOM expandos. IE and Chrome don't like it + } +} + + +function jqLiteExpandoStore(element, createIfNecessary) { + var expandoId = element.ng339, + expandoStore = expandoId && jqCache[expandoId]; + + if (createIfNecessary && !expandoStore) { + element.ng339 = expandoId = jqNextId(); + expandoStore = jqCache[expandoId] = {events: {}, data: {}, handle: undefined}; + } + + return expandoStore; +} + + +function jqLiteData(element, key, value) { + if (jqLiteAcceptsData(element)) { + + var isSimpleSetter = isDefined(value); + var isSimpleGetter = !isSimpleSetter && key && !isObject(key); + var massGetter = !key; + var expandoStore = jqLiteExpandoStore(element, !isSimpleGetter); + var data = expandoStore && expandoStore.data; + + if (isSimpleSetter) { // data('key', value) + data[key] = value; + } else { + if (massGetter) { // data() + return data; + } else { + if (isSimpleGetter) { // data('key') + // don't force creation of expandoStore if it doesn't exist yet + return data && data[key]; + } else { // mass-setter: data({key1: val1, key2: val2}) + extend(data, key); + } + } + } + } +} + +function jqLiteHasClass(element, selector) { + if (!element.getAttribute) return false; + return ((" " + (element.getAttribute('class') || '') + " ").replace(/[\n\t]/g, " "). + indexOf(" " + selector + " ") > -1); +} + +function jqLiteRemoveClass(element, cssClasses) { + if (cssClasses && element.setAttribute) { + forEach(cssClasses.split(' '), function(cssClass) { + element.setAttribute('class', trim( + (" " + (element.getAttribute('class') || '') + " ") + .replace(/[\n\t]/g, " ") + .replace(" " + trim(cssClass) + " ", " ")) + ); + }); + } +} + +function jqLiteAddClass(element, cssClasses) { + if (cssClasses && element.setAttribute) { + var existingClasses = (' ' + (element.getAttribute('class') || '') + ' ') + .replace(/[\n\t]/g, " "); + + forEach(cssClasses.split(' '), function(cssClass) { + cssClass = trim(cssClass); + if (existingClasses.indexOf(' ' + cssClass + ' ') === -1) { + existingClasses += cssClass + ' '; + } + }); + + element.setAttribute('class', trim(existingClasses)); + } +} + + +function jqLiteAddNodes(root, elements) { + // THIS CODE IS VERY HOT. Don't make changes without benchmarking. + + if (elements) { + + // if a Node (the most common case) + if (elements.nodeType) { + root[root.length++] = elements; + } else { + var length = elements.length; + + // if an Array or NodeList and not a Window + if (typeof length === 'number' && elements.window !== elements) { + if (length) { + for (var i = 0; i < length; i++) { + root[root.length++] = elements[i]; + } + } + } else { + root[root.length++] = elements; + } + } + } +} + + +function jqLiteController(element, name) { + return jqLiteInheritedData(element, '$' + (name || 'ngController') + 'Controller'); +} + +function jqLiteInheritedData(element, name, value) { + // if element is the document object work with the html element instead + // this makes $(document).scope() possible + if (element.nodeType == NODE_TYPE_DOCUMENT) { + element = element.documentElement; + } + var names = isArray(name) ? name : [name]; + + while (element) { + for (var i = 0, ii = names.length; i < ii; i++) { + if ((value = jqLite.data(element, names[i])) !== undefined) return value; + } + + // If dealing with a document fragment node with a host element, and no parent, use the host + // element as the parent. This enables directives within a Shadow DOM or polyfilled Shadow DOM + // to lookup parent controllers. + element = element.parentNode || (element.nodeType === NODE_TYPE_DOCUMENT_FRAGMENT && element.host); + } +} + +function jqLiteEmpty(element) { + jqLiteDealoc(element, true); + while (element.firstChild) { + element.removeChild(element.firstChild); + } +} + +function jqLiteRemove(element, keepData) { + if (!keepData) jqLiteDealoc(element); + var parent = element.parentNode; + if (parent) parent.removeChild(element); +} + + +function jqLiteDocumentLoaded(action, win) { + win = win || window; + if (win.document.readyState === 'complete') { + // Force the action to be run async for consistent behaviour + // from the action's point of view + // i.e. it will definitely not be in a $apply + win.setTimeout(action); + } else { + // No need to unbind this handler as load is only ever called once + jqLite(win).on('load', action); + } +} + +////////////////////////////////////////// +// Functions which are declared directly. +////////////////////////////////////////// +var JQLitePrototype = JQLite.prototype = { + ready: function(fn) { + var fired = false; + + function trigger() { + if (fired) return; + fired = true; + fn(); + } + + // check if document is already loaded + if (document.readyState === 'complete') { + setTimeout(trigger); + } else { + this.on('DOMContentLoaded', trigger); // works for modern browsers and IE9 + // we can not use jqLite since we are not done loading and jQuery could be loaded later. + // jshint -W064 + JQLite(window).on('load', trigger); // fallback to window.onload for others + // jshint +W064 + } + }, + toString: function() { + var value = []; + forEach(this, function(e) { value.push('' + e);}); + return '[' + value.join(', ') + ']'; + }, + + eq: function(index) { + return (index >= 0) ? jqLite(this[index]) : jqLite(this[this.length + index]); + }, + + length: 0, + push: push, + sort: [].sort, + splice: [].splice +}; + +////////////////////////////////////////// +// Functions iterating getter/setters. +// these functions return self on setter and +// value on get. +////////////////////////////////////////// +var BOOLEAN_ATTR = {}; +forEach('multiple,selected,checked,disabled,readOnly,required,open'.split(','), function(value) { + BOOLEAN_ATTR[lowercase(value)] = value; +}); +var BOOLEAN_ELEMENTS = {}; +forEach('input,select,option,textarea,button,form,details'.split(','), function(value) { + BOOLEAN_ELEMENTS[value] = true; +}); +var ALIASED_ATTR = { + 'ngMinlength': 'minlength', + 'ngMaxlength': 'maxlength', + 'ngMin': 'min', + 'ngMax': 'max', + 'ngPattern': 'pattern' +}; + +function getBooleanAttrName(element, name) { + // check dom last since we will most likely fail on name + var booleanAttr = BOOLEAN_ATTR[name.toLowerCase()]; + + // booleanAttr is here twice to minimize DOM access + return booleanAttr && BOOLEAN_ELEMENTS[nodeName_(element)] && booleanAttr; +} + +function getAliasedAttrName(element, name) { + var nodeName = element.nodeName; + return (nodeName === 'INPUT' || nodeName === 'TEXTAREA') && ALIASED_ATTR[name]; +} + +forEach({ + data: jqLiteData, + removeData: jqLiteRemoveData, + hasData: jqLiteHasData +}, function(fn, name) { + JQLite[name] = fn; +}); + +forEach({ + data: jqLiteData, + inheritedData: jqLiteInheritedData, + + scope: function(element) { + // Can't use jqLiteData here directly so we stay compatible with jQuery! + return jqLite.data(element, '$scope') || jqLiteInheritedData(element.parentNode || element, ['$isolateScope', '$scope']); + }, + + isolateScope: function(element) { + // Can't use jqLiteData here directly so we stay compatible with jQuery! + return jqLite.data(element, '$isolateScope') || jqLite.data(element, '$isolateScopeNoTemplate'); + }, + + controller: jqLiteController, + + injector: function(element) { + return jqLiteInheritedData(element, '$injector'); + }, + + removeAttr: function(element, name) { + element.removeAttribute(name); + }, + + hasClass: jqLiteHasClass, + + css: function(element, name, value) { + name = camelCase(name); + + if (isDefined(value)) { + element.style[name] = value; + } else { + return element.style[name]; + } + }, + + attr: function(element, name, value) { + var nodeType = element.nodeType; + if (nodeType === NODE_TYPE_TEXT || nodeType === NODE_TYPE_ATTRIBUTE || nodeType === NODE_TYPE_COMMENT) { + return; + } + var lowercasedName = lowercase(name); + if (BOOLEAN_ATTR[lowercasedName]) { + if (isDefined(value)) { + if (!!value) { + element[name] = true; + element.setAttribute(name, lowercasedName); + } else { + element[name] = false; + element.removeAttribute(lowercasedName); + } + } else { + return (element[name] || + (element.attributes.getNamedItem(name) || noop).specified) + ? lowercasedName + : undefined; + } + } else if (isDefined(value)) { + element.setAttribute(name, value); + } else if (element.getAttribute) { + // the extra argument "2" is to get the right thing for a.href in IE, see jQuery code + // some elements (e.g. Document) don't have get attribute, so return undefined + var ret = element.getAttribute(name, 2); + // normalize non-existing attributes to undefined (as jQuery) + return ret === null ? undefined : ret; + } + }, + + prop: function(element, name, value) { + if (isDefined(value)) { + element[name] = value; + } else { + return element[name]; + } + }, + + text: (function() { + getText.$dv = ''; + return getText; + + function getText(element, value) { + if (isUndefined(value)) { + var nodeType = element.nodeType; + return (nodeType === NODE_TYPE_ELEMENT || nodeType === NODE_TYPE_TEXT) ? element.textContent : ''; + } + element.textContent = value; + } + })(), + + val: function(element, value) { + if (isUndefined(value)) { + if (element.multiple && nodeName_(element) === 'select') { + var result = []; + forEach(element.options, function(option) { + if (option.selected) { + result.push(option.value || option.text); + } + }); + return result.length === 0 ? null : result; + } + return element.value; + } + element.value = value; + }, + + html: function(element, value) { + if (isUndefined(value)) { + return element.innerHTML; + } + jqLiteDealoc(element, true); + element.innerHTML = value; + }, + + empty: jqLiteEmpty +}, function(fn, name) { + /** + * Properties: writes return selection, reads return first value + */ + JQLite.prototype[name] = function(arg1, arg2) { + var i, key; + var nodeCount = this.length; + + // jqLiteHasClass has only two arguments, but is a getter-only fn, so we need to special-case it + // in a way that survives minification. + // jqLiteEmpty takes no arguments but is a setter. + if (fn !== jqLiteEmpty && + (((fn.length == 2 && (fn !== jqLiteHasClass && fn !== jqLiteController)) ? arg1 : arg2) === undefined)) { + if (isObject(arg1)) { + + // we are a write, but the object properties are the key/values + for (i = 0; i < nodeCount; i++) { + if (fn === jqLiteData) { + // data() takes the whole object in jQuery + fn(this[i], arg1); + } else { + for (key in arg1) { + fn(this[i], key, arg1[key]); + } + } + } + // return self for chaining + return this; + } else { + // we are a read, so read the first child. + // TODO: do we still need this? + var value = fn.$dv; + // Only if we have $dv do we iterate over all, otherwise it is just the first element. + var jj = (value === undefined) ? Math.min(nodeCount, 1) : nodeCount; + for (var j = 0; j < jj; j++) { + var nodeValue = fn(this[j], arg1, arg2); + value = value ? value + nodeValue : nodeValue; + } + return value; + } + } else { + // we are a write, so apply to all children + for (i = 0; i < nodeCount; i++) { + fn(this[i], arg1, arg2); + } + // return self for chaining + return this; + } + }; +}); + +function createEventHandler(element, events) { + var eventHandler = function(event, type) { + // jQuery specific api + event.isDefaultPrevented = function() { + return event.defaultPrevented; + }; + + var eventFns = events[type || event.type]; + var eventFnsLength = eventFns ? eventFns.length : 0; + + if (!eventFnsLength) return; + + if (isUndefined(event.immediatePropagationStopped)) { + var originalStopImmediatePropagation = event.stopImmediatePropagation; + event.stopImmediatePropagation = function() { + event.immediatePropagationStopped = true; + + if (event.stopPropagation) { + event.stopPropagation(); + } + + if (originalStopImmediatePropagation) { + originalStopImmediatePropagation.call(event); + } + }; + } + + event.isImmediatePropagationStopped = function() { + return event.immediatePropagationStopped === true; + }; + + // Copy event handlers in case event handlers array is modified during execution. + if ((eventFnsLength > 1)) { + eventFns = shallowCopy(eventFns); + } + + for (var i = 0; i < eventFnsLength; i++) { + if (!event.isImmediatePropagationStopped()) { + eventFns[i].call(element, event); + } + } + }; + + // TODO: this is a hack for angularMocks/clearDataCache that makes it possible to deregister all + // events on `element` + eventHandler.elem = element; + return eventHandler; +} + +////////////////////////////////////////// +// Functions iterating traversal. +// These functions chain results into a single +// selector. +////////////////////////////////////////// +forEach({ + removeData: jqLiteRemoveData, + + on: function jqLiteOn(element, type, fn, unsupported) { + if (isDefined(unsupported)) throw jqLiteMinErr('onargs', 'jqLite#on() does not support the `selector` or `eventData` parameters'); + + // Do not add event handlers to non-elements because they will not be cleaned up. + if (!jqLiteAcceptsData(element)) { + return; + } + + var expandoStore = jqLiteExpandoStore(element, true); + var events = expandoStore.events; + var handle = expandoStore.handle; + + if (!handle) { + handle = expandoStore.handle = createEventHandler(element, events); + } + + // http://jsperf.com/string-indexof-vs-split + var types = type.indexOf(' ') >= 0 ? type.split(' ') : [type]; + var i = types.length; + + while (i--) { + type = types[i]; + var eventFns = events[type]; + + if (!eventFns) { + events[type] = []; + + if (type === 'mouseenter' || type === 'mouseleave') { + // Refer to jQuery's implementation of mouseenter & mouseleave + // Read about mouseenter and mouseleave: + // http://www.quirksmode.org/js/events_mouse.html#link8 + + jqLiteOn(element, MOUSE_EVENT_MAP[type], function(event) { + var target = this, related = event.relatedTarget; + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if (!related || (related !== target && !target.contains(related))) { + handle(event, type); + } + }); + + } else { + if (type !== '$destroy') { + addEventListenerFn(element, type, handle); + } + } + eventFns = events[type]; + } + eventFns.push(fn); + } + }, + + off: jqLiteOff, + + one: function(element, type, fn) { + element = jqLite(element); + + //add the listener twice so that when it is called + //you can remove the original function and still be + //able to call element.off(ev, fn) normally + element.on(type, function onFn() { + element.off(type, fn); + element.off(type, onFn); + }); + element.on(type, fn); + }, + + replaceWith: function(element, replaceNode) { + var index, parent = element.parentNode; + jqLiteDealoc(element); + forEach(new JQLite(replaceNode), function(node) { + if (index) { + parent.insertBefore(node, index.nextSibling); + } else { + parent.replaceChild(node, element); + } + index = node; + }); + }, + + children: function(element) { + var children = []; + forEach(element.childNodes, function(element) { + if (element.nodeType === NODE_TYPE_ELEMENT) { + children.push(element); + } + }); + return children; + }, + + contents: function(element) { + return element.contentDocument || element.childNodes || []; + }, + + append: function(element, node) { + var nodeType = element.nodeType; + if (nodeType !== NODE_TYPE_ELEMENT && nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT) return; + + node = new JQLite(node); + + for (var i = 0, ii = node.length; i < ii; i++) { + var child = node[i]; + element.appendChild(child); + } + }, + + prepend: function(element, node) { + if (element.nodeType === NODE_TYPE_ELEMENT) { + var index = element.firstChild; + forEach(new JQLite(node), function(child) { + element.insertBefore(child, index); + }); + } + }, + + wrap: function(element, wrapNode) { + wrapNode = jqLite(wrapNode).eq(0).clone()[0]; + var parent = element.parentNode; + if (parent) { + parent.replaceChild(wrapNode, element); + } + wrapNode.appendChild(element); + }, + + remove: jqLiteRemove, + + detach: function(element) { + jqLiteRemove(element, true); + }, + + after: function(element, newElement) { + var index = element, parent = element.parentNode; + newElement = new JQLite(newElement); + + for (var i = 0, ii = newElement.length; i < ii; i++) { + var node = newElement[i]; + parent.insertBefore(node, index.nextSibling); + index = node; + } + }, + + addClass: jqLiteAddClass, + removeClass: jqLiteRemoveClass, + + toggleClass: function(element, selector, condition) { + if (selector) { + forEach(selector.split(' '), function(className) { + var classCondition = condition; + if (isUndefined(classCondition)) { + classCondition = !jqLiteHasClass(element, className); + } + (classCondition ? jqLiteAddClass : jqLiteRemoveClass)(element, className); + }); + } + }, + + parent: function(element) { + var parent = element.parentNode; + return parent && parent.nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT ? parent : null; + }, + + next: function(element) { + return element.nextElementSibling; + }, + + find: function(element, selector) { + if (element.getElementsByTagName) { + return element.getElementsByTagName(selector); + } else { + return []; + } + }, + + clone: jqLiteClone, + + triggerHandler: function(element, event, extraParameters) { + + var dummyEvent, eventFnsCopy, handlerArgs; + var eventName = event.type || event; + var expandoStore = jqLiteExpandoStore(element); + var events = expandoStore && expandoStore.events; + var eventFns = events && events[eventName]; + + if (eventFns) { + // Create a dummy event to pass to the handlers + dummyEvent = { + preventDefault: function() { this.defaultPrevented = true; }, + isDefaultPrevented: function() { return this.defaultPrevented === true; }, + stopImmediatePropagation: function() { this.immediatePropagationStopped = true; }, + isImmediatePropagationStopped: function() { return this.immediatePropagationStopped === true; }, + stopPropagation: noop, + type: eventName, + target: element + }; + + // If a custom event was provided then extend our dummy event with it + if (event.type) { + dummyEvent = extend(dummyEvent, event); + } + + // Copy event handlers in case event handlers array is modified during execution. + eventFnsCopy = shallowCopy(eventFns); + handlerArgs = extraParameters ? [dummyEvent].concat(extraParameters) : [dummyEvent]; + + forEach(eventFnsCopy, function(fn) { + if (!dummyEvent.isImmediatePropagationStopped()) { + fn.apply(element, handlerArgs); + } + }); + } + } +}, function(fn, name) { + /** + * chaining functions + */ + JQLite.prototype[name] = function(arg1, arg2, arg3) { + var value; + + for (var i = 0, ii = this.length; i < ii; i++) { + if (isUndefined(value)) { + value = fn(this[i], arg1, arg2, arg3); + if (isDefined(value)) { + // any function which returns a value needs to be wrapped + value = jqLite(value); + } + } else { + jqLiteAddNodes(value, fn(this[i], arg1, arg2, arg3)); + } + } + return isDefined(value) ? value : this; + }; + + // bind legacy bind/unbind to on/off + JQLite.prototype.bind = JQLite.prototype.on; + JQLite.prototype.unbind = JQLite.prototype.off; +}); + + +// Provider for private $$jqLite service +function $$jqLiteProvider() { + this.$get = function $$jqLite() { + return extend(JQLite, { + hasClass: function(node, classes) { + if (node.attr) node = node[0]; + return jqLiteHasClass(node, classes); + }, + addClass: function(node, classes) { + if (node.attr) node = node[0]; + return jqLiteAddClass(node, classes); + }, + removeClass: function(node, classes) { + if (node.attr) node = node[0]; + return jqLiteRemoveClass(node, classes); + } + }); + }; +} + +/** + * Computes a hash of an 'obj'. + * Hash of a: + * string is string + * number is number as string + * object is either result of calling $$hashKey function on the object or uniquely generated id, + * that is also assigned to the $$hashKey property of the object. + * + * @param obj + * @returns {string} hash string such that the same input will have the same hash string. + * The resulting string key is in 'type:hashKey' format. + */ +function hashKey(obj, nextUidFn) { + var key = obj && obj.$$hashKey; + + if (key) { + if (typeof key === 'function') { + key = obj.$$hashKey(); + } + return key; + } + + var objType = typeof obj; + if (objType == 'function' || (objType == 'object' && obj !== null)) { + key = obj.$$hashKey = objType + ':' + (nextUidFn || nextUid)(); + } else { + key = objType + ':' + obj; + } + + return key; +} + +/** + * HashMap which can use objects as keys + */ +function HashMap(array, isolatedUid) { + if (isolatedUid) { + var uid = 0; + this.nextUid = function() { + return ++uid; + }; + } + forEach(array, this.put, this); +} +HashMap.prototype = { + /** + * Store key value pair + * @param key key to store can be any type + * @param value value to store can be any type + */ + put: function(key, value) { + this[hashKey(key, this.nextUid)] = value; + }, + + /** + * @param key + * @returns {Object} the value for the key + */ + get: function(key) { + return this[hashKey(key, this.nextUid)]; + }, + + /** + * Remove the key/value pair + * @param key + */ + remove: function(key) { + var value = this[key = hashKey(key, this.nextUid)]; + delete this[key]; + return value; + } +}; + +var $$HashMapProvider = [function() { + this.$get = [function() { + return HashMap; + }]; +}]; + +/** + * @ngdoc function + * @module ng + * @name angular.injector + * @kind function + * + * @description + * Creates an injector object that can be used for retrieving services as well as for + * dependency injection (see {@link guide/di dependency injection}). + * + * @param {Array.} modules A list of module functions or their aliases. See + * {@link angular.module}. The `ng` module must be explicitly added. + * @param {boolean=} [strictDi=false] Whether the injector should be in strict mode, which + * disallows argument name annotation inference. + * @returns {injector} Injector object. See {@link auto.$injector $injector}. + * + * @example + * Typical usage + * ```js + * // create an injector + * var $injector = angular.injector(['ng']); + * + * // use the injector to kick off your application + * // use the type inference to auto inject arguments, or use implicit injection + * $injector.invoke(function($rootScope, $compile, $document) { + * $compile($document)($rootScope); + * $rootScope.$digest(); + * }); + * ``` + * + * Sometimes you want to get access to the injector of a currently running Angular app + * from outside Angular. Perhaps, you want to inject and compile some markup after the + * application has been bootstrapped. You can do this using the extra `injector()` added + * to JQuery/jqLite elements. See {@link angular.element}. + * + * *This is fairly rare but could be the case if a third party library is injecting the + * markup.* + * + * In the following example a new block of HTML containing a `ng-controller` + * directive is added to the end of the document body by JQuery. We then compile and link + * it into the current AngularJS scope. + * + * ```js + * var $div = $('
    {{content.label}}
    '); + * $(document.body).append($div); + * + * angular.element(document).injector().invoke(function($compile) { + * var scope = angular.element($div).scope(); + * $compile($div)(scope); + * }); + * ``` + */ + + +/** + * @ngdoc module + * @name auto + * @description + * + * Implicit module which gets automatically added to each {@link auto.$injector $injector}. + */ + +var FN_ARGS = /^function\s*[^\(]*\(\s*([^\)]*)\)/m; +var FN_ARG_SPLIT = /,/; +var FN_ARG = /^\s*(_?)(\S+?)\1\s*$/; +var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg; +var $injectorMinErr = minErr('$injector'); + +function anonFn(fn) { + // For anonymous functions, showing at the very least the function signature can help in + // debugging. + var fnText = fn.toString().replace(STRIP_COMMENTS, ''), + args = fnText.match(FN_ARGS); + if (args) { + return 'function(' + (args[1] || '').replace(/[\s\r\n]+/, ' ') + ')'; + } + return 'fn'; +} + +function annotate(fn, strictDi, name) { + var $inject, + fnText, + argDecl, + last; + + if (typeof fn === 'function') { + if (!($inject = fn.$inject)) { + $inject = []; + if (fn.length) { + if (strictDi) { + if (!isString(name) || !name) { + name = fn.name || anonFn(fn); + } + throw $injectorMinErr('strictdi', + '{0} is not using explicit annotation and cannot be invoked in strict mode', name); + } + fnText = fn.toString().replace(STRIP_COMMENTS, ''); + argDecl = fnText.match(FN_ARGS); + forEach(argDecl[1].split(FN_ARG_SPLIT), function(arg) { + arg.replace(FN_ARG, function(all, underscore, name) { + $inject.push(name); + }); + }); + } + fn.$inject = $inject; + } + } else if (isArray(fn)) { + last = fn.length - 1; + assertArgFn(fn[last], 'fn'); + $inject = fn.slice(0, last); + } else { + assertArgFn(fn, 'fn', true); + } + return $inject; +} + +/////////////////////////////////////// + +/** + * @ngdoc service + * @name $injector + * + * @description + * + * `$injector` is used to retrieve object instances as defined by + * {@link auto.$provide provider}, instantiate types, invoke methods, + * and load modules. + * + * The following always holds true: + * + * ```js + * var $injector = angular.injector(); + * expect($injector.get('$injector')).toBe($injector); + * expect($injector.invoke(function($injector) { + * return $injector; + * })).toBe($injector); + * ``` + * + * # Injection Function Annotation + * + * JavaScript does not have annotations, and annotations are needed for dependency injection. The + * following are all valid ways of annotating function with injection arguments and are equivalent. + * + * ```js + * // inferred (only works if code not minified/obfuscated) + * $injector.invoke(function(serviceA){}); + * + * // annotated + * function explicit(serviceA) {}; + * explicit.$inject = ['serviceA']; + * $injector.invoke(explicit); + * + * // inline + * $injector.invoke(['serviceA', function(serviceA){}]); + * ``` + * + * ## Inference + * + * In JavaScript calling `toString()` on a function returns the function definition. The definition + * can then be parsed and the function arguments can be extracted. This method of discovering + * annotations is disallowed when the injector is in strict mode. + * *NOTE:* This does not work with minification, and obfuscation tools since these tools change the + * argument names. + * + * ## `$inject` Annotation + * By adding an `$inject` property onto a function the injection parameters can be specified. + * + * ## Inline + * As an array of injection names, where the last item in the array is the function to call. + */ + +/** + * @ngdoc method + * @name $injector#get + * + * @description + * Return an instance of the service. + * + * @param {string} name The name of the instance to retrieve. + * @param {string=} caller An optional string to provide the origin of the function call for error messages. + * @return {*} The instance. + */ + +/** + * @ngdoc method + * @name $injector#invoke + * + * @description + * Invoke the method and supply the method arguments from the `$injector`. + * + * @param {Function|Array.} fn The injectable function to invoke. Function parameters are + * injected according to the {@link guide/di $inject Annotation} rules. + * @param {Object=} self The `this` for the invoked method. + * @param {Object=} locals Optional object. If preset then any argument names are read from this + * object first, before the `$injector` is consulted. + * @returns {*} the value returned by the invoked `fn` function. + */ + +/** + * @ngdoc method + * @name $injector#has + * + * @description + * Allows the user to query if the particular service exists. + * + * @param {string} name Name of the service to query. + * @returns {boolean} `true` if injector has given service. + */ + +/** + * @ngdoc method + * @name $injector#instantiate + * @description + * Create a new instance of JS type. The method takes a constructor function, invokes the new + * operator, and supplies all of the arguments to the constructor function as specified by the + * constructor annotation. + * + * @param {Function} Type Annotated constructor function. + * @param {Object=} locals Optional object. If preset then any argument names are read from this + * object first, before the `$injector` is consulted. + * @returns {Object} new instance of `Type`. + */ + +/** + * @ngdoc method + * @name $injector#annotate + * + * @description + * Returns an array of service names which the function is requesting for injection. This API is + * used by the injector to determine which services need to be injected into the function when the + * function is invoked. There are three ways in which the function can be annotated with the needed + * dependencies. + * + * # Argument names + * + * The simplest form is to extract the dependencies from the arguments of the function. This is done + * by converting the function into a string using `toString()` method and extracting the argument + * names. + * ```js + * // Given + * function MyController($scope, $route) { + * // ... + * } + * + * // Then + * expect(injector.annotate(MyController)).toEqual(['$scope', '$route']); + * ``` + * + * You can disallow this method by using strict injection mode. + * + * This method does not work with code minification / obfuscation. For this reason the following + * annotation strategies are supported. + * + * # The `$inject` property + * + * If a function has an `$inject` property and its value is an array of strings, then the strings + * represent names of services to be injected into the function. + * ```js + * // Given + * var MyController = function(obfuscatedScope, obfuscatedRoute) { + * // ... + * } + * // Define function dependencies + * MyController['$inject'] = ['$scope', '$route']; + * + * // Then + * expect(injector.annotate(MyController)).toEqual(['$scope', '$route']); + * ``` + * + * # The array notation + * + * It is often desirable to inline Injected functions and that's when setting the `$inject` property + * is very inconvenient. In these situations using the array notation to specify the dependencies in + * a way that survives minification is a better choice: + * + * ```js + * // We wish to write this (not minification / obfuscation safe) + * injector.invoke(function($compile, $rootScope) { + * // ... + * }); + * + * // We are forced to write break inlining + * var tmpFn = function(obfuscatedCompile, obfuscatedRootScope) { + * // ... + * }; + * tmpFn.$inject = ['$compile', '$rootScope']; + * injector.invoke(tmpFn); + * + * // To better support inline function the inline annotation is supported + * injector.invoke(['$compile', '$rootScope', function(obfCompile, obfRootScope) { + * // ... + * }]); + * + * // Therefore + * expect(injector.annotate( + * ['$compile', '$rootScope', function(obfus_$compile, obfus_$rootScope) {}]) + * ).toEqual(['$compile', '$rootScope']); + * ``` + * + * @param {Function|Array.} fn Function for which dependent service names need to + * be retrieved as described above. + * + * @param {boolean=} [strictDi=false] Disallow argument name annotation inference. + * + * @returns {Array.} The names of the services which the function requires. + */ + + + + +/** + * @ngdoc service + * @name $provide + * + * @description + * + * The {@link auto.$provide $provide} service has a number of methods for registering components + * with the {@link auto.$injector $injector}. Many of these functions are also exposed on + * {@link angular.Module}. + * + * An Angular **service** is a singleton object created by a **service factory**. These **service + * factories** are functions which, in turn, are created by a **service provider**. + * The **service providers** are constructor functions. When instantiated they must contain a + * property called `$get`, which holds the **service factory** function. + * + * When you request a service, the {@link auto.$injector $injector} is responsible for finding the + * correct **service provider**, instantiating it and then calling its `$get` **service factory** + * function to get the instance of the **service**. + * + * Often services have no configuration options and there is no need to add methods to the service + * provider. The provider will be no more than a constructor function with a `$get` property. For + * these cases the {@link auto.$provide $provide} service has additional helper methods to register + * services without specifying a provider. + * + * * {@link auto.$provide#provider provider(provider)} - registers a **service provider** with the + * {@link auto.$injector $injector} + * * {@link auto.$provide#constant constant(obj)} - registers a value/object that can be accessed by + * providers and services. + * * {@link auto.$provide#value value(obj)} - registers a value/object that can only be accessed by + * services, not providers. + * * {@link auto.$provide#factory factory(fn)} - registers a service **factory function**, `fn`, + * that will be wrapped in a **service provider** object, whose `$get` property will contain the + * given factory function. + * * {@link auto.$provide#service service(class)} - registers a **constructor function**, `class` + * that will be wrapped in a **service provider** object, whose `$get` property will instantiate + * a new object using the given constructor function. + * + * See the individual methods for more information and examples. + */ + +/** + * @ngdoc method + * @name $provide#provider + * @description + * + * Register a **provider function** with the {@link auto.$injector $injector}. Provider functions + * are constructor functions, whose instances are responsible for "providing" a factory for a + * service. + * + * Service provider names start with the name of the service they provide followed by `Provider`. + * For example, the {@link ng.$log $log} service has a provider called + * {@link ng.$logProvider $logProvider}. + * + * Service provider objects can have additional methods which allow configuration of the provider + * and its service. Importantly, you can configure what kind of service is created by the `$get` + * method, or how that service will act. For example, the {@link ng.$logProvider $logProvider} has a + * method {@link ng.$logProvider#debugEnabled debugEnabled} + * which lets you specify whether the {@link ng.$log $log} service will log debug messages to the + * console or not. + * + * @param {string} name The name of the instance. NOTE: the provider will be available under `name + + 'Provider'` key. + * @param {(Object|function())} provider If the provider is: + * + * - `Object`: then it should have a `$get` method. The `$get` method will be invoked using + * {@link auto.$injector#invoke $injector.invoke()} when an instance needs to be created. + * - `Constructor`: a new instance of the provider will be created using + * {@link auto.$injector#instantiate $injector.instantiate()}, then treated as `object`. + * + * @returns {Object} registered provider instance + + * @example + * + * The following example shows how to create a simple event tracking service and register it using + * {@link auto.$provide#provider $provide.provider()}. + * + * ```js + * // Define the eventTracker provider + * function EventTrackerProvider() { + * var trackingUrl = '/track'; + * + * // A provider method for configuring where the tracked events should been saved + * this.setTrackingUrl = function(url) { + * trackingUrl = url; + * }; + * + * // The service factory function + * this.$get = ['$http', function($http) { + * var trackedEvents = {}; + * return { + * // Call this to track an event + * event: function(event) { + * var count = trackedEvents[event] || 0; + * count += 1; + * trackedEvents[event] = count; + * return count; + * }, + * // Call this to save the tracked events to the trackingUrl + * save: function() { + * $http.post(trackingUrl, trackedEvents); + * } + * }; + * }]; + * } + * + * describe('eventTracker', function() { + * var postSpy; + * + * beforeEach(module(function($provide) { + * // Register the eventTracker provider + * $provide.provider('eventTracker', EventTrackerProvider); + * })); + * + * beforeEach(module(function(eventTrackerProvider) { + * // Configure eventTracker provider + * eventTrackerProvider.setTrackingUrl('/custom-track'); + * })); + * + * it('tracks events', inject(function(eventTracker) { + * expect(eventTracker.event('login')).toEqual(1); + * expect(eventTracker.event('login')).toEqual(2); + * })); + * + * it('saves to the tracking url', inject(function(eventTracker, $http) { + * postSpy = spyOn($http, 'post'); + * eventTracker.event('login'); + * eventTracker.save(); + * expect(postSpy).toHaveBeenCalled(); + * expect(postSpy.mostRecentCall.args[0]).not.toEqual('/track'); + * expect(postSpy.mostRecentCall.args[0]).toEqual('/custom-track'); + * expect(postSpy.mostRecentCall.args[1]).toEqual({ 'login': 1 }); + * })); + * }); + * ``` + */ + +/** + * @ngdoc method + * @name $provide#factory + * @description + * + * Register a **service factory**, which will be called to return the service instance. + * This is short for registering a service where its provider consists of only a `$get` property, + * which is the given service factory function. + * You should use {@link auto.$provide#factory $provide.factory(getFn)} if you do not need to + * configure your service in a provider. + * + * @param {string} name The name of the instance. + * @param {Function|Array.} $getFn The injectable $getFn for the instance creation. + * Internally this is a short hand for `$provide.provider(name, {$get: $getFn})`. + * @returns {Object} registered provider instance + * + * @example + * Here is an example of registering a service + * ```js + * $provide.factory('ping', ['$http', function($http) { + * return function ping() { + * return $http.send('/ping'); + * }; + * }]); + * ``` + * You would then inject and use this service like this: + * ```js + * someModule.controller('Ctrl', ['ping', function(ping) { + * ping(); + * }]); + * ``` + */ + + +/** + * @ngdoc method + * @name $provide#service + * @description + * + * Register a **service constructor**, which will be invoked with `new` to create the service + * instance. + * This is short for registering a service where its provider's `$get` property is the service + * constructor function that will be used to instantiate the service instance. + * + * You should use {@link auto.$provide#service $provide.service(class)} if you define your service + * as a type/class. + * + * @param {string} name The name of the instance. + * @param {Function|Array.} constructor An injectable class (constructor function) + * that will be instantiated. + * @returns {Object} registered provider instance + * + * @example + * Here is an example of registering a service using + * {@link auto.$provide#service $provide.service(class)}. + * ```js + * var Ping = function($http) { + * this.$http = $http; + * }; + * + * Ping.$inject = ['$http']; + * + * Ping.prototype.send = function() { + * return this.$http.get('/ping'); + * }; + * $provide.service('ping', Ping); + * ``` + * You would then inject and use this service like this: + * ```js + * someModule.controller('Ctrl', ['ping', function(ping) { + * ping.send(); + * }]); + * ``` + */ + + +/** + * @ngdoc method + * @name $provide#value + * @description + * + * Register a **value service** with the {@link auto.$injector $injector}, such as a string, a + * number, an array, an object or a function. This is short for registering a service where its + * provider's `$get` property is a factory function that takes no arguments and returns the **value + * service**. + * + * Value services are similar to constant services, except that they cannot be injected into a + * module configuration function (see {@link angular.Module#config}) but they can be overridden by + * an Angular + * {@link auto.$provide#decorator decorator}. + * + * @param {string} name The name of the instance. + * @param {*} value The value. + * @returns {Object} registered provider instance + * + * @example + * Here are some examples of creating value services. + * ```js + * $provide.value('ADMIN_USER', 'admin'); + * + * $provide.value('RoleLookup', { admin: 0, writer: 1, reader: 2 }); + * + * $provide.value('halfOf', function(value) { + * return value / 2; + * }); + * ``` + */ + + +/** + * @ngdoc method + * @name $provide#constant + * @description + * + * Register a **constant service**, such as a string, a number, an array, an object or a function, + * with the {@link auto.$injector $injector}. Unlike {@link auto.$provide#value value} it can be + * injected into a module configuration function (see {@link angular.Module#config}) and it cannot + * be overridden by an Angular {@link auto.$provide#decorator decorator}. + * + * @param {string} name The name of the constant. + * @param {*} value The constant value. + * @returns {Object} registered instance + * + * @example + * Here a some examples of creating constants: + * ```js + * $provide.constant('SHARD_HEIGHT', 306); + * + * $provide.constant('MY_COLOURS', ['red', 'blue', 'grey']); + * + * $provide.constant('double', function(value) { + * return value * 2; + * }); + * ``` + */ + + +/** + * @ngdoc method + * @name $provide#decorator + * @description + * + * Register a **service decorator** with the {@link auto.$injector $injector}. A service decorator + * intercepts the creation of a service, allowing it to override or modify the behaviour of the + * service. The object returned by the decorator may be the original service, or a new service + * object which replaces or wraps and delegates to the original service. + * + * @param {string} name The name of the service to decorate. + * @param {Function|Array.} decorator This function will be invoked when the service needs to be + * instantiated and should return the decorated service instance. The function is called using + * the {@link auto.$injector#invoke injector.invoke} method and is therefore fully injectable. + * Local injection arguments: + * + * * `$delegate` - The original service instance, which can be monkey patched, configured, + * decorated or delegated to. + * + * @example + * Here we decorate the {@link ng.$log $log} service to convert warnings to errors by intercepting + * calls to {@link ng.$log#error $log.warn()}. + * ```js + * $provide.decorator('$log', ['$delegate', function($delegate) { + * $delegate.warn = $delegate.error; + * return $delegate; + * }]); + * ``` + */ + + +function createInjector(modulesToLoad, strictDi) { + strictDi = (strictDi === true); + var INSTANTIATING = {}, + providerSuffix = 'Provider', + path = [], + loadedModules = new HashMap([], true), + providerCache = { + $provide: { + provider: supportObject(provider), + factory: supportObject(factory), + service: supportObject(service), + value: supportObject(value), + constant: supportObject(constant), + decorator: decorator + } + }, + providerInjector = (providerCache.$injector = + createInternalInjector(providerCache, function(serviceName, caller) { + if (angular.isString(caller)) { + path.push(caller); + } + throw $injectorMinErr('unpr', "Unknown provider: {0}", path.join(' <- ')); + })), + instanceCache = {}, + instanceInjector = (instanceCache.$injector = + createInternalInjector(instanceCache, function(serviceName, caller) { + var provider = providerInjector.get(serviceName + providerSuffix, caller); + return instanceInjector.invoke(provider.$get, provider, undefined, serviceName); + })); + + + forEach(loadModules(modulesToLoad), function(fn) { if (fn) instanceInjector.invoke(fn); }); + + return instanceInjector; + + //////////////////////////////////// + // $provider + //////////////////////////////////// + + function supportObject(delegate) { + return function(key, value) { + if (isObject(key)) { + forEach(key, reverseParams(delegate)); + } else { + return delegate(key, value); + } + }; + } + + function provider(name, provider_) { + assertNotHasOwnProperty(name, 'service'); + if (isFunction(provider_) || isArray(provider_)) { + provider_ = providerInjector.instantiate(provider_); + } + if (!provider_.$get) { + throw $injectorMinErr('pget', "Provider '{0}' must define $get factory method.", name); + } + return providerCache[name + providerSuffix] = provider_; + } + + function enforceReturnValue(name, factory) { + return function enforcedReturnValue() { + var result = instanceInjector.invoke(factory, this); + if (isUndefined(result)) { + throw $injectorMinErr('undef', "Provider '{0}' must return a value from $get factory method.", name); + } + return result; + }; + } + + function factory(name, factoryFn, enforce) { + return provider(name, { + $get: enforce !== false ? enforceReturnValue(name, factoryFn) : factoryFn + }); + } + + function service(name, constructor) { + return factory(name, ['$injector', function($injector) { + return $injector.instantiate(constructor); + }]); + } + + function value(name, val) { return factory(name, valueFn(val), false); } + + function constant(name, value) { + assertNotHasOwnProperty(name, 'constant'); + providerCache[name] = value; + instanceCache[name] = value; + } + + function decorator(serviceName, decorFn) { + var origProvider = providerInjector.get(serviceName + providerSuffix), + orig$get = origProvider.$get; + + origProvider.$get = function() { + var origInstance = instanceInjector.invoke(orig$get, origProvider); + return instanceInjector.invoke(decorFn, null, {$delegate: origInstance}); + }; + } + + //////////////////////////////////// + // Module Loading + //////////////////////////////////// + function loadModules(modulesToLoad) { + var runBlocks = [], moduleFn; + forEach(modulesToLoad, function(module) { + if (loadedModules.get(module)) return; + loadedModules.put(module, true); + + function runInvokeQueue(queue) { + var i, ii; + for (i = 0, ii = queue.length; i < ii; i++) { + var invokeArgs = queue[i], + provider = providerInjector.get(invokeArgs[0]); + + provider[invokeArgs[1]].apply(provider, invokeArgs[2]); + } + } + + try { + if (isString(module)) { + moduleFn = angularModule(module); + runBlocks = runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks); + runInvokeQueue(moduleFn._invokeQueue); + runInvokeQueue(moduleFn._configBlocks); + } else if (isFunction(module)) { + runBlocks.push(providerInjector.invoke(module)); + } else if (isArray(module)) { + runBlocks.push(providerInjector.invoke(module)); + } else { + assertArgFn(module, 'module'); + } + } catch (e) { + if (isArray(module)) { + module = module[module.length - 1]; + } + if (e.message && e.stack && e.stack.indexOf(e.message) == -1) { + // Safari & FF's stack traces don't contain error.message content + // unlike those of Chrome and IE + // So if stack doesn't contain message, we create a new string that contains both. + // Since error.stack is read-only in Safari, I'm overriding e and not e.stack here. + /* jshint -W022 */ + e = e.message + '\n' + e.stack; + } + throw $injectorMinErr('modulerr', "Failed to instantiate module {0} due to:\n{1}", + module, e.stack || e.message || e); + } + }); + return runBlocks; + } + + //////////////////////////////////// + // internal Injector + //////////////////////////////////// + + function createInternalInjector(cache, factory) { + + function getService(serviceName, caller) { + if (cache.hasOwnProperty(serviceName)) { + if (cache[serviceName] === INSTANTIATING) { + throw $injectorMinErr('cdep', 'Circular dependency found: {0}', + serviceName + ' <- ' + path.join(' <- ')); + } + return cache[serviceName]; + } else { + try { + path.unshift(serviceName); + cache[serviceName] = INSTANTIATING; + return cache[serviceName] = factory(serviceName, caller); + } catch (err) { + if (cache[serviceName] === INSTANTIATING) { + delete cache[serviceName]; + } + throw err; + } finally { + path.shift(); + } + } + } + + function invoke(fn, self, locals, serviceName) { + if (typeof locals === 'string') { + serviceName = locals; + locals = null; + } + + var args = [], + $inject = createInjector.$$annotate(fn, strictDi, serviceName), + length, i, + key; + + for (i = 0, length = $inject.length; i < length; i++) { + key = $inject[i]; + if (typeof key !== 'string') { + throw $injectorMinErr('itkn', + 'Incorrect injection token! Expected service name as string, got {0}', key); + } + args.push( + locals && locals.hasOwnProperty(key) + ? locals[key] + : getService(key, serviceName) + ); + } + if (isArray(fn)) { + fn = fn[length]; + } + + // http://jsperf.com/angularjs-invoke-apply-vs-switch + // #5388 + return fn.apply(self, args); + } + + function instantiate(Type, locals, serviceName) { + // Check if Type is annotated and use just the given function at n-1 as parameter + // e.g. someModule.factory('greeter', ['$window', function(renamed$window) {}]); + // Object creation: http://jsperf.com/create-constructor/2 + var instance = Object.create((isArray(Type) ? Type[Type.length - 1] : Type).prototype || null); + var returnedValue = invoke(Type, instance, locals, serviceName); + + return isObject(returnedValue) || isFunction(returnedValue) ? returnedValue : instance; + } + + return { + invoke: invoke, + instantiate: instantiate, + get: getService, + annotate: createInjector.$$annotate, + has: function(name) { + return providerCache.hasOwnProperty(name + providerSuffix) || cache.hasOwnProperty(name); + } + }; + } +} + +createInjector.$$annotate = annotate; + +/** + * @ngdoc provider + * @name $anchorScrollProvider + * + * @description + * Use `$anchorScrollProvider` to disable automatic scrolling whenever + * {@link ng.$location#hash $location.hash()} changes. + */ +function $AnchorScrollProvider() { + + var autoScrollingEnabled = true; + + /** + * @ngdoc method + * @name $anchorScrollProvider#disableAutoScrolling + * + * @description + * By default, {@link ng.$anchorScroll $anchorScroll()} will automatically detect changes to + * {@link ng.$location#hash $location.hash()} and scroll to the element matching the new hash.
    + * Use this method to disable automatic scrolling. + * + * If automatic scrolling is disabled, one must explicitly call + * {@link ng.$anchorScroll $anchorScroll()} in order to scroll to the element related to the + * current hash. + */ + this.disableAutoScrolling = function() { + autoScrollingEnabled = false; + }; + + /** + * @ngdoc service + * @name $anchorScroll + * @kind function + * @requires $window + * @requires $location + * @requires $rootScope + * + * @description + * When called, it scrolls to the element related to the specified `hash` or (if omitted) to the + * current value of {@link ng.$location#hash $location.hash()}, according to the rules specified + * in the + * [HTML5 spec](http://dev.w3.org/html5/spec/Overview.html#the-indicated-part-of-the-document). + * + * It also watches the {@link ng.$location#hash $location.hash()} and automatically scrolls to + * match any anchor whenever it changes. This can be disabled by calling + * {@link ng.$anchorScrollProvider#disableAutoScrolling $anchorScrollProvider.disableAutoScrolling()}. + * + * Additionally, you can use its {@link ng.$anchorScroll#yOffset yOffset} property to specify a + * vertical scroll-offset (either fixed or dynamic). + * + * @param {string=} hash The hash specifying the element to scroll to. If omitted, the value of + * {@link ng.$location#hash $location.hash()} will be used. + * + * @property {(number|function|jqLite)} yOffset + * If set, specifies a vertical scroll-offset. This is often useful when there are fixed + * positioned elements at the top of the page, such as navbars, headers etc. + * + * `yOffset` can be specified in various ways: + * - **number**: A fixed number of pixels to be used as offset.

    + * - **function**: A getter function called everytime `$anchorScroll()` is executed. Must return + * a number representing the offset (in pixels).

    + * - **jqLite**: A jqLite/jQuery element to be used for specifying the offset. The distance from + * the top of the page to the element's bottom will be used as offset.
    + * **Note**: The element will be taken into account only as long as its `position` is set to + * `fixed`. This option is useful, when dealing with responsive navbars/headers that adjust + * their height and/or positioning according to the viewport's size. + * + *
    + *
    + * In order for `yOffset` to work properly, scrolling should take place on the document's root and + * not some child element. + *
    + * + * @example + + +
    + Go to bottom + You're at the bottom! +
    +
    + + angular.module('anchorScrollExample', []) + .controller('ScrollController', ['$scope', '$location', '$anchorScroll', + function ($scope, $location, $anchorScroll) { + $scope.gotoBottom = function() { + // set the location.hash to the id of + // the element you wish to scroll to. + $location.hash('bottom'); + + // call $anchorScroll() + $anchorScroll(); + }; + }]); + + + #scrollArea { + height: 280px; + overflow: auto; + } + + #bottom { + display: block; + margin-top: 2000px; + } + +
    + * + *
    + * The example below illustrates the use of a vertical scroll-offset (specified as a fixed value). + * See {@link ng.$anchorScroll#yOffset $anchorScroll.yOffset} for more details. + * + * @example + + + +
    + Anchor {{x}} of 5 +
    +
    + + angular.module('anchorScrollOffsetExample', []) + .run(['$anchorScroll', function($anchorScroll) { + $anchorScroll.yOffset = 50; // always scroll by 50 extra pixels + }]) + .controller('headerCtrl', ['$anchorScroll', '$location', '$scope', + function ($anchorScroll, $location, $scope) { + $scope.gotoAnchor = function(x) { + var newHash = 'anchor' + x; + if ($location.hash() !== newHash) { + // set the $location.hash to `newHash` and + // $anchorScroll will automatically scroll to it + $location.hash('anchor' + x); + } else { + // call $anchorScroll() explicitly, + // since $location.hash hasn't changed + $anchorScroll(); + } + }; + } + ]); + + + body { + padding-top: 50px; + } + + .anchor { + border: 2px dashed DarkOrchid; + padding: 10px 10px 200px 10px; + } + + .fixed-header { + background-color: rgba(0, 0, 0, 0.2); + height: 50px; + position: fixed; + top: 0; left: 0; right: 0; + } + + .fixed-header > a { + display: inline-block; + margin: 5px 15px; + } + +
    + */ + this.$get = ['$window', '$location', '$rootScope', function($window, $location, $rootScope) { + var document = $window.document; + + // Helper function to get first anchor from a NodeList + // (using `Array#some()` instead of `angular#forEach()` since it's more performant + // and working in all supported browsers.) + function getFirstAnchor(list) { + var result = null; + Array.prototype.some.call(list, function(element) { + if (nodeName_(element) === 'a') { + result = element; + return true; + } + }); + return result; + } + + function getYOffset() { + + var offset = scroll.yOffset; + + if (isFunction(offset)) { + offset = offset(); + } else if (isElement(offset)) { + var elem = offset[0]; + var style = $window.getComputedStyle(elem); + if (style.position !== 'fixed') { + offset = 0; + } else { + offset = elem.getBoundingClientRect().bottom; + } + } else if (!isNumber(offset)) { + offset = 0; + } + + return offset; + } + + function scrollTo(elem) { + if (elem) { + elem.scrollIntoView(); + + var offset = getYOffset(); + + if (offset) { + // `offset` is the number of pixels we should scroll UP in order to align `elem` properly. + // This is true ONLY if the call to `elem.scrollIntoView()` initially aligns `elem` at the + // top of the viewport. + // + // IF the number of pixels from the top of `elem` to the end of the page's content is less + // than the height of the viewport, then `elem.scrollIntoView()` will align the `elem` some + // way down the page. + // + // This is often the case for elements near the bottom of the page. + // + // In such cases we do not need to scroll the whole `offset` up, just the difference between + // the top of the element and the offset, which is enough to align the top of `elem` at the + // desired position. + var elemTop = elem.getBoundingClientRect().top; + $window.scrollBy(0, elemTop - offset); + } + } else { + $window.scrollTo(0, 0); + } + } + + function scroll(hash) { + hash = isString(hash) ? hash : $location.hash(); + var elm; + + // empty hash, scroll to the top of the page + if (!hash) scrollTo(null); + + // element with given id + else if ((elm = document.getElementById(hash))) scrollTo(elm); + + // first anchor with given name :-D + else if ((elm = getFirstAnchor(document.getElementsByName(hash)))) scrollTo(elm); + + // no element and hash == 'top', scroll to the top of the page + else if (hash === 'top') scrollTo(null); + } + + // does not scroll when user clicks on anchor link that is currently on + // (no url change, no $location.hash() change), browser native does scroll + if (autoScrollingEnabled) { + $rootScope.$watch(function autoScrollWatch() {return $location.hash();}, + function autoScrollWatchAction(newVal, oldVal) { + // skip the initial scroll if $location.hash is empty + if (newVal === oldVal && newVal === '') return; + + jqLiteDocumentLoaded(function() { + $rootScope.$evalAsync(scroll); + }); + }); + } + + return scroll; + }]; +} + +var $animateMinErr = minErr('$animate'); +var ELEMENT_NODE = 1; +var NG_ANIMATE_CLASSNAME = 'ng-animate'; + +function mergeClasses(a,b) { + if (!a && !b) return ''; + if (!a) return b; + if (!b) return a; + if (isArray(a)) a = a.join(' '); + if (isArray(b)) b = b.join(' '); + return a + ' ' + b; +} + +function extractElementNode(element) { + for (var i = 0; i < element.length; i++) { + var elm = element[i]; + if (elm.nodeType === ELEMENT_NODE) { + return elm; + } + } +} + +function splitClasses(classes) { + if (isString(classes)) { + classes = classes.split(' '); + } + + // Use createMap() to prevent class assumptions involving property names in + // Object.prototype + var obj = createMap(); + forEach(classes, function(klass) { + // sometimes the split leaves empty string values + // incase extra spaces were applied to the options + if (klass.length) { + obj[klass] = true; + } + }); + return obj; +} + +// if any other type of options value besides an Object value is +// passed into the $animate.method() animation then this helper code +// will be run which will ignore it. While this patch is not the +// greatest solution to this, a lot of existing plugins depend on +// $animate to either call the callback (< 1.2) or return a promise +// that can be changed. This helper function ensures that the options +// are wiped clean incase a callback function is provided. +function prepareAnimateOptions(options) { + return isObject(options) + ? options + : {}; +} + +var $$CoreAnimateRunnerProvider = function() { + this.$get = ['$q', '$$rAF', function($q, $$rAF) { + function AnimateRunner() {} + AnimateRunner.all = noop; + AnimateRunner.chain = noop; + AnimateRunner.prototype = { + end: noop, + cancel: noop, + resume: noop, + pause: noop, + complete: noop, + then: function(pass, fail) { + return $q(function(resolve) { + $$rAF(function() { + resolve(); + }); + }).then(pass, fail); + } + }; + return AnimateRunner; + }]; +}; + +// this is prefixed with Core since it conflicts with +// the animateQueueProvider defined in ngAnimate/animateQueue.js +var $$CoreAnimateQueueProvider = function() { + var postDigestQueue = new HashMap(); + var postDigestElements = []; + + this.$get = ['$$AnimateRunner', '$rootScope', + function($$AnimateRunner, $rootScope) { + return { + enabled: noop, + on: noop, + off: noop, + pin: noop, + + push: function(element, event, options, domOperation) { + domOperation && domOperation(); + + options = options || {}; + options.from && element.css(options.from); + options.to && element.css(options.to); + + if (options.addClass || options.removeClass) { + addRemoveClassesPostDigest(element, options.addClass, options.removeClass); + } + + return new $$AnimateRunner(); // jshint ignore:line + } + }; + + function addRemoveClassesPostDigest(element, add, remove) { + var data = postDigestQueue.get(element); + var classVal; + + if (!data) { + postDigestQueue.put(element, data = {}); + postDigestElements.push(element); + } + + if (add) { + forEach(add.split(' '), function(className) { + if (className) { + data[className] = true; + } + }); + } + + if (remove) { + forEach(remove.split(' '), function(className) { + if (className) { + data[className] = false; + } + }); + } + + if (postDigestElements.length > 1) return; + + $rootScope.$$postDigest(function() { + forEach(postDigestElements, function(element) { + var data = postDigestQueue.get(element); + if (data) { + var existing = splitClasses(element.attr('class')); + var toAdd = ''; + var toRemove = ''; + forEach(data, function(status, className) { + var hasClass = !!existing[className]; + if (status !== hasClass) { + if (status) { + toAdd += (toAdd.length ? ' ' : '') + className; + } else { + toRemove += (toRemove.length ? ' ' : '') + className; + } + } + }); + + forEach(element, function(elm) { + toAdd && jqLiteAddClass(elm, toAdd); + toRemove && jqLiteRemoveClass(elm, toRemove); + }); + postDigestQueue.remove(element); + } + }); + + postDigestElements.length = 0; + }); + } + }]; +}; + +/** + * @ngdoc provider + * @name $animateProvider + * + * @description + * Default implementation of $animate that doesn't perform any animations, instead just + * synchronously performs DOM updates and resolves the returned runner promise. + * + * In order to enable animations the `ngAnimate` module has to be loaded. + * + * To see the functional implementation check out `src/ngAnimate/animate.js`. + */ +var $AnimateProvider = ['$provide', function($provide) { + var provider = this; + + this.$$registeredAnimations = Object.create(null); + + /** + * @ngdoc method + * @name $animateProvider#register + * + * @description + * Registers a new injectable animation factory function. The factory function produces the + * animation object which contains callback functions for each event that is expected to be + * animated. + * + * * `eventFn`: `function(element, ... , doneFunction, options)` + * The element to animate, the `doneFunction` and the options fed into the animation. Depending + * on the type of animation additional arguments will be injected into the animation function. The + * list below explains the function signatures for the different animation methods: + * + * - setClass: function(element, addedClasses, removedClasses, doneFunction, options) + * - addClass: function(element, addedClasses, doneFunction, options) + * - removeClass: function(element, removedClasses, doneFunction, options) + * - enter, leave, move: function(element, doneFunction, options) + * - animate: function(element, fromStyles, toStyles, doneFunction, options) + * + * Make sure to trigger the `doneFunction` once the animation is fully complete. + * + * ```js + * return { + * //enter, leave, move signature + * eventFn : function(element, done, options) { + * //code to run the animation + * //once complete, then run done() + * return function endFunction(wasCancelled) { + * //code to cancel the animation + * } + * } + * } + * ``` + * + * @param {string} name The name of the animation (this is what the class-based CSS value will be compared to). + * @param {Function} factory The factory function that will be executed to return the animation + * object. + */ + this.register = function(name, factory) { + if (name && name.charAt(0) !== '.') { + throw $animateMinErr('notcsel', "Expecting class selector starting with '.' got '{0}'.", name); + } + + var key = name + '-animation'; + provider.$$registeredAnimations[name.substr(1)] = key; + $provide.factory(key, factory); + }; + + /** + * @ngdoc method + * @name $animateProvider#classNameFilter + * + * @description + * Sets and/or returns the CSS class regular expression that is checked when performing + * an animation. Upon bootstrap the classNameFilter value is not set at all and will + * therefore enable $animate to attempt to perform an animation on any element that is triggered. + * When setting the `classNameFilter` value, animations will only be performed on elements + * that successfully match the filter expression. This in turn can boost performance + * for low-powered devices as well as applications containing a lot of structural operations. + * @param {RegExp=} expression The className expression which will be checked against all animations + * @return {RegExp} The current CSS className expression value. If null then there is no expression value + */ + this.classNameFilter = function(expression) { + if (arguments.length === 1) { + this.$$classNameFilter = (expression instanceof RegExp) ? expression : null; + if (this.$$classNameFilter) { + var reservedRegex = new RegExp("(\\s+|\\/)" + NG_ANIMATE_CLASSNAME + "(\\s+|\\/)"); + if (reservedRegex.test(this.$$classNameFilter.toString())) { + throw $animateMinErr('nongcls','$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.', NG_ANIMATE_CLASSNAME); + + } + } + } + return this.$$classNameFilter; + }; + + this.$get = ['$$animateQueue', function($$animateQueue) { + function domInsert(element, parentElement, afterElement) { + // if for some reason the previous element was removed + // from the dom sometime before this code runs then let's + // just stick to using the parent element as the anchor + if (afterElement) { + var afterNode = extractElementNode(afterElement); + if (afterNode && !afterNode.parentNode && !afterNode.previousElementSibling) { + afterElement = null; + } + } + afterElement ? afterElement.after(element) : parentElement.prepend(element); + } + + /** + * @ngdoc service + * @name $animate + * @description The $animate service exposes a series of DOM utility methods that provide support + * for animation hooks. The default behavior is the application of DOM operations, however, + * when an animation is detected (and animations are enabled), $animate will do the heavy lifting + * to ensure that animation runs with the triggered DOM operation. + * + * By default $animate doesn't trigger an animations. This is because the `ngAnimate` module isn't + * included and only when it is active then the animation hooks that `$animate` triggers will be + * functional. Once active then all structural `ng-` directives will trigger animations as they perform + * their DOM-related operations (enter, leave and move). Other directives such as `ngClass`, + * `ngShow`, `ngHide` and `ngMessages` also provide support for animations. + * + * It is recommended that the`$animate` service is always used when executing DOM-related procedures within directives. + * + * To learn more about enabling animation support, click here to visit the + * {@link ngAnimate ngAnimate module page}. + */ + return { + // we don't call it directly since non-existant arguments may + // be interpreted as null within the sub enabled function + + /** + * + * @ngdoc method + * @name $animate#on + * @kind function + * @description Sets up an event listener to fire whenever the animation event (enter, leave, move, etc...) + * has fired on the given element or among any of its children. Once the listener is fired, the provided callback + * is fired with the following params: + * + * ```js + * $animate.on('enter', container, + * function callback(element, phase) { + * // cool we detected an enter animation within the container + * } + * ); + * ``` + * + * @param {string} event the animation event that will be captured (e.g. enter, leave, move, addClass, removeClass, etc...) + * @param {DOMElement} container the container element that will capture each of the animation events that are fired on itself + * as well as among its children + * @param {Function} callback the callback function that will be fired when the listener is triggered + * + * The arguments present in the callback function are: + * * `element` - The captured DOM element that the animation was fired on. + * * `phase` - The phase of the animation. The two possible phases are **start** (when the animation starts) and **close** (when it ends). + */ + on: $$animateQueue.on, + + /** + * + * @ngdoc method + * @name $animate#off + * @kind function + * @description Deregisters an event listener based on the event which has been associated with the provided element. This method + * can be used in three different ways depending on the arguments: + * + * ```js + * // remove all the animation event listeners listening for `enter` + * $animate.off('enter'); + * + * // remove all the animation event listeners listening for `enter` on the given element and its children + * $animate.off('enter', container); + * + * // remove the event listener function provided by `listenerFn` that is set + * // to listen for `enter` on the given `element` as well as its children + * $animate.off('enter', container, callback); + * ``` + * + * @param {string} event the animation event (e.g. enter, leave, move, addClass, removeClass, etc...) + * @param {DOMElement=} container the container element the event listener was placed on + * @param {Function=} callback the callback function that was registered as the listener + */ + off: $$animateQueue.off, + + /** + * @ngdoc method + * @name $animate#pin + * @kind function + * @description Associates the provided element with a host parent element to allow the element to be animated even if it exists + * outside of the DOM structure of the Angular application. By doing so, any animation triggered via `$animate` can be issued on the + * element despite being outside the realm of the application or within another application. Say for example if the application + * was bootstrapped on an element that is somewhere inside of the `` tag, but we wanted to allow for an element to be situated + * as a direct child of `document.body`, then this can be achieved by pinning the element via `$animate.pin(element)`. Keep in mind + * that calling `$animate.pin(element, parentElement)` will not actually insert into the DOM anywhere; it will just create the association. + * + * Note that this feature is only active when the `ngAnimate` module is used. + * + * @param {DOMElement} element the external element that will be pinned + * @param {DOMElement} parentElement the host parent element that will be associated with the external element + */ + pin: $$animateQueue.pin, + + /** + * + * @ngdoc method + * @name $animate#enabled + * @kind function + * @description Used to get and set whether animations are enabled or not on the entire application or on an element and its children. This + * function can be called in four ways: + * + * ```js + * // returns true or false + * $animate.enabled(); + * + * // changes the enabled state for all animations + * $animate.enabled(false); + * $animate.enabled(true); + * + * // returns true or false if animations are enabled for an element + * $animate.enabled(element); + * + * // changes the enabled state for an element and its children + * $animate.enabled(element, true); + * $animate.enabled(element, false); + * ``` + * + * @param {DOMElement=} element the element that will be considered for checking/setting the enabled state + * @param {boolean=} enabled whether or not the animations will be enabled for the element + * + * @return {boolean} whether or not animations are enabled + */ + enabled: $$animateQueue.enabled, + + /** + * @ngdoc method + * @name $animate#cancel + * @kind function + * @description Cancels the provided animation. + * + * @param {Promise} animationPromise The animation promise that is returned when an animation is started. + */ + cancel: function(runner) { + runner.end && runner.end(); + }, + + /** + * + * @ngdoc method + * @name $animate#enter + * @kind function + * @description Inserts the element into the DOM either after the `after` element (if provided) or + * as the first child within the `parent` element and then triggers an animation. + * A promise is returned that will be resolved during the next digest once the animation + * has completed. + * + * @param {DOMElement} element the element which will be inserted into the DOM + * @param {DOMElement} parent the parent element which will append the element as + * a child (so long as the after element is not present) + * @param {DOMElement=} after the sibling element after which the element will be appended + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + enter: function(element, parent, after, options) { + parent = parent && jqLite(parent); + after = after && jqLite(after); + parent = parent || after.parent(); + domInsert(element, parent, after); + return $$animateQueue.push(element, 'enter', prepareAnimateOptions(options)); + }, + + /** + * + * @ngdoc method + * @name $animate#move + * @kind function + * @description Inserts (moves) the element into its new position in the DOM either after + * the `after` element (if provided) or as the first child within the `parent` element + * and then triggers an animation. A promise is returned that will be resolved + * during the next digest once the animation has completed. + * + * @param {DOMElement} element the element which will be moved into the new DOM position + * @param {DOMElement} parent the parent element which will append the element as + * a child (so long as the after element is not present) + * @param {DOMElement=} after the sibling element after which the element will be appended + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + move: function(element, parent, after, options) { + parent = parent && jqLite(parent); + after = after && jqLite(after); + parent = parent || after.parent(); + domInsert(element, parent, after); + return $$animateQueue.push(element, 'move', prepareAnimateOptions(options)); + }, + + /** + * @ngdoc method + * @name $animate#leave + * @kind function + * @description Triggers an animation and then removes the element from the DOM. + * When the function is called a promise is returned that will be resolved during the next + * digest once the animation has completed. + * + * @param {DOMElement} element the element which will be removed from the DOM + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + leave: function(element, options) { + return $$animateQueue.push(element, 'leave', prepareAnimateOptions(options), function() { + element.remove(); + }); + }, + + /** + * @ngdoc method + * @name $animate#addClass + * @kind function + * + * @description Triggers an addClass animation surrounding the addition of the provided CSS class(es). Upon + * execution, the addClass operation will only be handled after the next digest and it will not trigger an + * animation if element already contains the CSS class or if the class is removed at a later step. + * Note that class-based animations are treated differently compared to structural animations + * (like enter, move and leave) since the CSS classes may be added/removed at different points + * depending if CSS or JavaScript animations are used. + * + * @param {DOMElement} element the element which the CSS classes will be applied to + * @param {string} className the CSS class(es) that will be added (multiple classes are separated via spaces) + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + addClass: function(element, className, options) { + options = prepareAnimateOptions(options); + options.addClass = mergeClasses(options.addclass, className); + return $$animateQueue.push(element, 'addClass', options); + }, + + /** + * @ngdoc method + * @name $animate#removeClass + * @kind function + * + * @description Triggers a removeClass animation surrounding the removal of the provided CSS class(es). Upon + * execution, the removeClass operation will only be handled after the next digest and it will not trigger an + * animation if element does not contain the CSS class or if the class is added at a later step. + * Note that class-based animations are treated differently compared to structural animations + * (like enter, move and leave) since the CSS classes may be added/removed at different points + * depending if CSS or JavaScript animations are used. + * + * @param {DOMElement} element the element which the CSS classes will be applied to + * @param {string} className the CSS class(es) that will be removed (multiple classes are separated via spaces) + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + removeClass: function(element, className, options) { + options = prepareAnimateOptions(options); + options.removeClass = mergeClasses(options.removeClass, className); + return $$animateQueue.push(element, 'removeClass', options); + }, + + /** + * @ngdoc method + * @name $animate#setClass + * @kind function + * + * @description Performs both the addition and removal of a CSS classes on an element and (during the process) + * triggers an animation surrounding the class addition/removal. Much like `$animate.addClass` and + * `$animate.removeClass`, `setClass` will only evaluate the classes being added/removed once a digest has + * passed. Note that class-based animations are treated differently compared to structural animations + * (like enter, move and leave) since the CSS classes may be added/removed at different points + * depending if CSS or JavaScript animations are used. + * + * @param {DOMElement} element the element which the CSS classes will be applied to + * @param {string} add the CSS class(es) that will be added (multiple classes are separated via spaces) + * @param {string} remove the CSS class(es) that will be removed (multiple classes are separated via spaces) + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + setClass: function(element, add, remove, options) { + options = prepareAnimateOptions(options); + options.addClass = mergeClasses(options.addClass, add); + options.removeClass = mergeClasses(options.removeClass, remove); + return $$animateQueue.push(element, 'setClass', options); + }, + + /** + * @ngdoc method + * @name $animate#animate + * @kind function + * + * @description Performs an inline animation on the element which applies the provided to and from CSS styles to the element. + * If any detected CSS transition, keyframe or JavaScript matches the provided className value then the animation will take + * on the provided styles. For example, if a transition animation is set for the given className then the provided from and + * to styles will be applied alongside the given transition. If a JavaScript animation is detected then the provided styles + * will be given in as function paramters into the `animate` method (or as apart of the `options` parameter). + * + * @param {DOMElement} element the element which the CSS styles will be applied to + * @param {object} from the from (starting) CSS styles that will be applied to the element and across the animation. + * @param {object} to the to (destination) CSS styles that will be applied to the element and across the animation. + * @param {string=} className an optional CSS class that will be applied to the element for the duration of the animation. If + * this value is left as empty then a CSS class of `ng-inline-animate` will be applied to the element. + * (Note that if no animation is detected then this value will not be appplied to the element.) + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + animate: function(element, from, to, className, options) { + options = prepareAnimateOptions(options); + options.from = options.from ? extend(options.from, from) : from; + options.to = options.to ? extend(options.to, to) : to; + + className = className || 'ng-inline-animate'; + options.tempClasses = mergeClasses(options.tempClasses, className); + return $$animateQueue.push(element, 'animate', options); + } + }; + }]; +}]; + +function $$AsyncCallbackProvider() { + this.$get = ['$$rAF', '$timeout', function($$rAF, $timeout) { + return $$rAF.supported + ? function(fn) { return $$rAF(fn); } + : function(fn) { + return $timeout(fn, 0, false); + }; + }]; +} + +/* global stripHash: true */ + +/** + * ! This is a private undocumented service ! + * + * @name $browser + * @requires $log + * @description + * This object has two goals: + * + * - hide all the global state in the browser caused by the window object + * - abstract away all the browser specific features and inconsistencies + * + * For tests we provide {@link ngMock.$browser mock implementation} of the `$browser` + * service, which can be used for convenient testing of the application without the interaction with + * the real browser apis. + */ +/** + * @param {object} window The global window object. + * @param {object} document jQuery wrapped document. + * @param {object} $log window.console or an object with the same interface. + * @param {object} $sniffer $sniffer service + */ +function Browser(window, document, $log, $sniffer) { + var self = this, + rawDocument = document[0], + location = window.location, + history = window.history, + setTimeout = window.setTimeout, + clearTimeout = window.clearTimeout, + pendingDeferIds = {}; + + self.isMock = false; + + var outstandingRequestCount = 0; + var outstandingRequestCallbacks = []; + + // TODO(vojta): remove this temporary api + self.$$completeOutstandingRequest = completeOutstandingRequest; + self.$$incOutstandingRequestCount = function() { outstandingRequestCount++; }; + + /** + * Executes the `fn` function(supports currying) and decrements the `outstandingRequestCallbacks` + * counter. If the counter reaches 0, all the `outstandingRequestCallbacks` are executed. + */ + function completeOutstandingRequest(fn) { + try { + fn.apply(null, sliceArgs(arguments, 1)); + } finally { + outstandingRequestCount--; + if (outstandingRequestCount === 0) { + while (outstandingRequestCallbacks.length) { + try { + outstandingRequestCallbacks.pop()(); + } catch (e) { + $log.error(e); + } + } + } + } + } + + function getHash(url) { + var index = url.indexOf('#'); + return index === -1 ? '' : url.substr(index); + } + + /** + * @private + * Note: this method is used only by scenario runner + * TODO(vojta): prefix this method with $$ ? + * @param {function()} callback Function that will be called when no outstanding request + */ + self.notifyWhenNoOutstandingRequests = function(callback) { + if (outstandingRequestCount === 0) { + callback(); + } else { + outstandingRequestCallbacks.push(callback); + } + }; + + ////////////////////////////////////////////////////////////// + // URL API + ////////////////////////////////////////////////////////////// + + var cachedState, lastHistoryState, + lastBrowserUrl = location.href, + baseElement = document.find('base'), + reloadLocation = null; + + cacheState(); + lastHistoryState = cachedState; + + /** + * @name $browser#url + * + * @description + * GETTER: + * Without any argument, this method just returns current value of location.href. + * + * SETTER: + * With at least one argument, this method sets url to new value. + * If html5 history api supported, pushState/replaceState is used, otherwise + * location.href/location.replace is used. + * Returns its own instance to allow chaining + * + * NOTE: this api is intended for use only by the $location service. Please use the + * {@link ng.$location $location service} to change url. + * + * @param {string} url New url (when used as setter) + * @param {boolean=} replace Should new url replace current history record? + * @param {object=} state object to use with pushState/replaceState + */ + self.url = function(url, replace, state) { + // In modern browsers `history.state` is `null` by default; treating it separately + // from `undefined` would cause `$browser.url('/foo')` to change `history.state` + // to undefined via `pushState`. Instead, let's change `undefined` to `null` here. + if (isUndefined(state)) { + state = null; + } + + // Android Browser BFCache causes location, history reference to become stale. + if (location !== window.location) location = window.location; + if (history !== window.history) history = window.history; + + // setter + if (url) { + var sameState = lastHistoryState === state; + + // Don't change anything if previous and current URLs and states match. This also prevents + // IE<10 from getting into redirect loop when in LocationHashbangInHtml5Url mode. + // See https://github.com/angular/angular.js/commit/ffb2701 + if (lastBrowserUrl === url && (!$sniffer.history || sameState)) { + return self; + } + var sameBase = lastBrowserUrl && stripHash(lastBrowserUrl) === stripHash(url); + lastBrowserUrl = url; + lastHistoryState = state; + // Don't use history API if only the hash changed + // due to a bug in IE10/IE11 which leads + // to not firing a `hashchange` nor `popstate` event + // in some cases (see #9143). + if ($sniffer.history && (!sameBase || !sameState)) { + history[replace ? 'replaceState' : 'pushState'](state, '', url); + cacheState(); + // Do the assignment again so that those two variables are referentially identical. + lastHistoryState = cachedState; + } else { + if (!sameBase || reloadLocation) { + reloadLocation = url; + } + if (replace) { + location.replace(url); + } else if (!sameBase) { + location.href = url; + } else { + location.hash = getHash(url); + } + } + return self; + // getter + } else { + // - reloadLocation is needed as browsers don't allow to read out + // the new location.href if a reload happened. + // - the replacement is a workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=407172 + return reloadLocation || location.href.replace(/%27/g,"'"); + } + }; + + /** + * @name $browser#state + * + * @description + * This method is a getter. + * + * Return history.state or null if history.state is undefined. + * + * @returns {object} state + */ + self.state = function() { + return cachedState; + }; + + var urlChangeListeners = [], + urlChangeInit = false; + + function cacheStateAndFireUrlChange() { + cacheState(); + fireUrlChange(); + } + + function getCurrentState() { + try { + return history.state; + } catch (e) { + // MSIE can reportedly throw when there is no state (UNCONFIRMED). + } + } + + // This variable should be used *only* inside the cacheState function. + var lastCachedState = null; + function cacheState() { + // This should be the only place in $browser where `history.state` is read. + cachedState = getCurrentState(); + cachedState = isUndefined(cachedState) ? null : cachedState; + + // Prevent callbacks fo fire twice if both hashchange & popstate were fired. + if (equals(cachedState, lastCachedState)) { + cachedState = lastCachedState; + } + lastCachedState = cachedState; + } + + function fireUrlChange() { + if (lastBrowserUrl === self.url() && lastHistoryState === cachedState) { + return; + } + + lastBrowserUrl = self.url(); + lastHistoryState = cachedState; + forEach(urlChangeListeners, function(listener) { + listener(self.url(), cachedState); + }); + } + + /** + * @name $browser#onUrlChange + * + * @description + * Register callback function that will be called, when url changes. + * + * It's only called when the url is changed from outside of angular: + * - user types different url into address bar + * - user clicks on history (forward/back) button + * - user clicks on a link + * + * It's not called when url is changed by $browser.url() method + * + * The listener gets called with new url as parameter. + * + * NOTE: this api is intended for use only by the $location service. Please use the + * {@link ng.$location $location service} to monitor url changes in angular apps. + * + * @param {function(string)} listener Listener function to be called when url changes. + * @return {function(string)} Returns the registered listener fn - handy if the fn is anonymous. + */ + self.onUrlChange = function(callback) { + // TODO(vojta): refactor to use node's syntax for events + if (!urlChangeInit) { + // We listen on both (hashchange/popstate) when available, as some browsers (e.g. Opera) + // don't fire popstate when user change the address bar and don't fire hashchange when url + // changed by push/replaceState + + // html5 history api - popstate event + if ($sniffer.history) jqLite(window).on('popstate', cacheStateAndFireUrlChange); + // hashchange event + jqLite(window).on('hashchange', cacheStateAndFireUrlChange); + + urlChangeInit = true; + } + + urlChangeListeners.push(callback); + return callback; + }; + + /** + * @private + * Remove popstate and hashchange handler from window. + * + * NOTE: this api is intended for use only by $rootScope. + */ + self.$$applicationDestroyed = function() { + jqLite(window).off('hashchange popstate', cacheStateAndFireUrlChange); + }; + + /** + * Checks whether the url has changed outside of Angular. + * Needs to be exported to be able to check for changes that have been done in sync, + * as hashchange/popstate events fire in async. + */ + self.$$checkUrlChange = fireUrlChange; + + ////////////////////////////////////////////////////////////// + // Misc API + ////////////////////////////////////////////////////////////// + + /** + * @name $browser#baseHref + * + * @description + * Returns current + * (always relative - without domain) + * + * @returns {string} The current base href + */ + self.baseHref = function() { + var href = baseElement.attr('href'); + return href ? href.replace(/^(https?\:)?\/\/[^\/]*/, '') : ''; + }; + + /** + * @name $browser#defer + * @param {function()} fn A function, who's execution should be deferred. + * @param {number=} [delay=0] of milliseconds to defer the function execution. + * @returns {*} DeferId that can be used to cancel the task via `$browser.defer.cancel()`. + * + * @description + * Executes a fn asynchronously via `setTimeout(fn, delay)`. + * + * Unlike when calling `setTimeout` directly, in test this function is mocked and instead of using + * `setTimeout` in tests, the fns are queued in an array, which can be programmatically flushed + * via `$browser.defer.flush()`. + * + */ + self.defer = function(fn, delay) { + var timeoutId; + outstandingRequestCount++; + timeoutId = setTimeout(function() { + delete pendingDeferIds[timeoutId]; + completeOutstandingRequest(fn); + }, delay || 0); + pendingDeferIds[timeoutId] = true; + return timeoutId; + }; + + + /** + * @name $browser#defer.cancel + * + * @description + * Cancels a deferred task identified with `deferId`. + * + * @param {*} deferId Token returned by the `$browser.defer` function. + * @returns {boolean} Returns `true` if the task hasn't executed yet and was successfully + * canceled. + */ + self.defer.cancel = function(deferId) { + if (pendingDeferIds[deferId]) { + delete pendingDeferIds[deferId]; + clearTimeout(deferId); + completeOutstandingRequest(noop); + return true; + } + return false; + }; + +} + +function $BrowserProvider() { + this.$get = ['$window', '$log', '$sniffer', '$document', + function($window, $log, $sniffer, $document) { + return new Browser($window, $document, $log, $sniffer); + }]; +} + +/** + * @ngdoc service + * @name $cacheFactory + * + * @description + * Factory that constructs {@link $cacheFactory.Cache Cache} objects and gives access to + * them. + * + * ```js + * + * var cache = $cacheFactory('cacheId'); + * expect($cacheFactory.get('cacheId')).toBe(cache); + * expect($cacheFactory.get('noSuchCacheId')).not.toBeDefined(); + * + * cache.put("key", "value"); + * cache.put("another key", "another value"); + * + * // We've specified no options on creation + * expect(cache.info()).toEqual({id: 'cacheId', size: 2}); + * + * ``` + * + * + * @param {string} cacheId Name or id of the newly created cache. + * @param {object=} options Options object that specifies the cache behavior. Properties: + * + * - `{number=}` `capacity` — turns the cache into LRU cache. + * + * @returns {object} Newly created cache object with the following set of methods: + * + * - `{object}` `info()` — Returns id, size, and options of cache. + * - `{{*}}` `put({string} key, {*} value)` — Puts a new key-value pair into the cache and returns + * it. + * - `{{*}}` `get({string} key)` — Returns cached value for `key` or undefined for cache miss. + * - `{void}` `remove({string} key)` — Removes a key-value pair from the cache. + * - `{void}` `removeAll()` — Removes all cached values. + * - `{void}` `destroy()` — Removes references to this cache from $cacheFactory. + * + * @example + + +
    + + + + +

    Cached Values

    +
    + + : + +
    + +

    Cache Info

    +
    + + : + +
    +
    +
    + + angular.module('cacheExampleApp', []). + controller('CacheController', ['$scope', '$cacheFactory', function($scope, $cacheFactory) { + $scope.keys = []; + $scope.cache = $cacheFactory('cacheId'); + $scope.put = function(key, value) { + if ($scope.cache.get(key) === undefined) { + $scope.keys.push(key); + } + $scope.cache.put(key, value === undefined ? null : value); + }; + }]); + + + p { + margin: 10px 0 3px; + } + +
    + */ +function $CacheFactoryProvider() { + + this.$get = function() { + var caches = {}; + + function cacheFactory(cacheId, options) { + if (cacheId in caches) { + throw minErr('$cacheFactory')('iid', "CacheId '{0}' is already taken!", cacheId); + } + + var size = 0, + stats = extend({}, options, {id: cacheId}), + data = {}, + capacity = (options && options.capacity) || Number.MAX_VALUE, + lruHash = {}, + freshEnd = null, + staleEnd = null; + + /** + * @ngdoc type + * @name $cacheFactory.Cache + * + * @description + * A cache object used to store and retrieve data, primarily used by + * {@link $http $http} and the {@link ng.directive:script script} directive to cache + * templates and other data. + * + * ```js + * angular.module('superCache') + * .factory('superCache', ['$cacheFactory', function($cacheFactory) { + * return $cacheFactory('super-cache'); + * }]); + * ``` + * + * Example test: + * + * ```js + * it('should behave like a cache', inject(function(superCache) { + * superCache.put('key', 'value'); + * superCache.put('another key', 'another value'); + * + * expect(superCache.info()).toEqual({ + * id: 'super-cache', + * size: 2 + * }); + * + * superCache.remove('another key'); + * expect(superCache.get('another key')).toBeUndefined(); + * + * superCache.removeAll(); + * expect(superCache.info()).toEqual({ + * id: 'super-cache', + * size: 0 + * }); + * })); + * ``` + */ + return caches[cacheId] = { + + /** + * @ngdoc method + * @name $cacheFactory.Cache#put + * @kind function + * + * @description + * Inserts a named entry into the {@link $cacheFactory.Cache Cache} object to be + * retrieved later, and incrementing the size of the cache if the key was not already + * present in the cache. If behaving like an LRU cache, it will also remove stale + * entries from the set. + * + * It will not insert undefined values into the cache. + * + * @param {string} key the key under which the cached data is stored. + * @param {*} value the value to store alongside the key. If it is undefined, the key + * will not be stored. + * @returns {*} the value stored. + */ + put: function(key, value) { + if (isUndefined(value)) return; + if (capacity < Number.MAX_VALUE) { + var lruEntry = lruHash[key] || (lruHash[key] = {key: key}); + + refresh(lruEntry); + } + + if (!(key in data)) size++; + data[key] = value; + + if (size > capacity) { + this.remove(staleEnd.key); + } + + return value; + }, + + /** + * @ngdoc method + * @name $cacheFactory.Cache#get + * @kind function + * + * @description + * Retrieves named data stored in the {@link $cacheFactory.Cache Cache} object. + * + * @param {string} key the key of the data to be retrieved + * @returns {*} the value stored. + */ + get: function(key) { + if (capacity < Number.MAX_VALUE) { + var lruEntry = lruHash[key]; + + if (!lruEntry) return; + + refresh(lruEntry); + } + + return data[key]; + }, + + + /** + * @ngdoc method + * @name $cacheFactory.Cache#remove + * @kind function + * + * @description + * Removes an entry from the {@link $cacheFactory.Cache Cache} object. + * + * @param {string} key the key of the entry to be removed + */ + remove: function(key) { + if (capacity < Number.MAX_VALUE) { + var lruEntry = lruHash[key]; + + if (!lruEntry) return; + + if (lruEntry == freshEnd) freshEnd = lruEntry.p; + if (lruEntry == staleEnd) staleEnd = lruEntry.n; + link(lruEntry.n,lruEntry.p); + + delete lruHash[key]; + } + + delete data[key]; + size--; + }, + + + /** + * @ngdoc method + * @name $cacheFactory.Cache#removeAll + * @kind function + * + * @description + * Clears the cache object of any entries. + */ + removeAll: function() { + data = {}; + size = 0; + lruHash = {}; + freshEnd = staleEnd = null; + }, + + + /** + * @ngdoc method + * @name $cacheFactory.Cache#destroy + * @kind function + * + * @description + * Destroys the {@link $cacheFactory.Cache Cache} object entirely, + * removing it from the {@link $cacheFactory $cacheFactory} set. + */ + destroy: function() { + data = null; + stats = null; + lruHash = null; + delete caches[cacheId]; + }, + + + /** + * @ngdoc method + * @name $cacheFactory.Cache#info + * @kind function + * + * @description + * Retrieve information regarding a particular {@link $cacheFactory.Cache Cache}. + * + * @returns {object} an object with the following properties: + *
      + *
    • **id**: the id of the cache instance
    • + *
    • **size**: the number of entries kept in the cache instance
    • + *
    • **...**: any additional properties from the options object when creating the + * cache.
    • + *
    + */ + info: function() { + return extend({}, stats, {size: size}); + } + }; + + + /** + * makes the `entry` the freshEnd of the LRU linked list + */ + function refresh(entry) { + if (entry != freshEnd) { + if (!staleEnd) { + staleEnd = entry; + } else if (staleEnd == entry) { + staleEnd = entry.n; + } + + link(entry.n, entry.p); + link(entry, freshEnd); + freshEnd = entry; + freshEnd.n = null; + } + } + + + /** + * bidirectionally links two entries of the LRU linked list + */ + function link(nextEntry, prevEntry) { + if (nextEntry != prevEntry) { + if (nextEntry) nextEntry.p = prevEntry; //p stands for previous, 'prev' didn't minify + if (prevEntry) prevEntry.n = nextEntry; //n stands for next, 'next' didn't minify + } + } + } + + + /** + * @ngdoc method + * @name $cacheFactory#info + * + * @description + * Get information about all the caches that have been created + * + * @returns {Object} - key-value map of `cacheId` to the result of calling `cache#info` + */ + cacheFactory.info = function() { + var info = {}; + forEach(caches, function(cache, cacheId) { + info[cacheId] = cache.info(); + }); + return info; + }; + + + /** + * @ngdoc method + * @name $cacheFactory#get + * + * @description + * Get access to a cache object by the `cacheId` used when it was created. + * + * @param {string} cacheId Name or id of a cache to access. + * @returns {object} Cache object identified by the cacheId or undefined if no such cache. + */ + cacheFactory.get = function(cacheId) { + return caches[cacheId]; + }; + + + return cacheFactory; + }; +} + +/** + * @ngdoc service + * @name $templateCache + * + * @description + * The first time a template is used, it is loaded in the template cache for quick retrieval. You + * can load templates directly into the cache in a `script` tag, or by consuming the + * `$templateCache` service directly. + * + * Adding via the `script` tag: + * + * ```html + * + * ``` + * + * **Note:** the `script` tag containing the template does not need to be included in the `head` of + * the document, but it must be a descendent of the {@link ng.$rootElement $rootElement} (IE, + * element with ng-app attribute), otherwise the template will be ignored. + * + * Adding via the `$templateCache` service: + * + * ```js + * var myApp = angular.module('myApp', []); + * myApp.run(function($templateCache) { + * $templateCache.put('templateId.html', 'This is the content of the template'); + * }); + * ``` + * + * To retrieve the template later, simply use it in your HTML: + * ```html + *
    + * ``` + * + * or get it via Javascript: + * ```js + * $templateCache.get('templateId.html') + * ``` + * + * See {@link ng.$cacheFactory $cacheFactory}. + * + */ +function $TemplateCacheProvider() { + this.$get = ['$cacheFactory', function($cacheFactory) { + return $cacheFactory('templates'); + }]; +} + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* ! VARIABLE/FUNCTION NAMING CONVENTIONS THAT APPLY TO THIS FILE! + * + * DOM-related variables: + * + * - "node" - DOM Node + * - "element" - DOM Element or Node + * - "$node" or "$element" - jqLite-wrapped node or element + * + * + * Compiler related stuff: + * + * - "linkFn" - linking fn of a single directive + * - "nodeLinkFn" - function that aggregates all linking fns for a particular node + * - "childLinkFn" - function that aggregates all linking fns for child nodes of a particular node + * - "compositeLinkFn" - function that aggregates all linking fns for a compilation root (nodeList) + */ + + +/** + * @ngdoc service + * @name $compile + * @kind function + * + * @description + * Compiles an HTML string or DOM into a template and produces a template function, which + * can then be used to link {@link ng.$rootScope.Scope `scope`} and the template together. + * + * The compilation is a process of walking the DOM tree and matching DOM elements to + * {@link ng.$compileProvider#directive directives}. + * + *
    + * **Note:** This document is an in-depth reference of all directive options. + * For a gentle introduction to directives with examples of common use cases, + * see the {@link guide/directive directive guide}. + *
    + * + * ## Comprehensive Directive API + * + * There are many different options for a directive. + * + * The difference resides in the return value of the factory function. + * You can either return a "Directive Definition Object" (see below) that defines the directive properties, + * or just the `postLink` function (all other properties will have the default values). + * + *
    + * **Best Practice:** It's recommended to use the "directive definition object" form. + *
    + * + * Here's an example directive declared with a Directive Definition Object: + * + * ```js + * var myModule = angular.module(...); + * + * myModule.directive('directiveName', function factory(injectables) { + * var directiveDefinitionObject = { + * priority: 0, + * template: '
    ', // or // function(tElement, tAttrs) { ... }, + * // or + * // templateUrl: 'directive.html', // or // function(tElement, tAttrs) { ... }, + * transclude: false, + * restrict: 'A', + * templateNamespace: 'html', + * scope: false, + * controller: function($scope, $element, $attrs, $transclude, otherInjectables) { ... }, + * controllerAs: 'stringIdentifier', + * bindToController: false, + * require: 'siblingDirectiveName', // or // ['^parentDirectiveName', '?optionalDirectiveName', '?^optionalParent'], + * compile: function compile(tElement, tAttrs, transclude) { + * return { + * pre: function preLink(scope, iElement, iAttrs, controller) { ... }, + * post: function postLink(scope, iElement, iAttrs, controller) { ... } + * } + * // or + * // return function postLink( ... ) { ... } + * }, + * // or + * // link: { + * // pre: function preLink(scope, iElement, iAttrs, controller) { ... }, + * // post: function postLink(scope, iElement, iAttrs, controller) { ... } + * // } + * // or + * // link: function postLink( ... ) { ... } + * }; + * return directiveDefinitionObject; + * }); + * ``` + * + *
    + * **Note:** Any unspecified options will use the default value. You can see the default values below. + *
    + * + * Therefore the above can be simplified as: + * + * ```js + * var myModule = angular.module(...); + * + * myModule.directive('directiveName', function factory(injectables) { + * var directiveDefinitionObject = { + * link: function postLink(scope, iElement, iAttrs) { ... } + * }; + * return directiveDefinitionObject; + * // or + * // return function postLink(scope, iElement, iAttrs) { ... } + * }); + * ``` + * + * + * + * ### Directive Definition Object + * + * The directive definition object provides instructions to the {@link ng.$compile + * compiler}. The attributes are: + * + * #### `multiElement` + * When this property is set to true, the HTML compiler will collect DOM nodes between + * nodes with the attributes `directive-name-start` and `directive-name-end`, and group them + * together as the directive elements. It is recommended that this feature be used on directives + * which are not strictly behavioural (such as {@link ngClick}), and which + * do not manipulate or replace child nodes (such as {@link ngInclude}). + * + * #### `priority` + * When there are multiple directives defined on a single DOM element, sometimes it + * is necessary to specify the order in which the directives are applied. The `priority` is used + * to sort the directives before their `compile` functions get called. Priority is defined as a + * number. Directives with greater numerical `priority` are compiled first. Pre-link functions + * are also run in priority order, but post-link functions are run in reverse order. The order + * of directives with the same priority is undefined. The default priority is `0`. + * + * #### `terminal` + * If set to true then the current `priority` will be the last set of directives + * which will execute (any directives at the current priority will still execute + * as the order of execution on same `priority` is undefined). Note that expressions + * and other directives used in the directive's template will also be excluded from execution. + * + * #### `scope` + * **If set to `true`,** then a new scope will be created for this directive. If multiple directives on the + * same element request a new scope, only one new scope is created. The new scope rule does not + * apply for the root of the template since the root of the template always gets a new scope. + * + * **If set to `{}` (object hash),** then a new "isolate" scope is created. The 'isolate' scope differs from + * normal scope in that it does not prototypically inherit from the parent scope. This is useful + * when creating reusable components, which should not accidentally read or modify data in the + * parent scope. + * + * The 'isolate' scope takes an object hash which defines a set of local scope properties + * derived from the parent scope. These local properties are useful for aliasing values for + * templates. Locals definition is a hash of local scope property to its source: + * + * * `@` or `@attr` - bind a local scope property to the value of DOM attribute. The result is + * always a string since DOM attributes are strings. If no `attr` name is specified then the + * attribute name is assumed to be the same as the local name. + * Given `` and widget definition + * of `scope: { localName:'@myAttr' }`, then widget scope property `localName` will reflect + * the interpolated value of `hello {{name}}`. As the `name` attribute changes so will the + * `localName` property on the widget scope. The `name` is read from the parent scope (not + * component scope). + * + * * `=` or `=attr` - set up bi-directional binding between a local scope property and the + * parent scope property of name defined via the value of the `attr` attribute. If no `attr` + * name is specified then the attribute name is assumed to be the same as the local name. + * Given `` and widget definition of + * `scope: { localModel:'=myAttr' }`, then widget scope property `localModel` will reflect the + * value of `parentModel` on the parent scope. Any changes to `parentModel` will be reflected + * in `localModel` and any changes in `localModel` will reflect in `parentModel`. If the parent + * scope property doesn't exist, it will throw a NON_ASSIGNABLE_MODEL_EXPRESSION exception. You + * can avoid this behavior using `=?` or `=?attr` in order to flag the property as optional. If + * you want to shallow watch for changes (i.e. $watchCollection instead of $watch) you can use + * `=*` or `=*attr` (`=*?` or `=*?attr` if the property is optional). + * + * * `&` or `&attr` - provides a way to execute an expression in the context of the parent scope. + * If no `attr` name is specified then the attribute name is assumed to be the same as the + * local name. Given `` and widget definition of + * `scope: { localFn:'&myAttr' }`, then isolate scope property `localFn` will point to + * a function wrapper for the `count = count + value` expression. Often it's desirable to + * pass data from the isolated scope via an expression to the parent scope, this can be + * done by passing a map of local variable names and values into the expression wrapper fn. + * For example, if the expression is `increment(amount)` then we can specify the amount value + * by calling the `localFn` as `localFn({amount: 22})`. + * + * + * #### `bindToController` + * When an isolate scope is used for a component (see above), and `controllerAs` is used, `bindToController: true` will + * allow a component to have its properties bound to the controller, rather than to scope. When the controller + * is instantiated, the initial values of the isolate scope bindings are already available. + * + * #### `controller` + * Controller constructor function. The controller is instantiated before the + * pre-linking phase and it is shared with other directives (see + * `require` attribute). This allows the directives to communicate with each other and augment + * each other's behavior. The controller is injectable (and supports bracket notation) with the following locals: + * + * * `$scope` - Current scope associated with the element + * * `$element` - Current element + * * `$attrs` - Current attributes object for the element + * * `$transclude` - A transclude linking function pre-bound to the correct transclusion scope: + * `function([scope], cloneLinkingFn, futureParentElement)`. + * * `scope`: optional argument to override the scope. + * * `cloneLinkingFn`: optional argument to create clones of the original transcluded content. + * * `futureParentElement`: + * * defines the parent to which the `cloneLinkingFn` will add the cloned elements. + * * default: `$element.parent()` resp. `$element` for `transclude:'element'` resp. `transclude:true`. + * * only needed for transcludes that are allowed to contain non html elements (e.g. SVG elements) + * and when the `cloneLinkinFn` is passed, + * as those elements need to created and cloned in a special way when they are defined outside their + * usual containers (e.g. like ``). + * * See also the `directive.templateNamespace` property. + * + * + * #### `require` + * Require another directive and inject its controller as the fourth argument to the linking function. The + * `require` takes a string name (or array of strings) of the directive(s) to pass in. If an array is used, the + * injected argument will be an array in corresponding order. If no such directive can be + * found, or if the directive does not have a controller, then an error is raised (unless no link function + * is specified, in which case error checking is skipped). The name can be prefixed with: + * + * * (no prefix) - Locate the required controller on the current element. Throw an error if not found. + * * `?` - Attempt to locate the required controller or pass `null` to the `link` fn if not found. + * * `^` - Locate the required controller by searching the element and its parents. Throw an error if not found. + * * `^^` - Locate the required controller by searching the element's parents. Throw an error if not found. + * * `?^` - Attempt to locate the required controller by searching the element and its parents or pass + * `null` to the `link` fn if not found. + * * `?^^` - Attempt to locate the required controller by searching the element's parents, or pass + * `null` to the `link` fn if not found. + * + * + * #### `controllerAs` + * Identifier name for a reference to the controller in the directive's scope. + * This allows the controller to be referenced from the directive template. The directive + * needs to define a scope for this configuration to be used. Useful in the case when + * directive is used as component. + * + * + * #### `restrict` + * String of subset of `EACM` which restricts the directive to a specific directive + * declaration style. If omitted, the defaults (elements and attributes) are used. + * + * * `E` - Element name (default): `` + * * `A` - Attribute (default): `
    ` + * * `C` - Class: `
    ` + * * `M` - Comment: `` + * + * + * #### `templateNamespace` + * String representing the document type used by the markup in the template. + * AngularJS needs this information as those elements need to be created and cloned + * in a special way when they are defined outside their usual containers like `` and ``. + * + * * `html` - All root nodes in the template are HTML. Root nodes may also be + * top-level elements such as `` or ``. + * * `svg` - The root nodes in the template are SVG elements (excluding ``). + * * `math` - The root nodes in the template are MathML elements (excluding ``). + * + * If no `templateNamespace` is specified, then the namespace is considered to be `html`. + * + * #### `template` + * HTML markup that may: + * * Replace the contents of the directive's element (default). + * * Replace the directive's element itself (if `replace` is true - DEPRECATED). + * * Wrap the contents of the directive's element (if `transclude` is true). + * + * Value may be: + * + * * A string. For example `
    {{delete_str}}
    `. + * * A function which takes two arguments `tElement` and `tAttrs` (described in the `compile` + * function api below) and returns a string value. + * + * + * #### `templateUrl` + * This is similar to `template` but the template is loaded from the specified URL, asynchronously. + * + * Because template loading is asynchronous the compiler will suspend compilation of directives on that element + * for later when the template has been resolved. In the meantime it will continue to compile and link + * sibling and parent elements as though this element had not contained any directives. + * + * The compiler does not suspend the entire compilation to wait for templates to be loaded because this + * would result in the whole app "stalling" until all templates are loaded asynchronously - even in the + * case when only one deeply nested directive has `templateUrl`. + * + * Template loading is asynchronous even if the template has been preloaded into the {@link $templateCache} + * + * You can specify `templateUrl` as a string representing the URL or as a function which takes two + * arguments `tElement` and `tAttrs` (described in the `compile` function api below) and returns + * a string value representing the url. In either case, the template URL is passed through {@link + * $sce#getTrustedResourceUrl $sce.getTrustedResourceUrl}. + * + * + * #### `replace` ([*DEPRECATED*!], will be removed in next major release - i.e. v2.0) + * specify what the template should replace. Defaults to `false`. + * + * * `true` - the template will replace the directive's element. + * * `false` - the template will replace the contents of the directive's element. + * + * The replacement process migrates all of the attributes / classes from the old element to the new + * one. See the {@link guide/directive#template-expanding-directive + * Directives Guide} for an example. + * + * There are very few scenarios where element replacement is required for the application function, + * the main one being reusable custom components that are used within SVG contexts + * (because SVG doesn't work with custom elements in the DOM tree). + * + * #### `transclude` + * Extract the contents of the element where the directive appears and make it available to the directive. + * The contents are compiled and provided to the directive as a **transclusion function**. See the + * {@link $compile#transclusion Transclusion} section below. + * + * There are two kinds of transclusion depending upon whether you want to transclude just the contents of the + * directive's element or the entire element: + * + * * `true` - transclude the content (i.e. the child nodes) of the directive's element. + * * `'element'` - transclude the whole of the directive's element including any directives on this + * element that defined at a lower priority than this directive. When used, the `template` + * property is ignored. + * + * + * #### `compile` + * + * ```js + * function compile(tElement, tAttrs, transclude) { ... } + * ``` + * + * The compile function deals with transforming the template DOM. Since most directives do not do + * template transformation, it is not used often. The compile function takes the following arguments: + * + * * `tElement` - template element - The element where the directive has been declared. It is + * safe to do template transformation on the element and child elements only. + * + * * `tAttrs` - template attributes - Normalized list of attributes declared on this element shared + * between all directive compile functions. + * + * * `transclude` - [*DEPRECATED*!] A transclude linking function: `function(scope, cloneLinkingFn)` + * + *
    + * **Note:** The template instance and the link instance may be different objects if the template has + * been cloned. For this reason it is **not** safe to do anything other than DOM transformations that + * apply to all cloned DOM nodes within the compile function. Specifically, DOM listener registration + * should be done in a linking function rather than in a compile function. + *
    + + *
    + * **Note:** The compile function cannot handle directives that recursively use themselves in their + * own templates or compile functions. Compiling these directives results in an infinite loop and a + * stack overflow errors. + * + * This can be avoided by manually using $compile in the postLink function to imperatively compile + * a directive's template instead of relying on automatic template compilation via `template` or + * `templateUrl` declaration or manual compilation inside the compile function. + *
    + * + *
    + * **Note:** The `transclude` function that is passed to the compile function is deprecated, as it + * e.g. does not know about the right outer scope. Please use the transclude function that is passed + * to the link function instead. + *
    + + * A compile function can have a return value which can be either a function or an object. + * + * * returning a (post-link) function - is equivalent to registering the linking function via the + * `link` property of the config object when the compile function is empty. + * + * * returning an object with function(s) registered via `pre` and `post` properties - allows you to + * control when a linking function should be called during the linking phase. See info about + * pre-linking and post-linking functions below. + * + * + * #### `link` + * This property is used only if the `compile` property is not defined. + * + * ```js + * function link(scope, iElement, iAttrs, controller, transcludeFn) { ... } + * ``` + * + * The link function is responsible for registering DOM listeners as well as updating the DOM. It is + * executed after the template has been cloned. This is where most of the directive logic will be + * put. + * + * * `scope` - {@link ng.$rootScope.Scope Scope} - The scope to be used by the + * directive for registering {@link ng.$rootScope.Scope#$watch watches}. + * + * * `iElement` - instance element - The element where the directive is to be used. It is safe to + * manipulate the children of the element only in `postLink` function since the children have + * already been linked. + * + * * `iAttrs` - instance attributes - Normalized list of attributes declared on this element shared + * between all directive linking functions. + * + * * `controller` - the directive's required controller instance(s) - Instances are shared + * among all directives, which allows the directives to use the controllers as a communication + * channel. The exact value depends on the directive's `require` property: + * * no controller(s) required: the directive's own controller, or `undefined` if it doesn't have one + * * `string`: the controller instance + * * `array`: array of controller instances + * + * If a required controller cannot be found, and it is optional, the instance is `null`, + * otherwise the {@link error:$compile:ctreq Missing Required Controller} error is thrown. + * + * Note that you can also require the directive's own controller - it will be made available like + * like any other controller. + * + * * `transcludeFn` - A transclude linking function pre-bound to the correct transclusion scope. + * This is the same as the `$transclude` + * parameter of directive controllers, see there for details. + * `function([scope], cloneLinkingFn, futureParentElement)`. + * + * #### Pre-linking function + * + * Executed before the child elements are linked. Not safe to do DOM transformation since the + * compiler linking function will fail to locate the correct elements for linking. + * + * #### Post-linking function + * + * Executed after the child elements are linked. + * + * Note that child elements that contain `templateUrl` directives will not have been compiled + * and linked since they are waiting for their template to load asynchronously and their own + * compilation and linking has been suspended until that occurs. + * + * It is safe to do DOM transformation in the post-linking function on elements that are not waiting + * for their async templates to be resolved. + * + * + * ### Transclusion + * + * Transclusion is the process of extracting a collection of DOM element from one part of the DOM and + * copying them to another part of the DOM, while maintaining their connection to the original AngularJS + * scope from where they were taken. + * + * Transclusion is used (often with {@link ngTransclude}) to insert the + * original contents of a directive's element into a specified place in the template of the directive. + * The benefit of transclusion, over simply moving the DOM elements manually, is that the transcluded + * content has access to the properties on the scope from which it was taken, even if the directive + * has isolated scope. + * See the {@link guide/directive#creating-a-directive-that-wraps-other-elements Directives Guide}. + * + * This makes it possible for the widget to have private state for its template, while the transcluded + * content has access to its originating scope. + * + *
    + * **Note:** When testing an element transclude directive you must not place the directive at the root of the + * DOM fragment that is being compiled. See {@link guide/unit-testing#testing-transclusion-directives + * Testing Transclusion Directives}. + *
    + * + * #### Transclusion Functions + * + * When a directive requests transclusion, the compiler extracts its contents and provides a **transclusion + * function** to the directive's `link` function and `controller`. This transclusion function is a special + * **linking function** that will return the compiled contents linked to a new transclusion scope. + * + *
    + * If you are just using {@link ngTransclude} then you don't need to worry about this function, since + * ngTransclude will deal with it for us. + *
    + * + * If you want to manually control the insertion and removal of the transcluded content in your directive + * then you must use this transclude function. When you call a transclude function it returns a a jqLite/JQuery + * object that contains the compiled DOM, which is linked to the correct transclusion scope. + * + * When you call a transclusion function you can pass in a **clone attach function**. This function accepts + * two parameters, `function(clone, scope) { ... }`, where the `clone` is a fresh compiled copy of your transcluded + * content and the `scope` is the newly created transclusion scope, to which the clone is bound. + * + *
    + * **Best Practice**: Always provide a `cloneFn` (clone attach function) when you call a translude function + * since you then get a fresh clone of the original DOM and also have access to the new transclusion scope. + *
    + * + * It is normal practice to attach your transcluded content (`clone`) to the DOM inside your **clone + * attach function**: + * + * ```js + * var transcludedContent, transclusionScope; + * + * $transclude(function(clone, scope) { + * element.append(clone); + * transcludedContent = clone; + * transclusionScope = scope; + * }); + * ``` + * + * Later, if you want to remove the transcluded content from your DOM then you should also destroy the + * associated transclusion scope: + * + * ```js + * transcludedContent.remove(); + * transclusionScope.$destroy(); + * ``` + * + *
    + * **Best Practice**: if you intend to add and remove transcluded content manually in your directive + * (by calling the transclude function to get the DOM and calling `element.remove()` to remove it), + * then you are also responsible for calling `$destroy` on the transclusion scope. + *
    + * + * The built-in DOM manipulation directives, such as {@link ngIf}, {@link ngSwitch} and {@link ngRepeat} + * automatically destroy their transluded clones as necessary so you do not need to worry about this if + * you are simply using {@link ngTransclude} to inject the transclusion into your directive. + * + * + * #### Transclusion Scopes + * + * When you call a transclude function it returns a DOM fragment that is pre-bound to a **transclusion + * scope**. This scope is special, in that it is a child of the directive's scope (and so gets destroyed + * when the directive's scope gets destroyed) but it inherits the properties of the scope from which it + * was taken. + * + * For example consider a directive that uses transclusion and isolated scope. The DOM hierarchy might look + * like this: + * + * ```html + *
    + *
    + *
    + *
    + *
    + *
    + * ``` + * + * The `$parent` scope hierarchy will look like this: + * + * ``` + * - $rootScope + * - isolate + * - transclusion + * ``` + * + * but the scopes will inherit prototypically from different scopes to their `$parent`. + * + * ``` + * - $rootScope + * - transclusion + * - isolate + * ``` + * + * + * ### Attributes + * + * The {@link ng.$compile.directive.Attributes Attributes} object - passed as a parameter in the + * `link()` or `compile()` functions. It has a variety of uses. + * + * accessing *Normalized attribute names:* + * Directives like 'ngBind' can be expressed in many ways: 'ng:bind', `data-ng-bind`, or 'x-ng-bind'. + * the attributes object allows for normalized access to + * the attributes. + * + * * *Directive inter-communication:* All directives share the same instance of the attributes + * object which allows the directives to use the attributes object as inter directive + * communication. + * + * * *Supports interpolation:* Interpolation attributes are assigned to the attribute object + * allowing other directives to read the interpolated value. + * + * * *Observing interpolated attributes:* Use `$observe` to observe the value changes of attributes + * that contain interpolation (e.g. `src="{{bar}}"`). Not only is this very efficient but it's also + * the only way to easily get the actual value because during the linking phase the interpolation + * hasn't been evaluated yet and so the value is at this time set to `undefined`. + * + * ```js + * function linkingFn(scope, elm, attrs, ctrl) { + * // get the attribute value + * console.log(attrs.ngModel); + * + * // change the attribute + * attrs.$set('ngModel', 'new value'); + * + * // observe changes to interpolated attribute + * attrs.$observe('ngModel', function(value) { + * console.log('ngModel has changed value to ' + value); + * }); + * } + * ``` + * + * ## Example + * + *
    + * **Note**: Typically directives are registered with `module.directive`. The example below is + * to illustrate how `$compile` works. + *
    + * + + + +
    +
    +
    +
    +
    +
    + + it('should auto compile', function() { + var textarea = $('textarea'); + var output = $('div[compile]'); + // The initial state reads 'Hello Angular'. + expect(output.getText()).toBe('Hello Angular'); + textarea.clear(); + textarea.sendKeys('{{name}}!'); + expect(output.getText()).toBe('Angular!'); + }); + +
    + + * + * + * @param {string|DOMElement} element Element or HTML string to compile into a template function. + * @param {function(angular.Scope, cloneAttachFn=)} transclude function available to directives - DEPRECATED. + * + *
    + * **Note:** Passing a `transclude` function to the $compile function is deprecated, as it + * e.g. will not use the right outer scope. Please pass the transclude function as a + * `parentBoundTranscludeFn` to the link function instead. + *
    + * + * @param {number} maxPriority only apply directives lower than given priority (Only effects the + * root element(s), not their children) + * @returns {function(scope, cloneAttachFn=, options=)} a link function which is used to bind template + * (a DOM element/tree) to a scope. Where: + * + * * `scope` - A {@link ng.$rootScope.Scope Scope} to bind to. + * * `cloneAttachFn` - If `cloneAttachFn` is provided, then the link function will clone the + * `template` and call the `cloneAttachFn` function allowing the caller to attach the + * cloned elements to the DOM document at the appropriate place. The `cloneAttachFn` is + * called as:
    `cloneAttachFn(clonedElement, scope)` where: + * + * * `clonedElement` - is a clone of the original `element` passed into the compiler. + * * `scope` - is the current scope with which the linking function is working with. + * + * * `options` - An optional object hash with linking options. If `options` is provided, then the following + * keys may be used to control linking behavior: + * + * * `parentBoundTranscludeFn` - the transclude function made available to + * directives; if given, it will be passed through to the link functions of + * directives found in `element` during compilation. + * * `transcludeControllers` - an object hash with keys that map controller names + * to controller instances; if given, it will make the controllers + * available to directives. + * * `futureParentElement` - defines the parent to which the `cloneAttachFn` will add + * the cloned elements; only needed for transcludes that are allowed to contain non html + * elements (e.g. SVG elements). See also the directive.controller property. + * + * Calling the linking function returns the element of the template. It is either the original + * element passed in, or the clone of the element if the `cloneAttachFn` is provided. + * + * After linking the view is not updated until after a call to $digest which typically is done by + * Angular automatically. + * + * If you need access to the bound view, there are two ways to do it: + * + * - If you are not asking the linking function to clone the template, create the DOM element(s) + * before you send them to the compiler and keep this reference around. + * ```js + * var element = $compile('

    {{total}}

    ')(scope); + * ``` + * + * - if on the other hand, you need the element to be cloned, the view reference from the original + * example would not point to the clone, but rather to the original template that was cloned. In + * this case, you can access the clone via the cloneAttachFn: + * ```js + * var templateElement = angular.element('

    {{total}}

    '), + * scope = ....; + * + * var clonedElement = $compile(templateElement)(scope, function(clonedElement, scope) { + * //attach the clone to DOM document at the right place + * }); + * + * //now we have reference to the cloned DOM via `clonedElement` + * ``` + * + * + * For information on how the compiler works, see the + * {@link guide/compiler Angular HTML Compiler} section of the Developer Guide. + */ + +var $compileMinErr = minErr('$compile'); + +/** + * @ngdoc provider + * @name $compileProvider + * + * @description + */ +$CompileProvider.$inject = ['$provide', '$$sanitizeUriProvider']; +function $CompileProvider($provide, $$sanitizeUriProvider) { + var hasDirectives = {}, + Suffix = 'Directive', + COMMENT_DIRECTIVE_REGEXP = /^\s*directive\:\s*([\w\-]+)\s+(.*)$/, + CLASS_DIRECTIVE_REGEXP = /(([\w\-]+)(?:\:([^;]+))?;?)/, + ALL_OR_NOTHING_ATTRS = makeMap('ngSrc,ngSrcset,src,srcset'), + REQUIRE_PREFIX_REGEXP = /^(?:(\^\^?)?(\?)?(\^\^?)?)?/; + + // Ref: http://developers.whatwg.org/webappapis.html#event-handler-idl-attributes + // The assumption is that future DOM event attribute names will begin with + // 'on' and be composed of only English letters. + var EVENT_HANDLER_ATTR_REGEXP = /^(on[a-z]+|formaction)$/; + + function parseIsolateBindings(scope, directiveName, isController) { + var LOCAL_REGEXP = /^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/; + + var bindings = {}; + + forEach(scope, function(definition, scopeName) { + var match = definition.match(LOCAL_REGEXP); + + if (!match) { + throw $compileMinErr('iscp', + "Invalid {3} for directive '{0}'." + + " Definition: {... {1}: '{2}' ...}", + directiveName, scopeName, definition, + (isController ? "controller bindings definition" : + "isolate scope definition")); + } + + bindings[scopeName] = { + mode: match[1][0], + collection: match[2] === '*', + optional: match[3] === '?', + attrName: match[4] || scopeName + }; + }); + + return bindings; + } + + function parseDirectiveBindings(directive, directiveName) { + var bindings = { + isolateScope: null, + bindToController: null + }; + if (isObject(directive.scope)) { + if (directive.bindToController === true) { + bindings.bindToController = parseIsolateBindings(directive.scope, + directiveName, true); + bindings.isolateScope = {}; + } else { + bindings.isolateScope = parseIsolateBindings(directive.scope, + directiveName, false); + } + } + if (isObject(directive.bindToController)) { + bindings.bindToController = + parseIsolateBindings(directive.bindToController, directiveName, true); + } + if (isObject(bindings.bindToController)) { + var controller = directive.controller; + var controllerAs = directive.controllerAs; + if (!controller) { + // There is no controller, there may or may not be a controllerAs property + throw $compileMinErr('noctrl', + "Cannot bind to controller without directive '{0}'s controller.", + directiveName); + } else if (!identifierForController(controller, controllerAs)) { + // There is a controller, but no identifier or controllerAs property + throw $compileMinErr('noident', + "Cannot bind to controller without identifier for directive '{0}'.", + directiveName); + } + } + return bindings; + } + + function assertValidDirectiveName(name) { + var letter = name.charAt(0); + if (!letter || letter !== lowercase(letter)) { + throw $compileMinErr('baddir', "Directive name '{0}' is invalid. The first character must be a lowercase letter", name); + } + if (name !== name.trim()) { + throw $compileMinErr('baddir', + "Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces", + name); + } + } + + /** + * @ngdoc method + * @name $compileProvider#directive + * @kind function + * + * @description + * Register a new directive with the compiler. + * + * @param {string|Object} name Name of the directive in camel-case (i.e. ngBind which + * will match as ng-bind), or an object map of directives where the keys are the + * names and the values are the factories. + * @param {Function|Array} directiveFactory An injectable directive factory function. See + * {@link guide/directive} for more info. + * @returns {ng.$compileProvider} Self for chaining. + */ + this.directive = function registerDirective(name, directiveFactory) { + assertNotHasOwnProperty(name, 'directive'); + if (isString(name)) { + assertValidDirectiveName(name); + assertArg(directiveFactory, 'directiveFactory'); + if (!hasDirectives.hasOwnProperty(name)) { + hasDirectives[name] = []; + $provide.factory(name + Suffix, ['$injector', '$exceptionHandler', + function($injector, $exceptionHandler) { + var directives = []; + forEach(hasDirectives[name], function(directiveFactory, index) { + try { + var directive = $injector.invoke(directiveFactory); + if (isFunction(directive)) { + directive = { compile: valueFn(directive) }; + } else if (!directive.compile && directive.link) { + directive.compile = valueFn(directive.link); + } + directive.priority = directive.priority || 0; + directive.index = index; + directive.name = directive.name || name; + directive.require = directive.require || (directive.controller && directive.name); + directive.restrict = directive.restrict || 'EA'; + var bindings = directive.$$bindings = + parseDirectiveBindings(directive, directive.name); + if (isObject(bindings.isolateScope)) { + directive.$$isolateBindings = bindings.isolateScope; + } + directive.$$moduleName = directiveFactory.$$moduleName; + directives.push(directive); + } catch (e) { + $exceptionHandler(e); + } + }); + return directives; + }]); + } + hasDirectives[name].push(directiveFactory); + } else { + forEach(name, reverseParams(registerDirective)); + } + return this; + }; + + + /** + * @ngdoc method + * @name $compileProvider#aHrefSanitizationWhitelist + * @kind function + * + * @description + * Retrieves or overrides the default regular expression that is used for whitelisting of safe + * urls during a[href] sanitization. + * + * The sanitization is a security measure aimed at preventing XSS attacks via html links. + * + * Any url about to be assigned to a[href] via data-binding is first normalized and turned into + * an absolute url. Afterwards, the url is matched against the `aHrefSanitizationWhitelist` + * regular expression. If a match is found, the original url is written into the dom. Otherwise, + * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM. + * + * @param {RegExp=} regexp New regexp to whitelist urls with. + * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for + * chaining otherwise. + */ + this.aHrefSanitizationWhitelist = function(regexp) { + if (isDefined(regexp)) { + $$sanitizeUriProvider.aHrefSanitizationWhitelist(regexp); + return this; + } else { + return $$sanitizeUriProvider.aHrefSanitizationWhitelist(); + } + }; + + + /** + * @ngdoc method + * @name $compileProvider#imgSrcSanitizationWhitelist + * @kind function + * + * @description + * Retrieves or overrides the default regular expression that is used for whitelisting of safe + * urls during img[src] sanitization. + * + * The sanitization is a security measure aimed at prevent XSS attacks via html links. + * + * Any url about to be assigned to img[src] via data-binding is first normalized and turned into + * an absolute url. Afterwards, the url is matched against the `imgSrcSanitizationWhitelist` + * regular expression. If a match is found, the original url is written into the dom. Otherwise, + * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM. + * + * @param {RegExp=} regexp New regexp to whitelist urls with. + * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for + * chaining otherwise. + */ + this.imgSrcSanitizationWhitelist = function(regexp) { + if (isDefined(regexp)) { + $$sanitizeUriProvider.imgSrcSanitizationWhitelist(regexp); + return this; + } else { + return $$sanitizeUriProvider.imgSrcSanitizationWhitelist(); + } + }; + + /** + * @ngdoc method + * @name $compileProvider#debugInfoEnabled + * + * @param {boolean=} enabled update the debugInfoEnabled state if provided, otherwise just return the + * current debugInfoEnabled state + * @returns {*} current value if used as getter or itself (chaining) if used as setter + * + * @kind function + * + * @description + * Call this method to enable/disable various debug runtime information in the compiler such as adding + * binding information and a reference to the current scope on to DOM elements. + * If enabled, the compiler will add the following to DOM elements that have been bound to the scope + * * `ng-binding` CSS class + * * `$binding` data property containing an array of the binding expressions + * + * You may want to disable this in production for a significant performance boost. See + * {@link guide/production#disabling-debug-data Disabling Debug Data} for more. + * + * The default value is true. + */ + var debugInfoEnabled = true; + this.debugInfoEnabled = function(enabled) { + if (isDefined(enabled)) { + debugInfoEnabled = enabled; + return this; + } + return debugInfoEnabled; + }; + + this.$get = [ + '$injector', '$interpolate', '$exceptionHandler', '$templateRequest', '$parse', + '$controller', '$rootScope', '$document', '$sce', '$animate', '$$sanitizeUri', + function($injector, $interpolate, $exceptionHandler, $templateRequest, $parse, + $controller, $rootScope, $document, $sce, $animate, $$sanitizeUri) { + + var Attributes = function(element, attributesToCopy) { + if (attributesToCopy) { + var keys = Object.keys(attributesToCopy); + var i, l, key; + + for (i = 0, l = keys.length; i < l; i++) { + key = keys[i]; + this[key] = attributesToCopy[key]; + } + } else { + this.$attr = {}; + } + + this.$$element = element; + }; + + Attributes.prototype = { + /** + * @ngdoc method + * @name $compile.directive.Attributes#$normalize + * @kind function + * + * @description + * Converts an attribute name (e.g. dash/colon/underscore-delimited string, optionally prefixed with `x-` or + * `data-`) to its normalized, camelCase form. + * + * Also there is special case for Moz prefix starting with upper case letter. + * + * For further information check out the guide on {@link guide/directive#matching-directives Matching Directives} + * + * @param {string} name Name to normalize + */ + $normalize: directiveNormalize, + + + /** + * @ngdoc method + * @name $compile.directive.Attributes#$addClass + * @kind function + * + * @description + * Adds the CSS class value specified by the classVal parameter to the element. If animations + * are enabled then an animation will be triggered for the class addition. + * + * @param {string} classVal The className value that will be added to the element + */ + $addClass: function(classVal) { + if (classVal && classVal.length > 0) { + $animate.addClass(this.$$element, classVal); + } + }, + + /** + * @ngdoc method + * @name $compile.directive.Attributes#$removeClass + * @kind function + * + * @description + * Removes the CSS class value specified by the classVal parameter from the element. If + * animations are enabled then an animation will be triggered for the class removal. + * + * @param {string} classVal The className value that will be removed from the element + */ + $removeClass: function(classVal) { + if (classVal && classVal.length > 0) { + $animate.removeClass(this.$$element, classVal); + } + }, + + /** + * @ngdoc method + * @name $compile.directive.Attributes#$updateClass + * @kind function + * + * @description + * Adds and removes the appropriate CSS class values to the element based on the difference + * between the new and old CSS class values (specified as newClasses and oldClasses). + * + * @param {string} newClasses The current CSS className value + * @param {string} oldClasses The former CSS className value + */ + $updateClass: function(newClasses, oldClasses) { + var toAdd = tokenDifference(newClasses, oldClasses); + if (toAdd && toAdd.length) { + $animate.addClass(this.$$element, toAdd); + } + + var toRemove = tokenDifference(oldClasses, newClasses); + if (toRemove && toRemove.length) { + $animate.removeClass(this.$$element, toRemove); + } + }, + + /** + * Set a normalized attribute on the element in a way such that all directives + * can share the attribute. This function properly handles boolean attributes. + * @param {string} key Normalized key. (ie ngAttribute) + * @param {string|boolean} value The value to set. If `null` attribute will be deleted. + * @param {boolean=} writeAttr If false, does not write the value to DOM element attribute. + * Defaults to true. + * @param {string=} attrName Optional none normalized name. Defaults to key. + */ + $set: function(key, value, writeAttr, attrName) { + // TODO: decide whether or not to throw an error if "class" + //is set through this function since it may cause $updateClass to + //become unstable. + + var node = this.$$element[0], + booleanKey = getBooleanAttrName(node, key), + aliasedKey = getAliasedAttrName(node, key), + observer = key, + nodeName; + + if (booleanKey) { + this.$$element.prop(key, value); + attrName = booleanKey; + } else if (aliasedKey) { + this[aliasedKey] = value; + observer = aliasedKey; + } + + this[key] = value; + + // translate normalized key to actual key + if (attrName) { + this.$attr[key] = attrName; + } else { + attrName = this.$attr[key]; + if (!attrName) { + this.$attr[key] = attrName = snake_case(key, '-'); + } + } + + nodeName = nodeName_(this.$$element); + + if ((nodeName === 'a' && key === 'href') || + (nodeName === 'img' && key === 'src')) { + // sanitize a[href] and img[src] values + this[key] = value = $$sanitizeUri(value, key === 'src'); + } else if (nodeName === 'img' && key === 'srcset') { + // sanitize img[srcset] values + var result = ""; + + // first check if there are spaces because it's not the same pattern + var trimmedSrcset = trim(value); + // ( 999x ,| 999w ,| ,|, ) + var srcPattern = /(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/; + var pattern = /\s/.test(trimmedSrcset) ? srcPattern : /(,)/; + + // split srcset into tuple of uri and descriptor except for the last item + var rawUris = trimmedSrcset.split(pattern); + + // for each tuples + var nbrUrisWith2parts = Math.floor(rawUris.length / 2); + for (var i = 0; i < nbrUrisWith2parts; i++) { + var innerIdx = i * 2; + // sanitize the uri + result += $$sanitizeUri(trim(rawUris[innerIdx]), true); + // add the descriptor + result += (" " + trim(rawUris[innerIdx + 1])); + } + + // split the last item into uri and descriptor + var lastTuple = trim(rawUris[i * 2]).split(/\s/); + + // sanitize the last uri + result += $$sanitizeUri(trim(lastTuple[0]), true); + + // and add the last descriptor if any + if (lastTuple.length === 2) { + result += (" " + trim(lastTuple[1])); + } + this[key] = value = result; + } + + if (writeAttr !== false) { + if (value === null || value === undefined) { + this.$$element.removeAttr(attrName); + } else { + this.$$element.attr(attrName, value); + } + } + + // fire observers + var $$observers = this.$$observers; + $$observers && forEach($$observers[observer], function(fn) { + try { + fn(value); + } catch (e) { + $exceptionHandler(e); + } + }); + }, + + + /** + * @ngdoc method + * @name $compile.directive.Attributes#$observe + * @kind function + * + * @description + * Observes an interpolated attribute. + * + * The observer function will be invoked once during the next `$digest` following + * compilation. The observer is then invoked whenever the interpolated value + * changes. + * + * @param {string} key Normalized key. (ie ngAttribute) . + * @param {function(interpolatedValue)} fn Function that will be called whenever + the interpolated value of the attribute changes. + * See the {@link guide/directive#text-and-attribute-bindings Directives} guide for more info. + * @returns {function()} Returns a deregistration function for this observer. + */ + $observe: function(key, fn) { + var attrs = this, + $$observers = (attrs.$$observers || (attrs.$$observers = createMap())), + listeners = ($$observers[key] || ($$observers[key] = [])); + + listeners.push(fn); + $rootScope.$evalAsync(function() { + if (!listeners.$$inter && attrs.hasOwnProperty(key)) { + // no one registered attribute interpolation function, so lets call it manually + fn(attrs[key]); + } + }); + + return function() { + arrayRemove(listeners, fn); + }; + } + }; + + + function safeAddClass($element, className) { + try { + $element.addClass(className); + } catch (e) { + // ignore, since it means that we are trying to set class on + // SVG element, where class name is read-only. + } + } + + + var startSymbol = $interpolate.startSymbol(), + endSymbol = $interpolate.endSymbol(), + denormalizeTemplate = (startSymbol == '{{' || endSymbol == '}}') + ? identity + : function denormalizeTemplate(template) { + return template.replace(/\{\{/g, startSymbol).replace(/}}/g, endSymbol); + }, + NG_ATTR_BINDING = /^ngAttr[A-Z]/; + + compile.$$addBindingInfo = debugInfoEnabled ? function $$addBindingInfo($element, binding) { + var bindings = $element.data('$binding') || []; + + if (isArray(binding)) { + bindings = bindings.concat(binding); + } else { + bindings.push(binding); + } + + $element.data('$binding', bindings); + } : noop; + + compile.$$addBindingClass = debugInfoEnabled ? function $$addBindingClass($element) { + safeAddClass($element, 'ng-binding'); + } : noop; + + compile.$$addScopeInfo = debugInfoEnabled ? function $$addScopeInfo($element, scope, isolated, noTemplate) { + var dataName = isolated ? (noTemplate ? '$isolateScopeNoTemplate' : '$isolateScope') : '$scope'; + $element.data(dataName, scope); + } : noop; + + compile.$$addScopeClass = debugInfoEnabled ? function $$addScopeClass($element, isolated) { + safeAddClass($element, isolated ? 'ng-isolate-scope' : 'ng-scope'); + } : noop; + + return compile; + + //================================ + + function compile($compileNodes, transcludeFn, maxPriority, ignoreDirective, + previousCompileContext) { + if (!($compileNodes instanceof jqLite)) { + // jquery always rewraps, whereas we need to preserve the original selector so that we can + // modify it. + $compileNodes = jqLite($compileNodes); + } + // We can not compile top level text elements since text nodes can be merged and we will + // not be able to attach scope data to them, so we will wrap them in + forEach($compileNodes, function(node, index) { + if (node.nodeType == NODE_TYPE_TEXT && node.nodeValue.match(/\S+/) /* non-empty */ ) { + $compileNodes[index] = jqLite(node).wrap('').parent()[0]; + } + }); + var compositeLinkFn = + compileNodes($compileNodes, transcludeFn, $compileNodes, + maxPriority, ignoreDirective, previousCompileContext); + compile.$$addScopeClass($compileNodes); + var namespace = null; + return function publicLinkFn(scope, cloneConnectFn, options) { + assertArg(scope, 'scope'); + + options = options || {}; + var parentBoundTranscludeFn = options.parentBoundTranscludeFn, + transcludeControllers = options.transcludeControllers, + futureParentElement = options.futureParentElement; + + // When `parentBoundTranscludeFn` is passed, it is a + // `controllersBoundTransclude` function (it was previously passed + // as `transclude` to directive.link) so we must unwrap it to get + // its `boundTranscludeFn` + if (parentBoundTranscludeFn && parentBoundTranscludeFn.$$boundTransclude) { + parentBoundTranscludeFn = parentBoundTranscludeFn.$$boundTransclude; + } + + if (!namespace) { + namespace = detectNamespaceForChildElements(futureParentElement); + } + var $linkNode; + if (namespace !== 'html') { + // When using a directive with replace:true and templateUrl the $compileNodes + // (or a child element inside of them) + // might change, so we need to recreate the namespace adapted compileNodes + // for call to the link function. + // Note: This will already clone the nodes... + $linkNode = jqLite( + wrapTemplate(namespace, jqLite('
    ').append($compileNodes).html()) + ); + } else if (cloneConnectFn) { + // important!!: we must call our jqLite.clone() since the jQuery one is trying to be smart + // and sometimes changes the structure of the DOM. + $linkNode = JQLitePrototype.clone.call($compileNodes); + } else { + $linkNode = $compileNodes; + } + + if (transcludeControllers) { + for (var controllerName in transcludeControllers) { + $linkNode.data('$' + controllerName + 'Controller', transcludeControllers[controllerName].instance); + } + } + + compile.$$addScopeInfo($linkNode, scope); + + if (cloneConnectFn) cloneConnectFn($linkNode, scope); + if (compositeLinkFn) compositeLinkFn(scope, $linkNode, $linkNode, parentBoundTranscludeFn); + return $linkNode; + }; + } + + function detectNamespaceForChildElements(parentElement) { + // TODO: Make this detect MathML as well... + var node = parentElement && parentElement[0]; + if (!node) { + return 'html'; + } else { + return nodeName_(node) !== 'foreignobject' && node.toString().match(/SVG/) ? 'svg' : 'html'; + } + } + + /** + * Compile function matches each node in nodeList against the directives. Once all directives + * for a particular node are collected their compile functions are executed. The compile + * functions return values - the linking functions - are combined into a composite linking + * function, which is the a linking function for the node. + * + * @param {NodeList} nodeList an array of nodes or NodeList to compile + * @param {function(angular.Scope, cloneAttachFn=)} transcludeFn A linking function, where the + * scope argument is auto-generated to the new child of the transcluded parent scope. + * @param {DOMElement=} $rootElement If the nodeList is the root of the compilation tree then + * the rootElement must be set the jqLite collection of the compile root. This is + * needed so that the jqLite collection items can be replaced with widgets. + * @param {number=} maxPriority Max directive priority. + * @returns {Function} A composite linking function of all of the matched directives or null. + */ + function compileNodes(nodeList, transcludeFn, $rootElement, maxPriority, ignoreDirective, + previousCompileContext) { + var linkFns = [], + attrs, directives, nodeLinkFn, childNodes, childLinkFn, linkFnFound, nodeLinkFnFound; + + for (var i = 0; i < nodeList.length; i++) { + attrs = new Attributes(); + + // we must always refer to nodeList[i] since the nodes can be replaced underneath us. + directives = collectDirectives(nodeList[i], [], attrs, i === 0 ? maxPriority : undefined, + ignoreDirective); + + nodeLinkFn = (directives.length) + ? applyDirectivesToNode(directives, nodeList[i], attrs, transcludeFn, $rootElement, + null, [], [], previousCompileContext) + : null; + + if (nodeLinkFn && nodeLinkFn.scope) { + compile.$$addScopeClass(attrs.$$element); + } + + childLinkFn = (nodeLinkFn && nodeLinkFn.terminal || + !(childNodes = nodeList[i].childNodes) || + !childNodes.length) + ? null + : compileNodes(childNodes, + nodeLinkFn ? ( + (nodeLinkFn.transcludeOnThisElement || !nodeLinkFn.templateOnThisElement) + && nodeLinkFn.transclude) : transcludeFn); + + if (nodeLinkFn || childLinkFn) { + linkFns.push(i, nodeLinkFn, childLinkFn); + linkFnFound = true; + nodeLinkFnFound = nodeLinkFnFound || nodeLinkFn; + } + + //use the previous context only for the first element in the virtual group + previousCompileContext = null; + } + + // return a linking function if we have found anything, null otherwise + return linkFnFound ? compositeLinkFn : null; + + function compositeLinkFn(scope, nodeList, $rootElement, parentBoundTranscludeFn) { + var nodeLinkFn, childLinkFn, node, childScope, i, ii, idx, childBoundTranscludeFn; + var stableNodeList; + + + if (nodeLinkFnFound) { + // copy nodeList so that if a nodeLinkFn removes or adds an element at this DOM level our + // offsets don't get screwed up + var nodeListLength = nodeList.length; + stableNodeList = new Array(nodeListLength); + + // create a sparse array by only copying the elements which have a linkFn + for (i = 0; i < linkFns.length; i+=3) { + idx = linkFns[i]; + stableNodeList[idx] = nodeList[idx]; + } + } else { + stableNodeList = nodeList; + } + + for (i = 0, ii = linkFns.length; i < ii;) { + node = stableNodeList[linkFns[i++]]; + nodeLinkFn = linkFns[i++]; + childLinkFn = linkFns[i++]; + + if (nodeLinkFn) { + if (nodeLinkFn.scope) { + childScope = scope.$new(); + compile.$$addScopeInfo(jqLite(node), childScope); + var destroyBindings = nodeLinkFn.$$destroyBindings; + if (destroyBindings) { + nodeLinkFn.$$destroyBindings = null; + childScope.$on('$destroyed', destroyBindings); + } + } else { + childScope = scope; + } + + if (nodeLinkFn.transcludeOnThisElement) { + childBoundTranscludeFn = createBoundTranscludeFn( + scope, nodeLinkFn.transclude, parentBoundTranscludeFn); + + } else if (!nodeLinkFn.templateOnThisElement && parentBoundTranscludeFn) { + childBoundTranscludeFn = parentBoundTranscludeFn; + + } else if (!parentBoundTranscludeFn && transcludeFn) { + childBoundTranscludeFn = createBoundTranscludeFn(scope, transcludeFn); + + } else { + childBoundTranscludeFn = null; + } + + nodeLinkFn(childLinkFn, childScope, node, $rootElement, childBoundTranscludeFn, + nodeLinkFn); + + } else if (childLinkFn) { + childLinkFn(scope, node.childNodes, undefined, parentBoundTranscludeFn); + } + } + } + } + + function createBoundTranscludeFn(scope, transcludeFn, previousBoundTranscludeFn) { + + var boundTranscludeFn = function(transcludedScope, cloneFn, controllers, futureParentElement, containingScope) { + + if (!transcludedScope) { + transcludedScope = scope.$new(false, containingScope); + transcludedScope.$$transcluded = true; + } + + return transcludeFn(transcludedScope, cloneFn, { + parentBoundTranscludeFn: previousBoundTranscludeFn, + transcludeControllers: controllers, + futureParentElement: futureParentElement + }); + }; + + return boundTranscludeFn; + } + + /** + * Looks for directives on the given node and adds them to the directive collection which is + * sorted. + * + * @param node Node to search. + * @param directives An array to which the directives are added to. This array is sorted before + * the function returns. + * @param attrs The shared attrs object which is used to populate the normalized attributes. + * @param {number=} maxPriority Max directive priority. + */ + function collectDirectives(node, directives, attrs, maxPriority, ignoreDirective) { + var nodeType = node.nodeType, + attrsMap = attrs.$attr, + match, + className; + + switch (nodeType) { + case NODE_TYPE_ELEMENT: /* Element */ + // use the node name: + addDirective(directives, + directiveNormalize(nodeName_(node)), 'E', maxPriority, ignoreDirective); + + // iterate over the attributes + for (var attr, name, nName, ngAttrName, value, isNgAttr, nAttrs = node.attributes, + j = 0, jj = nAttrs && nAttrs.length; j < jj; j++) { + var attrStartName = false; + var attrEndName = false; + + attr = nAttrs[j]; + name = attr.name; + value = trim(attr.value); + + // support ngAttr attribute binding + ngAttrName = directiveNormalize(name); + if (isNgAttr = NG_ATTR_BINDING.test(ngAttrName)) { + name = name.replace(PREFIX_REGEXP, '') + .substr(8).replace(/_(.)/g, function(match, letter) { + return letter.toUpperCase(); + }); + } + + var directiveNName = ngAttrName.replace(/(Start|End)$/, ''); + if (directiveIsMultiElement(directiveNName)) { + if (ngAttrName === directiveNName + 'Start') { + attrStartName = name; + attrEndName = name.substr(0, name.length - 5) + 'end'; + name = name.substr(0, name.length - 6); + } + } + + nName = directiveNormalize(name.toLowerCase()); + attrsMap[nName] = name; + if (isNgAttr || !attrs.hasOwnProperty(nName)) { + attrs[nName] = value; + if (getBooleanAttrName(node, nName)) { + attrs[nName] = true; // presence means true + } + } + addAttrInterpolateDirective(node, directives, value, nName, isNgAttr); + addDirective(directives, nName, 'A', maxPriority, ignoreDirective, attrStartName, + attrEndName); + } + + // use class as directive + className = node.className; + if (isObject(className)) { + // Maybe SVGAnimatedString + className = className.animVal; + } + if (isString(className) && className !== '') { + while (match = CLASS_DIRECTIVE_REGEXP.exec(className)) { + nName = directiveNormalize(match[2]); + if (addDirective(directives, nName, 'C', maxPriority, ignoreDirective)) { + attrs[nName] = trim(match[3]); + } + className = className.substr(match.index + match[0].length); + } + } + break; + case NODE_TYPE_TEXT: /* Text Node */ + if (msie === 11) { + // Workaround for #11781 + while (node.parentNode && node.nextSibling && node.nextSibling.nodeType === NODE_TYPE_TEXT) { + node.nodeValue = node.nodeValue + node.nextSibling.nodeValue; + node.parentNode.removeChild(node.nextSibling); + } + } + addTextInterpolateDirective(directives, node.nodeValue); + break; + case NODE_TYPE_COMMENT: /* Comment */ + try { + match = COMMENT_DIRECTIVE_REGEXP.exec(node.nodeValue); + if (match) { + nName = directiveNormalize(match[1]); + if (addDirective(directives, nName, 'M', maxPriority, ignoreDirective)) { + attrs[nName] = trim(match[2]); + } + } + } catch (e) { + // turns out that under some circumstances IE9 throws errors when one attempts to read + // comment's node value. + // Just ignore it and continue. (Can't seem to reproduce in test case.) + } + break; + } + + directives.sort(byPriority); + return directives; + } + + /** + * Given a node with an directive-start it collects all of the siblings until it finds + * directive-end. + * @param node + * @param attrStart + * @param attrEnd + * @returns {*} + */ + function groupScan(node, attrStart, attrEnd) { + var nodes = []; + var depth = 0; + if (attrStart && node.hasAttribute && node.hasAttribute(attrStart)) { + do { + if (!node) { + throw $compileMinErr('uterdir', + "Unterminated attribute, found '{0}' but no matching '{1}' found.", + attrStart, attrEnd); + } + if (node.nodeType == NODE_TYPE_ELEMENT) { + if (node.hasAttribute(attrStart)) depth++; + if (node.hasAttribute(attrEnd)) depth--; + } + nodes.push(node); + node = node.nextSibling; + } while (depth > 0); + } else { + nodes.push(node); + } + + return jqLite(nodes); + } + + /** + * Wrapper for linking function which converts normal linking function into a grouped + * linking function. + * @param linkFn + * @param attrStart + * @param attrEnd + * @returns {Function} + */ + function groupElementsLinkFnWrapper(linkFn, attrStart, attrEnd) { + return function(scope, element, attrs, controllers, transcludeFn) { + element = groupScan(element[0], attrStart, attrEnd); + return linkFn(scope, element, attrs, controllers, transcludeFn); + }; + } + + /** + * Once the directives have been collected, their compile functions are executed. This method + * is responsible for inlining directive templates as well as terminating the application + * of the directives if the terminal directive has been reached. + * + * @param {Array} directives Array of collected directives to execute their compile function. + * this needs to be pre-sorted by priority order. + * @param {Node} compileNode The raw DOM node to apply the compile functions to + * @param {Object} templateAttrs The shared attribute function + * @param {function(angular.Scope, cloneAttachFn=)} transcludeFn A linking function, where the + * scope argument is auto-generated to the new + * child of the transcluded parent scope. + * @param {JQLite} jqCollection If we are working on the root of the compile tree then this + * argument has the root jqLite array so that we can replace nodes + * on it. + * @param {Object=} originalReplaceDirective An optional directive that will be ignored when + * compiling the transclusion. + * @param {Array.} preLinkFns + * @param {Array.} postLinkFns + * @param {Object} previousCompileContext Context used for previous compilation of the current + * node + * @returns {Function} linkFn + */ + function applyDirectivesToNode(directives, compileNode, templateAttrs, transcludeFn, + jqCollection, originalReplaceDirective, preLinkFns, postLinkFns, + previousCompileContext) { + previousCompileContext = previousCompileContext || {}; + + var terminalPriority = -Number.MAX_VALUE, + newScopeDirective = previousCompileContext.newScopeDirective, + controllerDirectives = previousCompileContext.controllerDirectives, + newIsolateScopeDirective = previousCompileContext.newIsolateScopeDirective, + templateDirective = previousCompileContext.templateDirective, + nonTlbTranscludeDirective = previousCompileContext.nonTlbTranscludeDirective, + hasTranscludeDirective = false, + hasTemplate = false, + hasElementTranscludeDirective = previousCompileContext.hasElementTranscludeDirective, + $compileNode = templateAttrs.$$element = jqLite(compileNode), + directive, + directiveName, + $template, + replaceDirective = originalReplaceDirective, + childTranscludeFn = transcludeFn, + linkFn, + directiveValue; + + // executes all directives on the current element + for (var i = 0, ii = directives.length; i < ii; i++) { + directive = directives[i]; + var attrStart = directive.$$start; + var attrEnd = directive.$$end; + + // collect multiblock sections + if (attrStart) { + $compileNode = groupScan(compileNode, attrStart, attrEnd); + } + $template = undefined; + + if (terminalPriority > directive.priority) { + break; // prevent further processing of directives + } + + if (directiveValue = directive.scope) { + + // skip the check for directives with async templates, we'll check the derived sync + // directive when the template arrives + if (!directive.templateUrl) { + if (isObject(directiveValue)) { + // This directive is trying to add an isolated scope. + // Check that there is no scope of any kind already + assertNoDuplicate('new/isolated scope', newIsolateScopeDirective || newScopeDirective, + directive, $compileNode); + newIsolateScopeDirective = directive; + } else { + // This directive is trying to add a child scope. + // Check that there is no isolated scope already + assertNoDuplicate('new/isolated scope', newIsolateScopeDirective, directive, + $compileNode); + } + } + + newScopeDirective = newScopeDirective || directive; + } + + directiveName = directive.name; + + if (!directive.templateUrl && directive.controller) { + directiveValue = directive.controller; + controllerDirectives = controllerDirectives || createMap(); + assertNoDuplicate("'" + directiveName + "' controller", + controllerDirectives[directiveName], directive, $compileNode); + controllerDirectives[directiveName] = directive; + } + + if (directiveValue = directive.transclude) { + hasTranscludeDirective = true; + + // Special case ngIf and ngRepeat so that we don't complain about duplicate transclusion. + // This option should only be used by directives that know how to safely handle element transclusion, + // where the transcluded nodes are added or replaced after linking. + if (!directive.$$tlb) { + assertNoDuplicate('transclusion', nonTlbTranscludeDirective, directive, $compileNode); + nonTlbTranscludeDirective = directive; + } + + if (directiveValue == 'element') { + hasElementTranscludeDirective = true; + terminalPriority = directive.priority; + $template = $compileNode; + $compileNode = templateAttrs.$$element = + jqLite(document.createComment(' ' + directiveName + ': ' + + templateAttrs[directiveName] + ' ')); + compileNode = $compileNode[0]; + replaceWith(jqCollection, sliceArgs($template), compileNode); + + childTranscludeFn = compile($template, transcludeFn, terminalPriority, + replaceDirective && replaceDirective.name, { + // Don't pass in: + // - controllerDirectives - otherwise we'll create duplicates controllers + // - newIsolateScopeDirective or templateDirective - combining templates with + // element transclusion doesn't make sense. + // + // We need only nonTlbTranscludeDirective so that we prevent putting transclusion + // on the same element more than once. + nonTlbTranscludeDirective: nonTlbTranscludeDirective + }); + } else { + $template = jqLite(jqLiteClone(compileNode)).contents(); + $compileNode.empty(); // clear contents + childTranscludeFn = compile($template, transcludeFn); + } + } + + if (directive.template) { + hasTemplate = true; + assertNoDuplicate('template', templateDirective, directive, $compileNode); + templateDirective = directive; + + directiveValue = (isFunction(directive.template)) + ? directive.template($compileNode, templateAttrs) + : directive.template; + + directiveValue = denormalizeTemplate(directiveValue); + + if (directive.replace) { + replaceDirective = directive; + if (jqLiteIsTextNode(directiveValue)) { + $template = []; + } else { + $template = removeComments(wrapTemplate(directive.templateNamespace, trim(directiveValue))); + } + compileNode = $template[0]; + + if ($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT) { + throw $compileMinErr('tplrt', + "Template for directive '{0}' must have exactly one root element. {1}", + directiveName, ''); + } + + replaceWith(jqCollection, $compileNode, compileNode); + + var newTemplateAttrs = {$attr: {}}; + + // combine directives from the original node and from the template: + // - take the array of directives for this element + // - split it into two parts, those that already applied (processed) and those that weren't (unprocessed) + // - collect directives from the template and sort them by priority + // - combine directives as: processed + template + unprocessed + var templateDirectives = collectDirectives(compileNode, [], newTemplateAttrs); + var unprocessedDirectives = directives.splice(i + 1, directives.length - (i + 1)); + + if (newIsolateScopeDirective) { + markDirectivesAsIsolate(templateDirectives); + } + directives = directives.concat(templateDirectives).concat(unprocessedDirectives); + mergeTemplateAttributes(templateAttrs, newTemplateAttrs); + + ii = directives.length; + } else { + $compileNode.html(directiveValue); + } + } + + if (directive.templateUrl) { + hasTemplate = true; + assertNoDuplicate('template', templateDirective, directive, $compileNode); + templateDirective = directive; + + if (directive.replace) { + replaceDirective = directive; + } + + nodeLinkFn = compileTemplateUrl(directives.splice(i, directives.length - i), $compileNode, + templateAttrs, jqCollection, hasTranscludeDirective && childTranscludeFn, preLinkFns, postLinkFns, { + controllerDirectives: controllerDirectives, + newScopeDirective: (newScopeDirective !== directive) && newScopeDirective, + newIsolateScopeDirective: newIsolateScopeDirective, + templateDirective: templateDirective, + nonTlbTranscludeDirective: nonTlbTranscludeDirective + }); + ii = directives.length; + } else if (directive.compile) { + try { + linkFn = directive.compile($compileNode, templateAttrs, childTranscludeFn); + if (isFunction(linkFn)) { + addLinkFns(null, linkFn, attrStart, attrEnd); + } else if (linkFn) { + addLinkFns(linkFn.pre, linkFn.post, attrStart, attrEnd); + } + } catch (e) { + $exceptionHandler(e, startingTag($compileNode)); + } + } + + if (directive.terminal) { + nodeLinkFn.terminal = true; + terminalPriority = Math.max(terminalPriority, directive.priority); + } + + } + + nodeLinkFn.scope = newScopeDirective && newScopeDirective.scope === true; + nodeLinkFn.transcludeOnThisElement = hasTranscludeDirective; + nodeLinkFn.templateOnThisElement = hasTemplate; + nodeLinkFn.transclude = childTranscludeFn; + + previousCompileContext.hasElementTranscludeDirective = hasElementTranscludeDirective; + + // might be normal or delayed nodeLinkFn depending on if templateUrl is present + return nodeLinkFn; + + //////////////////// + + function addLinkFns(pre, post, attrStart, attrEnd) { + if (pre) { + if (attrStart) pre = groupElementsLinkFnWrapper(pre, attrStart, attrEnd); + pre.require = directive.require; + pre.directiveName = directiveName; + if (newIsolateScopeDirective === directive || directive.$$isolateScope) { + pre = cloneAndAnnotateFn(pre, {isolateScope: true}); + } + preLinkFns.push(pre); + } + if (post) { + if (attrStart) post = groupElementsLinkFnWrapper(post, attrStart, attrEnd); + post.require = directive.require; + post.directiveName = directiveName; + if (newIsolateScopeDirective === directive || directive.$$isolateScope) { + post = cloneAndAnnotateFn(post, {isolateScope: true}); + } + postLinkFns.push(post); + } + } + + + function getControllers(directiveName, require, $element, elementControllers) { + var value; + + if (isString(require)) { + var match = require.match(REQUIRE_PREFIX_REGEXP); + var name = require.substring(match[0].length); + var inheritType = match[1] || match[3]; + var optional = match[2] === '?'; + + //If only parents then start at the parent element + if (inheritType === '^^') { + $element = $element.parent(); + //Otherwise attempt getting the controller from elementControllers in case + //the element is transcluded (and has no data) and to avoid .data if possible + } else { + value = elementControllers && elementControllers[name]; + value = value && value.instance; + } + + if (!value) { + var dataName = '$' + name + 'Controller'; + value = inheritType ? $element.inheritedData(dataName) : $element.data(dataName); + } + + if (!value && !optional) { + throw $compileMinErr('ctreq', + "Controller '{0}', required by directive '{1}', can't be found!", + name, directiveName); + } + } else if (isArray(require)) { + value = []; + for (var i = 0, ii = require.length; i < ii; i++) { + value[i] = getControllers(directiveName, require[i], $element, elementControllers); + } + } + + return value || null; + } + + function setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope) { + var elementControllers = createMap(); + for (var controllerKey in controllerDirectives) { + var directive = controllerDirectives[controllerKey]; + var locals = { + $scope: directive === newIsolateScopeDirective || directive.$$isolateScope ? isolateScope : scope, + $element: $element, + $attrs: attrs, + $transclude: transcludeFn + }; + + var controller = directive.controller; + if (controller == '@') { + controller = attrs[directive.name]; + } + + var controllerInstance = $controller(controller, locals, true, directive.controllerAs); + + // For directives with element transclusion the element is a comment, + // but jQuery .data doesn't support attaching data to comment nodes as it's hard to + // clean up (http://bugs.jquery.com/ticket/8335). + // Instead, we save the controllers for the element in a local hash and attach to .data + // later, once we have the actual element. + elementControllers[directive.name] = controllerInstance; + if (!hasElementTranscludeDirective) { + $element.data('$' + directive.name + 'Controller', controllerInstance.instance); + } + } + return elementControllers; + } + + function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn, + thisLinkFn) { + var i, ii, linkFn, controller, isolateScope, elementControllers, transcludeFn, $element, + attrs; + + if (compileNode === linkNode) { + attrs = templateAttrs; + $element = templateAttrs.$$element; + } else { + $element = jqLite(linkNode); + attrs = new Attributes($element, templateAttrs); + } + + if (newIsolateScopeDirective) { + isolateScope = scope.$new(true); + } + + if (boundTranscludeFn) { + // track `boundTranscludeFn` so it can be unwrapped if `transcludeFn` + // is later passed as `parentBoundTranscludeFn` to `publicLinkFn` + transcludeFn = controllersBoundTransclude; + transcludeFn.$$boundTransclude = boundTranscludeFn; + } + + if (controllerDirectives) { + elementControllers = setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope); + } + + if (newIsolateScopeDirective) { + // Initialize isolate scope bindings for new isolate scope directive. + compile.$$addScopeInfo($element, isolateScope, true, !(templateDirective && (templateDirective === newIsolateScopeDirective || + templateDirective === newIsolateScopeDirective.$$originalDirective))); + compile.$$addScopeClass($element, true); + isolateScope.$$isolateBindings = + newIsolateScopeDirective.$$isolateBindings; + initializeDirectiveBindings(scope, attrs, isolateScope, + isolateScope.$$isolateBindings, + newIsolateScopeDirective, isolateScope); + } + if (elementControllers) { + // Initialize bindToController bindings for new/isolate scopes + var scopeDirective = newIsolateScopeDirective || newScopeDirective; + var bindings; + var controllerForBindings; + if (scopeDirective && elementControllers[scopeDirective.name]) { + bindings = scopeDirective.$$bindings.bindToController; + controller = elementControllers[scopeDirective.name]; + + if (controller && controller.identifier && bindings) { + controllerForBindings = controller; + thisLinkFn.$$destroyBindings = + initializeDirectiveBindings(scope, attrs, controller.instance, + bindings, scopeDirective); + } + } + for (i in elementControllers) { + controller = elementControllers[i]; + var controllerResult = controller(); + + if (controllerResult !== controller.instance) { + // If the controller constructor has a return value, overwrite the instance + // from setupControllers and update the element data + controller.instance = controllerResult; + $element.data('$' + i + 'Controller', controllerResult); + if (controller === controllerForBindings) { + // Remove and re-install bindToController bindings + thisLinkFn.$$destroyBindings(); + thisLinkFn.$$destroyBindings = + initializeDirectiveBindings(scope, attrs, controllerResult, bindings, scopeDirective); + } + } + } + } + + // PRELINKING + for (i = 0, ii = preLinkFns.length; i < ii; i++) { + linkFn = preLinkFns[i]; + invokeLinkFn(linkFn, + linkFn.isolateScope ? isolateScope : scope, + $element, + attrs, + linkFn.require && getControllers(linkFn.directiveName, linkFn.require, $element, elementControllers), + transcludeFn + ); + } + + // RECURSION + // We only pass the isolate scope, if the isolate directive has a template, + // otherwise the child elements do not belong to the isolate directive. + var scopeToChild = scope; + if (newIsolateScopeDirective && (newIsolateScopeDirective.template || newIsolateScopeDirective.templateUrl === null)) { + scopeToChild = isolateScope; + } + childLinkFn && childLinkFn(scopeToChild, linkNode.childNodes, undefined, boundTranscludeFn); + + // POSTLINKING + for (i = postLinkFns.length - 1; i >= 0; i--) { + linkFn = postLinkFns[i]; + invokeLinkFn(linkFn, + linkFn.isolateScope ? isolateScope : scope, + $element, + attrs, + linkFn.require && getControllers(linkFn.directiveName, linkFn.require, $element, elementControllers), + transcludeFn + ); + } + + // This is the function that is injected as `$transclude`. + // Note: all arguments are optional! + function controllersBoundTransclude(scope, cloneAttachFn, futureParentElement) { + var transcludeControllers; + + // No scope passed in: + if (!isScope(scope)) { + futureParentElement = cloneAttachFn; + cloneAttachFn = scope; + scope = undefined; + } + + if (hasElementTranscludeDirective) { + transcludeControllers = elementControllers; + } + if (!futureParentElement) { + futureParentElement = hasElementTranscludeDirective ? $element.parent() : $element; + } + return boundTranscludeFn(scope, cloneAttachFn, transcludeControllers, futureParentElement, scopeToChild); + } + } + } + + function markDirectivesAsIsolate(directives) { + // mark all directives as needing isolate scope. + for (var j = 0, jj = directives.length; j < jj; j++) { + directives[j] = inherit(directives[j], {$$isolateScope: true}); + } + } + + /** + * looks up the directive and decorates it with exception handling and proper parameters. We + * call this the boundDirective. + * + * @param {string} name name of the directive to look up. + * @param {string} location The directive must be found in specific format. + * String containing any of theses characters: + * + * * `E`: element name + * * `A': attribute + * * `C`: class + * * `M`: comment + * @returns {boolean} true if directive was added. + */ + function addDirective(tDirectives, name, location, maxPriority, ignoreDirective, startAttrName, + endAttrName) { + if (name === ignoreDirective) return null; + var match = null; + if (hasDirectives.hasOwnProperty(name)) { + for (var directive, directives = $injector.get(name + Suffix), + i = 0, ii = directives.length; i < ii; i++) { + try { + directive = directives[i]; + if ((maxPriority === undefined || maxPriority > directive.priority) && + directive.restrict.indexOf(location) != -1) { + if (startAttrName) { + directive = inherit(directive, {$$start: startAttrName, $$end: endAttrName}); + } + tDirectives.push(directive); + match = directive; + } + } catch (e) { $exceptionHandler(e); } + } + } + return match; + } + + + /** + * looks up the directive and returns true if it is a multi-element directive, + * and therefore requires DOM nodes between -start and -end markers to be grouped + * together. + * + * @param {string} name name of the directive to look up. + * @returns true if directive was registered as multi-element. + */ + function directiveIsMultiElement(name) { + if (hasDirectives.hasOwnProperty(name)) { + for (var directive, directives = $injector.get(name + Suffix), + i = 0, ii = directives.length; i < ii; i++) { + directive = directives[i]; + if (directive.multiElement) { + return true; + } + } + } + return false; + } + + /** + * When the element is replaced with HTML template then the new attributes + * on the template need to be merged with the existing attributes in the DOM. + * The desired effect is to have both of the attributes present. + * + * @param {object} dst destination attributes (original DOM) + * @param {object} src source attributes (from the directive template) + */ + function mergeTemplateAttributes(dst, src) { + var srcAttr = src.$attr, + dstAttr = dst.$attr, + $element = dst.$$element; + + // reapply the old attributes to the new element + forEach(dst, function(value, key) { + if (key.charAt(0) != '$') { + if (src[key] && src[key] !== value) { + value += (key === 'style' ? ';' : ' ') + src[key]; + } + dst.$set(key, value, true, srcAttr[key]); + } + }); + + // copy the new attributes on the old attrs object + forEach(src, function(value, key) { + if (key == 'class') { + safeAddClass($element, value); + dst['class'] = (dst['class'] ? dst['class'] + ' ' : '') + value; + } else if (key == 'style') { + $element.attr('style', $element.attr('style') + ';' + value); + dst['style'] = (dst['style'] ? dst['style'] + ';' : '') + value; + // `dst` will never contain hasOwnProperty as DOM parser won't let it. + // You will get an "InvalidCharacterError: DOM Exception 5" error if you + // have an attribute like "has-own-property" or "data-has-own-property", etc. + } else if (key.charAt(0) != '$' && !dst.hasOwnProperty(key)) { + dst[key] = value; + dstAttr[key] = srcAttr[key]; + } + }); + } + + + function compileTemplateUrl(directives, $compileNode, tAttrs, + $rootElement, childTranscludeFn, preLinkFns, postLinkFns, previousCompileContext) { + var linkQueue = [], + afterTemplateNodeLinkFn, + afterTemplateChildLinkFn, + beforeTemplateCompileNode = $compileNode[0], + origAsyncDirective = directives.shift(), + derivedSyncDirective = inherit(origAsyncDirective, { + templateUrl: null, transclude: null, replace: null, $$originalDirective: origAsyncDirective + }), + templateUrl = (isFunction(origAsyncDirective.templateUrl)) + ? origAsyncDirective.templateUrl($compileNode, tAttrs) + : origAsyncDirective.templateUrl, + templateNamespace = origAsyncDirective.templateNamespace; + + $compileNode.empty(); + + $templateRequest(templateUrl) + .then(function(content) { + var compileNode, tempTemplateAttrs, $template, childBoundTranscludeFn; + + content = denormalizeTemplate(content); + + if (origAsyncDirective.replace) { + if (jqLiteIsTextNode(content)) { + $template = []; + } else { + $template = removeComments(wrapTemplate(templateNamespace, trim(content))); + } + compileNode = $template[0]; + + if ($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT) { + throw $compileMinErr('tplrt', + "Template for directive '{0}' must have exactly one root element. {1}", + origAsyncDirective.name, templateUrl); + } + + tempTemplateAttrs = {$attr: {}}; + replaceWith($rootElement, $compileNode, compileNode); + var templateDirectives = collectDirectives(compileNode, [], tempTemplateAttrs); + + if (isObject(origAsyncDirective.scope)) { + markDirectivesAsIsolate(templateDirectives); + } + directives = templateDirectives.concat(directives); + mergeTemplateAttributes(tAttrs, tempTemplateAttrs); + } else { + compileNode = beforeTemplateCompileNode; + $compileNode.html(content); + } + + directives.unshift(derivedSyncDirective); + + afterTemplateNodeLinkFn = applyDirectivesToNode(directives, compileNode, tAttrs, + childTranscludeFn, $compileNode, origAsyncDirective, preLinkFns, postLinkFns, + previousCompileContext); + forEach($rootElement, function(node, i) { + if (node == compileNode) { + $rootElement[i] = $compileNode[0]; + } + }); + afterTemplateChildLinkFn = compileNodes($compileNode[0].childNodes, childTranscludeFn); + + while (linkQueue.length) { + var scope = linkQueue.shift(), + beforeTemplateLinkNode = linkQueue.shift(), + linkRootElement = linkQueue.shift(), + boundTranscludeFn = linkQueue.shift(), + linkNode = $compileNode[0]; + + if (scope.$$destroyed) continue; + + if (beforeTemplateLinkNode !== beforeTemplateCompileNode) { + var oldClasses = beforeTemplateLinkNode.className; + + if (!(previousCompileContext.hasElementTranscludeDirective && + origAsyncDirective.replace)) { + // it was cloned therefore we have to clone as well. + linkNode = jqLiteClone(compileNode); + } + replaceWith(linkRootElement, jqLite(beforeTemplateLinkNode), linkNode); + + // Copy in CSS classes from original node + safeAddClass(jqLite(linkNode), oldClasses); + } + if (afterTemplateNodeLinkFn.transcludeOnThisElement) { + childBoundTranscludeFn = createBoundTranscludeFn(scope, afterTemplateNodeLinkFn.transclude, boundTranscludeFn); + } else { + childBoundTranscludeFn = boundTranscludeFn; + } + afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, linkNode, $rootElement, + childBoundTranscludeFn, afterTemplateNodeLinkFn); + } + linkQueue = null; + }); + + return function delayedNodeLinkFn(ignoreChildLinkFn, scope, node, rootElement, boundTranscludeFn) { + var childBoundTranscludeFn = boundTranscludeFn; + if (scope.$$destroyed) return; + if (linkQueue) { + linkQueue.push(scope, + node, + rootElement, + childBoundTranscludeFn); + } else { + if (afterTemplateNodeLinkFn.transcludeOnThisElement) { + childBoundTranscludeFn = createBoundTranscludeFn(scope, afterTemplateNodeLinkFn.transclude, boundTranscludeFn); + } + afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, node, rootElement, childBoundTranscludeFn, + afterTemplateNodeLinkFn); + } + }; + } + + + /** + * Sorting function for bound directives. + */ + function byPriority(a, b) { + var diff = b.priority - a.priority; + if (diff !== 0) return diff; + if (a.name !== b.name) return (a.name < b.name) ? -1 : 1; + return a.index - b.index; + } + + function assertNoDuplicate(what, previousDirective, directive, element) { + + function wrapModuleNameIfDefined(moduleName) { + return moduleName ? + (' (module: ' + moduleName + ')') : + ''; + } + + if (previousDirective) { + throw $compileMinErr('multidir', 'Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}', + previousDirective.name, wrapModuleNameIfDefined(previousDirective.$$moduleName), + directive.name, wrapModuleNameIfDefined(directive.$$moduleName), what, startingTag(element)); + } + } + + + function addTextInterpolateDirective(directives, text) { + var interpolateFn = $interpolate(text, true); + if (interpolateFn) { + directives.push({ + priority: 0, + compile: function textInterpolateCompileFn(templateNode) { + var templateNodeParent = templateNode.parent(), + hasCompileParent = !!templateNodeParent.length; + + // When transcluding a template that has bindings in the root + // we don't have a parent and thus need to add the class during linking fn. + if (hasCompileParent) compile.$$addBindingClass(templateNodeParent); + + return function textInterpolateLinkFn(scope, node) { + var parent = node.parent(); + if (!hasCompileParent) compile.$$addBindingClass(parent); + compile.$$addBindingInfo(parent, interpolateFn.expressions); + scope.$watch(interpolateFn, function interpolateFnWatchAction(value) { + node[0].nodeValue = value; + }); + }; + } + }); + } + } + + + function wrapTemplate(type, template) { + type = lowercase(type || 'html'); + switch (type) { + case 'svg': + case 'math': + var wrapper = document.createElement('div'); + wrapper.innerHTML = '<' + type + '>' + template + ''; + return wrapper.childNodes[0].childNodes; + default: + return template; + } + } + + + function getTrustedContext(node, attrNormalizedName) { + if (attrNormalizedName == "srcdoc") { + return $sce.HTML; + } + var tag = nodeName_(node); + // maction[xlink:href] can source SVG. It's not limited to . + if (attrNormalizedName == "xlinkHref" || + (tag == "form" && attrNormalizedName == "action") || + (tag != "img" && (attrNormalizedName == "src" || + attrNormalizedName == "ngSrc"))) { + return $sce.RESOURCE_URL; + } + } + + + function addAttrInterpolateDirective(node, directives, value, name, allOrNothing) { + var trustedContext = getTrustedContext(node, name); + allOrNothing = ALL_OR_NOTHING_ATTRS[name] || allOrNothing; + + var interpolateFn = $interpolate(value, true, trustedContext, allOrNothing); + + // no interpolation found -> ignore + if (!interpolateFn) return; + + + if (name === "multiple" && nodeName_(node) === "select") { + throw $compileMinErr("selmulti", + "Binding to the 'multiple' attribute is not supported. Element: {0}", + startingTag(node)); + } + + directives.push({ + priority: 100, + compile: function() { + return { + pre: function attrInterpolatePreLinkFn(scope, element, attr) { + var $$observers = (attr.$$observers || (attr.$$observers = {})); + + if (EVENT_HANDLER_ATTR_REGEXP.test(name)) { + throw $compileMinErr('nodomevents', + "Interpolations for HTML DOM event attributes are disallowed. Please use the " + + "ng- versions (such as ng-click instead of onclick) instead."); + } + + // If the attribute has changed since last $interpolate()ed + var newValue = attr[name]; + if (newValue !== value) { + // we need to interpolate again since the attribute value has been updated + // (e.g. by another directive's compile function) + // ensure unset/empty values make interpolateFn falsy + interpolateFn = newValue && $interpolate(newValue, true, trustedContext, allOrNothing); + value = newValue; + } + + // if attribute was updated so that there is no interpolation going on we don't want to + // register any observers + if (!interpolateFn) return; + + // initialize attr object so that it's ready in case we need the value for isolate + // scope initialization, otherwise the value would not be available from isolate + // directive's linking fn during linking phase + attr[name] = interpolateFn(scope); + + ($$observers[name] || ($$observers[name] = [])).$$inter = true; + (attr.$$observers && attr.$$observers[name].$$scope || scope). + $watch(interpolateFn, function interpolateFnWatchAction(newValue, oldValue) { + //special case for class attribute addition + removal + //so that class changes can tap into the animation + //hooks provided by the $animate service. Be sure to + //skip animations when the first digest occurs (when + //both the new and the old values are the same) since + //the CSS classes are the non-interpolated values + if (name === 'class' && newValue != oldValue) { + attr.$updateClass(newValue, oldValue); + } else { + attr.$set(name, newValue); + } + }); + } + }; + } + }); + } + + + /** + * This is a special jqLite.replaceWith, which can replace items which + * have no parents, provided that the containing jqLite collection is provided. + * + * @param {JqLite=} $rootElement The root of the compile tree. Used so that we can replace nodes + * in the root of the tree. + * @param {JqLite} elementsToRemove The jqLite element which we are going to replace. We keep + * the shell, but replace its DOM node reference. + * @param {Node} newNode The new DOM node. + */ + function replaceWith($rootElement, elementsToRemove, newNode) { + var firstElementToRemove = elementsToRemove[0], + removeCount = elementsToRemove.length, + parent = firstElementToRemove.parentNode, + i, ii; + + if ($rootElement) { + for (i = 0, ii = $rootElement.length; i < ii; i++) { + if ($rootElement[i] == firstElementToRemove) { + $rootElement[i++] = newNode; + for (var j = i, j2 = j + removeCount - 1, + jj = $rootElement.length; + j < jj; j++, j2++) { + if (j2 < jj) { + $rootElement[j] = $rootElement[j2]; + } else { + delete $rootElement[j]; + } + } + $rootElement.length -= removeCount - 1; + + // If the replaced element is also the jQuery .context then replace it + // .context is a deprecated jQuery api, so we should set it only when jQuery set it + // http://api.jquery.com/context/ + if ($rootElement.context === firstElementToRemove) { + $rootElement.context = newNode; + } + break; + } + } + } + + if (parent) { + parent.replaceChild(newNode, firstElementToRemove); + } + + // TODO(perf): what's this document fragment for? is it needed? can we at least reuse it? + var fragment = document.createDocumentFragment(); + fragment.appendChild(firstElementToRemove); + + if (jqLite.hasData(firstElementToRemove)) { + // Copy over user data (that includes Angular's $scope etc.). Don't copy private + // data here because there's no public interface in jQuery to do that and copying over + // event listeners (which is the main use of private data) wouldn't work anyway. + jqLite(newNode).data(jqLite(firstElementToRemove).data()); + + // Remove data of the replaced element. We cannot just call .remove() + // on the element it since that would deallocate scope that is needed + // for the new node. Instead, remove the data "manually". + if (!jQuery) { + delete jqLite.cache[firstElementToRemove[jqLite.expando]]; + } else { + // jQuery 2.x doesn't expose the data storage. Use jQuery.cleanData to clean up after + // the replaced element. The cleanData version monkey-patched by Angular would cause + // the scope to be trashed and we do need the very same scope to work with the new + // element. However, we cannot just cache the non-patched version and use it here as + // that would break if another library patches the method after Angular does (one + // example is jQuery UI). Instead, set a flag indicating scope destroying should be + // skipped this one time. + skipDestroyOnNextJQueryCleanData = true; + jQuery.cleanData([firstElementToRemove]); + } + } + + for (var k = 1, kk = elementsToRemove.length; k < kk; k++) { + var element = elementsToRemove[k]; + jqLite(element).remove(); // must do this way to clean up expando + fragment.appendChild(element); + delete elementsToRemove[k]; + } + + elementsToRemove[0] = newNode; + elementsToRemove.length = 1; + } + + + function cloneAndAnnotateFn(fn, annotation) { + return extend(function() { return fn.apply(null, arguments); }, fn, annotation); + } + + + function invokeLinkFn(linkFn, scope, $element, attrs, controllers, transcludeFn) { + try { + linkFn(scope, $element, attrs, controllers, transcludeFn); + } catch (e) { + $exceptionHandler(e, startingTag($element)); + } + } + + + // Set up $watches for isolate scope and controller bindings. This process + // only occurs for isolate scopes and new scopes with controllerAs. + function initializeDirectiveBindings(scope, attrs, destination, bindings, + directive, newScope) { + var onNewScopeDestroyed; + forEach(bindings, function(definition, scopeName) { + var attrName = definition.attrName, + optional = definition.optional, + mode = definition.mode, // @, =, or & + lastValue, + parentGet, parentSet, compare; + + if (!hasOwnProperty.call(attrs, attrName)) { + // In the case of user defined a binding with the same name as a method in Object.prototype but didn't set + // the corresponding attribute. We need to make sure subsequent code won't access to the prototype function + attrs[attrName] = undefined; + } + + switch (mode) { + + case '@': + if (!attrs[attrName] && !optional) { + destination[scopeName] = undefined; + } + + attrs.$observe(attrName, function(value) { + destination[scopeName] = value; + }); + attrs.$$observers[attrName].$$scope = scope; + if (attrs[attrName]) { + // If the attribute has been provided then we trigger an interpolation to ensure + // the value is there for use in the link fn + destination[scopeName] = $interpolate(attrs[attrName])(scope); + } + break; + + case '=': + if (optional && !attrs[attrName]) { + return; + } + parentGet = $parse(attrs[attrName]); + + if (parentGet.literal) { + compare = equals; + } else { + compare = function(a, b) { return a === b || (a !== a && b !== b); }; + } + parentSet = parentGet.assign || function() { + // reset the change, or we will throw this exception on every $digest + lastValue = destination[scopeName] = parentGet(scope); + throw $compileMinErr('nonassign', + "Expression '{0}' used with directive '{1}' is non-assignable!", + attrs[attrName], directive.name); + }; + lastValue = destination[scopeName] = parentGet(scope); + var parentValueWatch = function parentValueWatch(parentValue) { + if (!compare(parentValue, destination[scopeName])) { + // we are out of sync and need to copy + if (!compare(parentValue, lastValue)) { + // parent changed and it has precedence + destination[scopeName] = parentValue; + } else { + // if the parent can be assigned then do so + parentSet(scope, parentValue = destination[scopeName]); + } + } + return lastValue = parentValue; + }; + parentValueWatch.$stateful = true; + var unwatch; + if (definition.collection) { + unwatch = scope.$watchCollection(attrs[attrName], parentValueWatch); + } else { + unwatch = scope.$watch($parse(attrs[attrName], parentValueWatch), null, parentGet.literal); + } + onNewScopeDestroyed = (onNewScopeDestroyed || []); + onNewScopeDestroyed.push(unwatch); + break; + + case '&': + parentGet = $parse(attrs[attrName]); + + // Don't assign noop to destination if expression is not valid + if (parentGet === noop && optional) break; + + destination[scopeName] = function(locals) { + return parentGet(scope, locals); + }; + break; + } + }); + var destroyBindings = onNewScopeDestroyed ? function destroyBindings() { + for (var i = 0, ii = onNewScopeDestroyed.length; i < ii; ++i) { + onNewScopeDestroyed[i](); + } + } : noop; + if (newScope && destroyBindings !== noop) { + newScope.$on('$destroy', destroyBindings); + return noop; + } + return destroyBindings; + } + }]; +} + +var PREFIX_REGEXP = /^((?:x|data)[\:\-_])/i; +/** + * Converts all accepted directives format into proper directive name. + * @param name Name to normalize + */ +function directiveNormalize(name) { + return camelCase(name.replace(PREFIX_REGEXP, '')); +} + +/** + * @ngdoc type + * @name $compile.directive.Attributes + * + * @description + * A shared object between directive compile / linking functions which contains normalized DOM + * element attributes. The values reflect current binding state `{{ }}`. The normalization is + * needed since all of these are treated as equivalent in Angular: + * + * ``` + * + * ``` + */ + +/** + * @ngdoc property + * @name $compile.directive.Attributes#$attr + * + * @description + * A map of DOM element attribute names to the normalized name. This is + * needed to do reverse lookup from normalized name back to actual name. + */ + + +/** + * @ngdoc method + * @name $compile.directive.Attributes#$set + * @kind function + * + * @description + * Set DOM element attribute value. + * + * + * @param {string} name Normalized element attribute name of the property to modify. The name is + * reverse-translated using the {@link ng.$compile.directive.Attributes#$attr $attr} + * property to the original name. + * @param {string} value Value to set the attribute to. The value can be an interpolated string. + */ + + + +/** + * Closure compiler type information + */ + +function nodesetLinkingFn( + /* angular.Scope */ scope, + /* NodeList */ nodeList, + /* Element */ rootElement, + /* function(Function) */ boundTranscludeFn +) {} + +function directiveLinkingFn( + /* nodesetLinkingFn */ nodesetLinkingFn, + /* angular.Scope */ scope, + /* Node */ node, + /* Element */ rootElement, + /* function(Function) */ boundTranscludeFn +) {} + +function tokenDifference(str1, str2) { + var values = '', + tokens1 = str1.split(/\s+/), + tokens2 = str2.split(/\s+/); + + outer: + for (var i = 0; i < tokens1.length; i++) { + var token = tokens1[i]; + for (var j = 0; j < tokens2.length; j++) { + if (token == tokens2[j]) continue outer; + } + values += (values.length > 0 ? ' ' : '') + token; + } + return values; +} + +function removeComments(jqNodes) { + jqNodes = jqLite(jqNodes); + var i = jqNodes.length; + + if (i <= 1) { + return jqNodes; + } + + while (i--) { + var node = jqNodes[i]; + if (node.nodeType === NODE_TYPE_COMMENT) { + splice.call(jqNodes, i, 1); + } + } + return jqNodes; +} + +var $controllerMinErr = minErr('$controller'); + + +var CNTRL_REG = /^(\S+)(\s+as\s+(\w+))?$/; +function identifierForController(controller, ident) { + if (ident && isString(ident)) return ident; + if (isString(controller)) { + var match = CNTRL_REG.exec(controller); + if (match) return match[3]; + } +} + + +/** + * @ngdoc provider + * @name $controllerProvider + * @description + * The {@link ng.$controller $controller service} is used by Angular to create new + * controllers. + * + * This provider allows controller registration via the + * {@link ng.$controllerProvider#register register} method. + */ +function $ControllerProvider() { + var controllers = {}, + globals = false; + + /** + * @ngdoc method + * @name $controllerProvider#register + * @param {string|Object} name Controller name, or an object map of controllers where the keys are + * the names and the values are the constructors. + * @param {Function|Array} constructor Controller constructor fn (optionally decorated with DI + * annotations in the array notation). + */ + this.register = function(name, constructor) { + assertNotHasOwnProperty(name, 'controller'); + if (isObject(name)) { + extend(controllers, name); + } else { + controllers[name] = constructor; + } + }; + + /** + * @ngdoc method + * @name $controllerProvider#allowGlobals + * @description If called, allows `$controller` to find controller constructors on `window` + */ + this.allowGlobals = function() { + globals = true; + }; + + + this.$get = ['$injector', '$window', function($injector, $window) { + + /** + * @ngdoc service + * @name $controller + * @requires $injector + * + * @param {Function|string} constructor If called with a function then it's considered to be the + * controller constructor function. Otherwise it's considered to be a string which is used + * to retrieve the controller constructor using the following steps: + * + * * check if a controller with given name is registered via `$controllerProvider` + * * check if evaluating the string on the current scope returns a constructor + * * if $controllerProvider#allowGlobals, check `window[constructor]` on the global + * `window` object (not recommended) + * + * The string can use the `controller as property` syntax, where the controller instance is published + * as the specified property on the `scope`; the `scope` must be injected into `locals` param for this + * to work correctly. + * + * @param {Object} locals Injection locals for Controller. + * @return {Object} Instance of given controller. + * + * @description + * `$controller` service is responsible for instantiating controllers. + * + * It's just a simple call to {@link auto.$injector $injector}, but extracted into + * a service, so that one can override this service with [BC version](https://gist.github.com/1649788). + */ + return function(expression, locals, later, ident) { + // PRIVATE API: + // param `later` --- indicates that the controller's constructor is invoked at a later time. + // If true, $controller will allocate the object with the correct + // prototype chain, but will not invoke the controller until a returned + // callback is invoked. + // param `ident` --- An optional label which overrides the label parsed from the controller + // expression, if any. + var instance, match, constructor, identifier; + later = later === true; + if (ident && isString(ident)) { + identifier = ident; + } + + if (isString(expression)) { + match = expression.match(CNTRL_REG); + if (!match) { + throw $controllerMinErr('ctrlfmt', + "Badly formed controller string '{0}'. " + + "Must match `__name__ as __id__` or `__name__`.", expression); + } + constructor = match[1], + identifier = identifier || match[3]; + expression = controllers.hasOwnProperty(constructor) + ? controllers[constructor] + : getter(locals.$scope, constructor, true) || + (globals ? getter($window, constructor, true) : undefined); + + assertArgFn(expression, constructor, true); + } + + if (later) { + // Instantiate controller later: + // This machinery is used to create an instance of the object before calling the + // controller's constructor itself. + // + // This allows properties to be added to the controller before the constructor is + // invoked. Primarily, this is used for isolate scope bindings in $compile. + // + // This feature is not intended for use by applications, and is thus not documented + // publicly. + // Object creation: http://jsperf.com/create-constructor/2 + var controllerPrototype = (isArray(expression) ? + expression[expression.length - 1] : expression).prototype; + instance = Object.create(controllerPrototype || null); + + if (identifier) { + addIdentifier(locals, identifier, instance, constructor || expression.name); + } + + var instantiate; + return instantiate = extend(function() { + var result = $injector.invoke(expression, instance, locals, constructor); + if (result !== instance && (isObject(result) || isFunction(result))) { + instance = result; + if (identifier) { + // If result changed, re-assign controllerAs value to scope. + addIdentifier(locals, identifier, instance, constructor || expression.name); + } + } + return instance; + }, { + instance: instance, + identifier: identifier + }); + } + + instance = $injector.instantiate(expression, locals, constructor); + + if (identifier) { + addIdentifier(locals, identifier, instance, constructor || expression.name); + } + + return instance; + }; + + function addIdentifier(locals, identifier, instance, name) { + if (!(locals && isObject(locals.$scope))) { + throw minErr('$controller')('noscp', + "Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.", + name, identifier); + } + + locals.$scope[identifier] = instance; + } + }]; +} + +/** + * @ngdoc service + * @name $document + * @requires $window + * + * @description + * A {@link angular.element jQuery or jqLite} wrapper for the browser's `window.document` object. + * + * @example + + +
    +

    $document title:

    +

    window.document title:

    +
    +
    + + angular.module('documentExample', []) + .controller('ExampleController', ['$scope', '$document', function($scope, $document) { + $scope.title = $document[0].title; + $scope.windowTitle = angular.element(window.document)[0].title; + }]); + +
    + */ +function $DocumentProvider() { + this.$get = ['$window', function(window) { + return jqLite(window.document); + }]; +} + +/** + * @ngdoc service + * @name $exceptionHandler + * @requires ng.$log + * + * @description + * Any uncaught exception in angular expressions is delegated to this service. + * The default implementation simply delegates to `$log.error` which logs it into + * the browser console. + * + * In unit tests, if `angular-mocks.js` is loaded, this service is overridden by + * {@link ngMock.$exceptionHandler mock $exceptionHandler} which aids in testing. + * + * ## Example: + * + * ```js + * angular.module('exceptionOverride', []).factory('$exceptionHandler', function() { + * return function(exception, cause) { + * exception.message += ' (caused by "' + cause + '")'; + * throw exception; + * }; + * }); + * ``` + * + * This example will override the normal action of `$exceptionHandler`, to make angular + * exceptions fail hard when they happen, instead of just logging to the console. + * + *
    + * Note, that code executed in event-listeners (even those registered using jqLite's `on`/`bind` + * methods) does not delegate exceptions to the {@link ng.$exceptionHandler $exceptionHandler} + * (unless executed during a digest). + * + * If you wish, you can manually delegate exceptions, e.g. + * `try { ... } catch(e) { $exceptionHandler(e); }` + * + * @param {Error} exception Exception associated with the error. + * @param {string=} cause optional information about the context in which + * the error was thrown. + * + */ +function $ExceptionHandlerProvider() { + this.$get = ['$log', function($log) { + return function(exception, cause) { + $log.error.apply($log, arguments); + }; + }]; +} + +var APPLICATION_JSON = 'application/json'; +var CONTENT_TYPE_APPLICATION_JSON = {'Content-Type': APPLICATION_JSON + ';charset=utf-8'}; +var JSON_START = /^\[|^\{(?!\{)/; +var JSON_ENDS = { + '[': /]$/, + '{': /}$/ +}; +var JSON_PROTECTION_PREFIX = /^\)\]\}',?\n/; + +function serializeValue(v) { + if (isObject(v)) { + return isDate(v) ? v.toISOString() : toJson(v); + } + return v; +} + + +function $HttpParamSerializerProvider() { + /** + * @ngdoc service + * @name $httpParamSerializer + * @description + * + * Default {@link $http `$http`} params serializer that converts objects to strings + * according to the following rules: + * + * * `{'foo': 'bar'}` results in `foo=bar` + * * `{'foo': Date.now()}` results in `foo=2015-04-01T09%3A50%3A49.262Z` (`toISOString()` and encoded representation of a Date object) + * * `{'foo': ['bar', 'baz']}` results in `foo=bar&foo=baz` (repeated key for each array element) + * * `{'foo': {'bar':'baz'}}` results in `foo=%7B%22bar%22%3A%22baz%22%7D"` (stringified and encoded representation of an object) + * + * Note that serializer will sort the request parameters alphabetically. + * */ + + this.$get = function() { + return function ngParamSerializer(params) { + if (!params) return ''; + var parts = []; + forEachSorted(params, function(value, key) { + if (value === null || isUndefined(value)) return; + if (isArray(value)) { + forEach(value, function(v, k) { + parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(v))); + }); + } else { + parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(value))); + } + }); + + return parts.join('&'); + }; + }; +} + +function $HttpParamSerializerJQLikeProvider() { + /** + * @ngdoc service + * @name $httpParamSerializerJQLike + * @description + * + * Alternative {@link $http `$http`} params serializer that follows + * jQuery's [`param()`](http://api.jquery.com/jquery.param/) method logic. + * The serializer will also sort the params alphabetically. + * + * To use it for serializing `$http` request parameters, set it as the `paramSerializer` property: + * + * ```js + * $http({ + * url: myUrl, + * method: 'GET', + * params: myParams, + * paramSerializer: '$httpParamSerializerJQLike' + * }); + * ``` + * + * It is also possible to set it as the default `paramSerializer` in the + * {@link $httpProvider#defaults `$httpProvider`}. + * + * Additionally, you can inject the serializer and use it explicitly, for example to serialize + * form data for submission: + * + * ```js + * .controller(function($http, $httpParamSerializerJQLike) { + * //... + * + * $http({ + * url: myUrl, + * method: 'POST', + * data: $httpParamSerializerJQLike(myData), + * headers: { + * 'Content-Type': 'application/x-www-form-urlencoded' + * } + * }); + * + * }); + * ``` + * + * */ + this.$get = function() { + return function jQueryLikeParamSerializer(params) { + if (!params) return ''; + var parts = []; + serialize(params, '', true); + return parts.join('&'); + + function serialize(toSerialize, prefix, topLevel) { + if (toSerialize === null || isUndefined(toSerialize)) return; + if (isArray(toSerialize)) { + forEach(toSerialize, function(value) { + serialize(value, prefix + '[]'); + }); + } else if (isObject(toSerialize) && !isDate(toSerialize)) { + forEachSorted(toSerialize, function(value, key) { + serialize(value, prefix + + (topLevel ? '' : '[') + + key + + (topLevel ? '' : ']')); + }); + } else { + parts.push(encodeUriQuery(prefix) + '=' + encodeUriQuery(serializeValue(toSerialize))); + } + } + }; + }; +} + +function defaultHttpResponseTransform(data, headers) { + if (isString(data)) { + // Strip json vulnerability protection prefix and trim whitespace + var tempData = data.replace(JSON_PROTECTION_PREFIX, '').trim(); + + if (tempData) { + var contentType = headers('Content-Type'); + if ((contentType && (contentType.indexOf(APPLICATION_JSON) === 0)) || isJsonLike(tempData)) { + data = fromJson(tempData); + } + } + } + + return data; +} + +function isJsonLike(str) { + var jsonStart = str.match(JSON_START); + return jsonStart && JSON_ENDS[jsonStart[0]].test(str); +} + +/** + * Parse headers into key value object + * + * @param {string} headers Raw headers as a string + * @returns {Object} Parsed headers as key value object + */ +function parseHeaders(headers) { + var parsed = createMap(), i; + + function fillInParsed(key, val) { + if (key) { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + + if (isString(headers)) { + forEach(headers.split('\n'), function(line) { + i = line.indexOf(':'); + fillInParsed(lowercase(trim(line.substr(0, i))), trim(line.substr(i + 1))); + }); + } else if (isObject(headers)) { + forEach(headers, function(headerVal, headerKey) { + fillInParsed(lowercase(headerKey), trim(headerVal)); + }); + } + + return parsed; +} + + +/** + * Returns a function that provides access to parsed headers. + * + * Headers are lazy parsed when first requested. + * @see parseHeaders + * + * @param {(string|Object)} headers Headers to provide access to. + * @returns {function(string=)} Returns a getter function which if called with: + * + * - if called with single an argument returns a single header value or null + * - if called with no arguments returns an object containing all headers. + */ +function headersGetter(headers) { + var headersObj; + + return function(name) { + if (!headersObj) headersObj = parseHeaders(headers); + + if (name) { + var value = headersObj[lowercase(name)]; + if (value === void 0) { + value = null; + } + return value; + } + + return headersObj; + }; +} + + +/** + * Chain all given functions + * + * This function is used for both request and response transforming + * + * @param {*} data Data to transform. + * @param {function(string=)} headers HTTP headers getter fn. + * @param {number} status HTTP status code of the response. + * @param {(Function|Array.)} fns Function or an array of functions. + * @returns {*} Transformed data. + */ +function transformData(data, headers, status, fns) { + if (isFunction(fns)) { + return fns(data, headers, status); + } + + forEach(fns, function(fn) { + data = fn(data, headers, status); + }); + + return data; +} + + +function isSuccess(status) { + return 200 <= status && status < 300; +} + + +/** + * @ngdoc provider + * @name $httpProvider + * @description + * Use `$httpProvider` to change the default behavior of the {@link ng.$http $http} service. + * */ +function $HttpProvider() { + /** + * @ngdoc property + * @name $httpProvider#defaults + * @description + * + * Object containing default values for all {@link ng.$http $http} requests. + * + * - **`defaults.cache`** - {Object} - an object built with {@link ng.$cacheFactory `$cacheFactory`} + * that will provide the cache for all requests who set their `cache` property to `true`. + * If you set the `defaults.cache = false` then only requests that specify their own custom + * cache object will be cached. See {@link $http#caching $http Caching} for more information. + * + * - **`defaults.xsrfCookieName`** - {string} - Name of cookie containing the XSRF token. + * Defaults value is `'XSRF-TOKEN'`. + * + * - **`defaults.xsrfHeaderName`** - {string} - Name of HTTP header to populate with the + * XSRF token. Defaults value is `'X-XSRF-TOKEN'`. + * + * - **`defaults.headers`** - {Object} - Default headers for all $http requests. + * Refer to {@link ng.$http#setting-http-headers $http} for documentation on + * setting default headers. + * - **`defaults.headers.common`** + * - **`defaults.headers.post`** + * - **`defaults.headers.put`** + * - **`defaults.headers.patch`** + * + * + * - **`defaults.paramSerializer`** - `{string|function(Object):string}` - A function + * used to the prepare string representation of request parameters (specified as an object). + * If specified as string, it is interpreted as a function registered with the {@link auto.$injector $injector}. + * Defaults to {@link ng.$httpParamSerializer $httpParamSerializer}. + * + **/ + var defaults = this.defaults = { + // transform incoming response data + transformResponse: [defaultHttpResponseTransform], + + // transform outgoing request data + transformRequest: [function(d) { + return isObject(d) && !isFile(d) && !isBlob(d) && !isFormData(d) ? toJson(d) : d; + }], + + // default headers + headers: { + common: { + 'Accept': 'application/json, text/plain, */*' + }, + post: shallowCopy(CONTENT_TYPE_APPLICATION_JSON), + put: shallowCopy(CONTENT_TYPE_APPLICATION_JSON), + patch: shallowCopy(CONTENT_TYPE_APPLICATION_JSON) + }, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + paramSerializer: '$httpParamSerializer' + }; + + var useApplyAsync = false; + /** + * @ngdoc method + * @name $httpProvider#useApplyAsync + * @description + * + * Configure $http service to combine processing of multiple http responses received at around + * the same time via {@link ng.$rootScope.Scope#$applyAsync $rootScope.$applyAsync}. This can result in + * significant performance improvement for bigger applications that make many HTTP requests + * concurrently (common during application bootstrap). + * + * Defaults to false. If no value is specified, returns the current configured value. + * + * @param {boolean=} value If true, when requests are loaded, they will schedule a deferred + * "apply" on the next tick, giving time for subsequent requests in a roughly ~10ms window + * to load and share the same digest cycle. + * + * @returns {boolean|Object} If a value is specified, returns the $httpProvider for chaining. + * otherwise, returns the current configured value. + **/ + this.useApplyAsync = function(value) { + if (isDefined(value)) { + useApplyAsync = !!value; + return this; + } + return useApplyAsync; + }; + + /** + * @ngdoc property + * @name $httpProvider#interceptors + * @description + * + * Array containing service factories for all synchronous or asynchronous {@link ng.$http $http} + * pre-processing of request or postprocessing of responses. + * + * These service factories are ordered by request, i.e. they are applied in the same order as the + * array, on request, but reverse order, on response. + * + * {@link ng.$http#interceptors Interceptors detailed info} + **/ + var interceptorFactories = this.interceptors = []; + + this.$get = ['$httpBackend', '$$cookieReader', '$cacheFactory', '$rootScope', '$q', '$injector', + function($httpBackend, $$cookieReader, $cacheFactory, $rootScope, $q, $injector) { + + var defaultCache = $cacheFactory('$http'); + + /** + * Make sure that default param serializer is exposed as a function + */ + defaults.paramSerializer = isString(defaults.paramSerializer) ? + $injector.get(defaults.paramSerializer) : defaults.paramSerializer; + + /** + * Interceptors stored in reverse order. Inner interceptors before outer interceptors. + * The reversal is needed so that we can build up the interception chain around the + * server request. + */ + var reversedInterceptors = []; + + forEach(interceptorFactories, function(interceptorFactory) { + reversedInterceptors.unshift(isString(interceptorFactory) + ? $injector.get(interceptorFactory) : $injector.invoke(interceptorFactory)); + }); + + /** + * @ngdoc service + * @kind function + * @name $http + * @requires ng.$httpBackend + * @requires $cacheFactory + * @requires $rootScope + * @requires $q + * @requires $injector + * + * @description + * The `$http` service is a core Angular service that facilitates communication with the remote + * HTTP servers via the browser's [XMLHttpRequest](https://developer.mozilla.org/en/xmlhttprequest) + * object or via [JSONP](http://en.wikipedia.org/wiki/JSONP). + * + * For unit testing applications that use `$http` service, see + * {@link ngMock.$httpBackend $httpBackend mock}. + * + * For a higher level of abstraction, please check out the {@link ngResource.$resource + * $resource} service. + * + * The $http API is based on the {@link ng.$q deferred/promise APIs} exposed by + * the $q service. While for simple usage patterns this doesn't matter much, for advanced usage + * it is important to familiarize yourself with these APIs and the guarantees they provide. + * + * + * ## General usage + * The `$http` service is a function which takes a single argument — a configuration object — + * that is used to generate an HTTP request and returns a {@link ng.$q promise} + * with two $http specific methods: `success` and `error`. + * + * ```js + * // Simple GET request example : + * $http.get('/someUrl'). + * success(function(data, status, headers, config) { + * // this callback will be called asynchronously + * // when the response is available + * }). + * error(function(data, status, headers, config) { + * // called asynchronously if an error occurs + * // or server returns response with an error status. + * }); + * ``` + * + * ```js + * // Simple POST request example (passing data) : + * $http.post('/someUrl', {msg:'hello word!'}). + * success(function(data, status, headers, config) { + * // this callback will be called asynchronously + * // when the response is available + * }). + * error(function(data, status, headers, config) { + * // called asynchronously if an error occurs + * // or server returns response with an error status. + * }); + * ``` + * + * + * Since the returned value of calling the $http function is a `promise`, you can also use + * the `then` method to register callbacks, and these callbacks will receive a single argument – + * an object representing the response. See the API signature and type info below for more + * details. + * + * A response status code between 200 and 299 is considered a success status and + * will result in the success callback being called. Note that if the response is a redirect, + * XMLHttpRequest will transparently follow it, meaning that the error callback will not be + * called for such responses. + * + * ## Writing Unit Tests that use $http + * When unit testing (using {@link ngMock ngMock}), it is necessary to call + * {@link ngMock.$httpBackend#flush $httpBackend.flush()} to flush each pending + * request using trained responses. + * + * ``` + * $httpBackend.expectGET(...); + * $http.get(...); + * $httpBackend.flush(); + * ``` + * + * ## Shortcut methods + * + * Shortcut methods are also available. All shortcut methods require passing in the URL, and + * request data must be passed in for POST/PUT requests. + * + * ```js + * $http.get('/someUrl').success(successCallback); + * $http.post('/someUrl', data).success(successCallback); + * ``` + * + * Complete list of shortcut methods: + * + * - {@link ng.$http#get $http.get} + * - {@link ng.$http#head $http.head} + * - {@link ng.$http#post $http.post} + * - {@link ng.$http#put $http.put} + * - {@link ng.$http#delete $http.delete} + * - {@link ng.$http#jsonp $http.jsonp} + * - {@link ng.$http#patch $http.patch} + * + * + * ## Setting HTTP Headers + * + * The $http service will automatically add certain HTTP headers to all requests. These defaults + * can be fully configured by accessing the `$httpProvider.defaults.headers` configuration + * object, which currently contains this default configuration: + * + * - `$httpProvider.defaults.headers.common` (headers that are common for all requests): + * - `Accept: application/json, text/plain, * / *` + * - `$httpProvider.defaults.headers.post`: (header defaults for POST requests) + * - `Content-Type: application/json` + * - `$httpProvider.defaults.headers.put` (header defaults for PUT requests) + * - `Content-Type: application/json` + * + * To add or overwrite these defaults, simply add or remove a property from these configuration + * objects. To add headers for an HTTP method other than POST or PUT, simply add a new object + * with the lowercased HTTP method name as the key, e.g. + * `$httpProvider.defaults.headers.get = { 'My-Header' : 'value' }`. + * + * The defaults can also be set at runtime via the `$http.defaults` object in the same + * fashion. For example: + * + * ``` + * module.run(function($http) { + * $http.defaults.headers.common.Authorization = 'Basic YmVlcDpib29w' + * }); + * ``` + * + * In addition, you can supply a `headers` property in the config object passed when + * calling `$http(config)`, which overrides the defaults without changing them globally. + * + * To explicitly remove a header automatically added via $httpProvider.defaults.headers on a per request basis, + * Use the `headers` property, setting the desired header to `undefined`. For example: + * + * ```js + * var req = { + * method: 'POST', + * url: 'http://example.com', + * headers: { + * 'Content-Type': undefined + * }, + * data: { test: 'test' } + * } + * + * $http(req).success(function(){...}).error(function(){...}); + * ``` + * + * ## Transforming Requests and Responses + * + * Both requests and responses can be transformed using transformation functions: `transformRequest` + * and `transformResponse`. These properties can be a single function that returns + * the transformed value (`function(data, headersGetter, status)`) or an array of such transformation functions, + * which allows you to `push` or `unshift` a new transformation function into the transformation chain. + * + * ### Default Transformations + * + * The `$httpProvider` provider and `$http` service expose `defaults.transformRequest` and + * `defaults.transformResponse` properties. If a request does not provide its own transformations + * then these will be applied. + * + * You can augment or replace the default transformations by modifying these properties by adding to or + * replacing the array. + * + * Angular provides the following default transformations: + * + * Request transformations (`$httpProvider.defaults.transformRequest` and `$http.defaults.transformRequest`): + * + * - If the `data` property of the request configuration object contains an object, serialize it + * into JSON format. + * + * Response transformations (`$httpProvider.defaults.transformResponse` and `$http.defaults.transformResponse`): + * + * - If XSRF prefix is detected, strip it (see Security Considerations section below). + * - If JSON response is detected, deserialize it using a JSON parser. + * + * + * ### Overriding the Default Transformations Per Request + * + * If you wish override the request/response transformations only for a single request then provide + * `transformRequest` and/or `transformResponse` properties on the configuration object passed + * into `$http`. + * + * Note that if you provide these properties on the config object the default transformations will be + * overwritten. If you wish to augment the default transformations then you must include them in your + * local transformation array. + * + * The following code demonstrates adding a new response transformation to be run after the default response + * transformations have been run. + * + * ```js + * function appendTransform(defaults, transform) { + * + * // We can't guarantee that the default transformation is an array + * defaults = angular.isArray(defaults) ? defaults : [defaults]; + * + * // Append the new transformation to the defaults + * return defaults.concat(transform); + * } + * + * $http({ + * url: '...', + * method: 'GET', + * transformResponse: appendTransform($http.defaults.transformResponse, function(value) { + * return doTransform(value); + * }) + * }); + * ``` + * + * + * ## Caching + * + * To enable caching, set the request configuration `cache` property to `true` (to use default + * cache) or to a custom cache object (built with {@link ng.$cacheFactory `$cacheFactory`}). + * When the cache is enabled, `$http` stores the response from the server in the specified + * cache. The next time the same request is made, the response is served from the cache without + * sending a request to the server. + * + * Note that even if the response is served from cache, delivery of the data is asynchronous in + * the same way that real requests are. + * + * If there are multiple GET requests for the same URL that should be cached using the same + * cache, but the cache is not populated yet, only one request to the server will be made and + * the remaining requests will be fulfilled using the response from the first request. + * + * You can change the default cache to a new object (built with + * {@link ng.$cacheFactory `$cacheFactory`}) by updating the + * {@link ng.$http#defaults `$http.defaults.cache`} property. All requests who set + * their `cache` property to `true` will now use this cache object. + * + * If you set the default cache to `false` then only requests that specify their own custom + * cache object will be cached. + * + * ## Interceptors + * + * Before you start creating interceptors, be sure to understand the + * {@link ng.$q $q and deferred/promise APIs}. + * + * For purposes of global error handling, authentication, or any kind of synchronous or + * asynchronous pre-processing of request or postprocessing of responses, it is desirable to be + * able to intercept requests before they are handed to the server and + * responses before they are handed over to the application code that + * initiated these requests. The interceptors leverage the {@link ng.$q + * promise APIs} to fulfill this need for both synchronous and asynchronous pre-processing. + * + * The interceptors are service factories that are registered with the `$httpProvider` by + * adding them to the `$httpProvider.interceptors` array. The factory is called and + * injected with dependencies (if specified) and returns the interceptor. + * + * There are two kinds of interceptors (and two kinds of rejection interceptors): + * + * * `request`: interceptors get called with a http `config` object. The function is free to + * modify the `config` object or create a new one. The function needs to return the `config` + * object directly, or a promise containing the `config` or a new `config` object. + * * `requestError`: interceptor gets called when a previous interceptor threw an error or + * resolved with a rejection. + * * `response`: interceptors get called with http `response` object. The function is free to + * modify the `response` object or create a new one. The function needs to return the `response` + * object directly, or as a promise containing the `response` or a new `response` object. + * * `responseError`: interceptor gets called when a previous interceptor threw an error or + * resolved with a rejection. + * + * + * ```js + * // register the interceptor as a service + * $provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) { + * return { + * // optional method + * 'request': function(config) { + * // do something on success + * return config; + * }, + * + * // optional method + * 'requestError': function(rejection) { + * // do something on error + * if (canRecover(rejection)) { + * return responseOrNewPromise + * } + * return $q.reject(rejection); + * }, + * + * + * + * // optional method + * 'response': function(response) { + * // do something on success + * return response; + * }, + * + * // optional method + * 'responseError': function(rejection) { + * // do something on error + * if (canRecover(rejection)) { + * return responseOrNewPromise + * } + * return $q.reject(rejection); + * } + * }; + * }); + * + * $httpProvider.interceptors.push('myHttpInterceptor'); + * + * + * // alternatively, register the interceptor via an anonymous factory + * $httpProvider.interceptors.push(function($q, dependency1, dependency2) { + * return { + * 'request': function(config) { + * // same as above + * }, + * + * 'response': function(response) { + * // same as above + * } + * }; + * }); + * ``` + * + * ## Security Considerations + * + * When designing web applications, consider security threats from: + * + * - [JSON vulnerability](http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx) + * - [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) + * + * Both server and the client must cooperate in order to eliminate these threats. Angular comes + * pre-configured with strategies that address these issues, but for this to work backend server + * cooperation is required. + * + * ### JSON Vulnerability Protection + * + * A [JSON vulnerability](http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx) + * allows third party website to turn your JSON resource URL into + * [JSONP](http://en.wikipedia.org/wiki/JSONP) request under some conditions. To + * counter this your server can prefix all JSON requests with following string `")]}',\n"`. + * Angular will automatically strip the prefix before processing it as JSON. + * + * For example if your server needs to return: + * ```js + * ['one','two'] + * ``` + * + * which is vulnerable to attack, your server can return: + * ```js + * )]}', + * ['one','two'] + * ``` + * + * Angular will strip the prefix, before processing the JSON. + * + * + * ### Cross Site Request Forgery (XSRF) Protection + * + * [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) is a technique by which + * an unauthorized site can gain your user's private data. Angular provides a mechanism + * to counter XSRF. When performing XHR requests, the $http service reads a token from a cookie + * (by default, `XSRF-TOKEN`) and sets it as an HTTP header (`X-XSRF-TOKEN`). Since only + * JavaScript that runs on your domain could read the cookie, your server can be assured that + * the XHR came from JavaScript running on your domain. The header will not be set for + * cross-domain requests. + * + * To take advantage of this, your server needs to set a token in a JavaScript readable session + * cookie called `XSRF-TOKEN` on the first HTTP GET request. On subsequent XHR requests the + * server can verify that the cookie matches `X-XSRF-TOKEN` HTTP header, and therefore be sure + * that only JavaScript running on your domain could have sent the request. The token must be + * unique for each user and must be verifiable by the server (to prevent the JavaScript from + * making up its own tokens). We recommend that the token is a digest of your site's + * authentication cookie with a [salt](https://en.wikipedia.org/wiki/Salt_(cryptography)) + * for added security. + * + * The name of the headers can be specified using the xsrfHeaderName and xsrfCookieName + * properties of either $httpProvider.defaults at config-time, $http.defaults at run-time, + * or the per-request config object. + * + * In order to prevent collisions in environments where multiple Angular apps share the + * same domain or subdomain, we recommend that each application uses unique cookie name. + * + * + * @param {object} config Object describing the request to be made and how it should be + * processed. The object has following properties: + * + * - **method** – `{string}` – HTTP method (e.g. 'GET', 'POST', etc) + * - **url** – `{string}` – Absolute or relative URL of the resource that is being requested. + * - **params** – `{Object.}` – Map of strings or objects which will be serialized + * with the `paramSerializer` and appended as GET parameters. + * - **data** – `{string|Object}` – Data to be sent as the request message data. + * - **headers** – `{Object}` – Map of strings or functions which return strings representing + * HTTP headers to send to the server. If the return value of a function is null, the + * header will not be sent. Functions accept a config object as an argument. + * - **xsrfHeaderName** – `{string}` – Name of HTTP header to populate with the XSRF token. + * - **xsrfCookieName** – `{string}` – Name of cookie containing the XSRF token. + * - **transformRequest** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * request body and headers and returns its transformed (typically serialized) version. + * See {@link ng.$http#overriding-the-default-transformations-per-request + * Overriding the Default Transformations} + * - **transformResponse** – + * `{function(data, headersGetter, status)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * response body, headers and status and returns its transformed (typically deserialized) version. + * See {@link ng.$http#overriding-the-default-transformations-per-request + * Overriding the Default TransformationjqLiks} + * - **paramSerializer** - `{string|function(Object):string}` - A function used to + * prepare the string representation of request parameters (specified as an object). + * If specified as string, it is interpreted as function registered with the + * {@link $injector $injector}, which means you can create your own serializer + * by registering it as a {@link auto.$provide#service service}. + * The default serializer is the {@link $httpParamSerializer $httpParamSerializer}; + * alternatively, you can use the {@link $httpParamSerializerJQLike $httpParamSerializerJQLike} + * - **cache** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the + * GET request, otherwise if a cache instance built with + * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for + * caching. + * - **timeout** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise} + * that should abort the request when resolved. + * - **withCredentials** - `{boolean}` - whether to set the `withCredentials` flag on the + * XHR object. See [requests with credentials](https://developer.mozilla.org/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials) + * for more information. + * - **responseType** - `{string}` - see + * [XMLHttpRequest.responseType](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#xmlhttprequest-responsetype). + * + * @returns {HttpPromise} Returns a {@link ng.$q promise} object with the + * standard `then` method and two http specific methods: `success` and `error`. The `then` + * method takes two arguments a success and an error callback which will be called with a + * response object. The `success` and `error` methods take a single argument - a function that + * will be called when the request succeeds or fails respectively. The arguments passed into + * these functions are destructured representation of the response object passed into the + * `then` method. The response object has these properties: + * + * - **data** – `{string|Object}` – The response body transformed with the transform + * functions. + * - **status** – `{number}` – HTTP status code of the response. + * - **headers** – `{function([headerName])}` – Header getter function. + * - **config** – `{Object}` – The configuration object that was used to generate the request. + * - **statusText** – `{string}` – HTTP status text of the response. + * + * @property {Array.} pendingRequests Array of config objects for currently pending + * requests. This is primarily meant to be used for debugging purposes. + * + * + * @example + + +
    + + +
    + + + +
    http status code: {{status}}
    +
    http response data: {{data}}
    +
    +
    + + angular.module('httpExample', []) + .controller('FetchController', ['$scope', '$http', '$templateCache', + function($scope, $http, $templateCache) { + $scope.method = 'GET'; + $scope.url = 'http-hello.html'; + + $scope.fetch = function() { + $scope.code = null; + $scope.response = null; + + $http({method: $scope.method, url: $scope.url, cache: $templateCache}). + success(function(data, status) { + $scope.status = status; + $scope.data = data; + }). + error(function(data, status) { + $scope.data = data || "Request failed"; + $scope.status = status; + }); + }; + + $scope.updateModel = function(method, url) { + $scope.method = method; + $scope.url = url; + }; + }]); + + + Hello, $http! + + + var status = element(by.binding('status')); + var data = element(by.binding('data')); + var fetchBtn = element(by.id('fetchbtn')); + var sampleGetBtn = element(by.id('samplegetbtn')); + var sampleJsonpBtn = element(by.id('samplejsonpbtn')); + var invalidJsonpBtn = element(by.id('invalidjsonpbtn')); + + it('should make an xhr GET request', function() { + sampleGetBtn.click(); + fetchBtn.click(); + expect(status.getText()).toMatch('200'); + expect(data.getText()).toMatch(/Hello, \$http!/); + }); + +// Commented out due to flakes. See https://github.com/angular/angular.js/issues/9185 +// it('should make a JSONP request to angularjs.org', function() { +// sampleJsonpBtn.click(); +// fetchBtn.click(); +// expect(status.getText()).toMatch('200'); +// expect(data.getText()).toMatch(/Super Hero!/); +// }); + + it('should make JSONP request to invalid URL and invoke the error handler', + function() { + invalidJsonpBtn.click(); + fetchBtn.click(); + expect(status.getText()).toMatch('0'); + expect(data.getText()).toMatch('Request failed'); + }); + +
    + */ + function $http(requestConfig) { + + if (!angular.isObject(requestConfig)) { + throw minErr('$http')('badreq', 'Http request configuration must be an object. Received: {0}', requestConfig); + } + + var config = extend({ + method: 'get', + transformRequest: defaults.transformRequest, + transformResponse: defaults.transformResponse, + paramSerializer: defaults.paramSerializer + }, requestConfig); + + config.headers = mergeHeaders(requestConfig); + config.method = uppercase(config.method); + config.paramSerializer = isString(config.paramSerializer) ? + $injector.get(config.paramSerializer) : config.paramSerializer; + + var serverRequest = function(config) { + var headers = config.headers; + var reqData = transformData(config.data, headersGetter(headers), undefined, config.transformRequest); + + // strip content-type if data is undefined + if (isUndefined(reqData)) { + forEach(headers, function(value, header) { + if (lowercase(header) === 'content-type') { + delete headers[header]; + } + }); + } + + if (isUndefined(config.withCredentials) && !isUndefined(defaults.withCredentials)) { + config.withCredentials = defaults.withCredentials; + } + + // send request + return sendReq(config, reqData).then(transformResponse, transformResponse); + }; + + var chain = [serverRequest, undefined]; + var promise = $q.when(config); + + // apply interceptors + forEach(reversedInterceptors, function(interceptor) { + if (interceptor.request || interceptor.requestError) { + chain.unshift(interceptor.request, interceptor.requestError); + } + if (interceptor.response || interceptor.responseError) { + chain.push(interceptor.response, interceptor.responseError); + } + }); + + while (chain.length) { + var thenFn = chain.shift(); + var rejectFn = chain.shift(); + + promise = promise.then(thenFn, rejectFn); + } + + promise.success = function(fn) { + assertArgFn(fn, 'fn'); + + promise.then(function(response) { + fn(response.data, response.status, response.headers, config); + }); + return promise; + }; + + promise.error = function(fn) { + assertArgFn(fn, 'fn'); + + promise.then(null, function(response) { + fn(response.data, response.status, response.headers, config); + }); + return promise; + }; + + return promise; + + function transformResponse(response) { + // make a copy since the response must be cacheable + var resp = extend({}, response); + if (!response.data) { + resp.data = response.data; + } else { + resp.data = transformData(response.data, response.headers, response.status, config.transformResponse); + } + return (isSuccess(response.status)) + ? resp + : $q.reject(resp); + } + + function executeHeaderFns(headers, config) { + var headerContent, processedHeaders = {}; + + forEach(headers, function(headerFn, header) { + if (isFunction(headerFn)) { + headerContent = headerFn(config); + if (headerContent != null) { + processedHeaders[header] = headerContent; + } + } else { + processedHeaders[header] = headerFn; + } + }); + + return processedHeaders; + } + + function mergeHeaders(config) { + var defHeaders = defaults.headers, + reqHeaders = extend({}, config.headers), + defHeaderName, lowercaseDefHeaderName, reqHeaderName; + + defHeaders = extend({}, defHeaders.common, defHeaders[lowercase(config.method)]); + + // using for-in instead of forEach to avoid unecessary iteration after header has been found + defaultHeadersIteration: + for (defHeaderName in defHeaders) { + lowercaseDefHeaderName = lowercase(defHeaderName); + + for (reqHeaderName in reqHeaders) { + if (lowercase(reqHeaderName) === lowercaseDefHeaderName) { + continue defaultHeadersIteration; + } + } + + reqHeaders[defHeaderName] = defHeaders[defHeaderName]; + } + + // execute if header value is a function for merged headers + return executeHeaderFns(reqHeaders, shallowCopy(config)); + } + } + + $http.pendingRequests = []; + + /** + * @ngdoc method + * @name $http#get + * + * @description + * Shortcut method to perform `GET` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + + /** + * @ngdoc method + * @name $http#delete + * + * @description + * Shortcut method to perform `DELETE` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + + /** + * @ngdoc method + * @name $http#head + * + * @description + * Shortcut method to perform `HEAD` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + + /** + * @ngdoc method + * @name $http#jsonp + * + * @description + * Shortcut method to perform `JSONP` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request. + * The name of the callback should be the string `JSON_CALLBACK`. + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + createShortMethods('get', 'delete', 'head', 'jsonp'); + + /** + * @ngdoc method + * @name $http#post + * + * @description + * Shortcut method to perform `POST` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request + * @param {*} data Request content + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + + /** + * @ngdoc method + * @name $http#put + * + * @description + * Shortcut method to perform `PUT` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request + * @param {*} data Request content + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + + /** + * @ngdoc method + * @name $http#patch + * + * @description + * Shortcut method to perform `PATCH` request. + * + * @param {string} url Relative or absolute URL specifying the destination of the request + * @param {*} data Request content + * @param {Object=} config Optional configuration object + * @returns {HttpPromise} Future object + */ + createShortMethodsWithData('post', 'put', 'patch'); + + /** + * @ngdoc property + * @name $http#defaults + * + * @description + * Runtime equivalent of the `$httpProvider.defaults` property. Allows configuration of + * default headers, withCredentials as well as request and response transformations. + * + * See "Setting HTTP Headers" and "Transforming Requests and Responses" sections above. + */ + $http.defaults = defaults; + + + return $http; + + + function createShortMethods(names) { + forEach(arguments, function(name) { + $http[name] = function(url, config) { + return $http(extend({}, config || {}, { + method: name, + url: url + })); + }; + }); + } + + + function createShortMethodsWithData(name) { + forEach(arguments, function(name) { + $http[name] = function(url, data, config) { + return $http(extend({}, config || {}, { + method: name, + url: url, + data: data + })); + }; + }); + } + + + /** + * Makes the request. + * + * !!! ACCESSES CLOSURE VARS: + * $httpBackend, defaults, $log, $rootScope, defaultCache, $http.pendingRequests + */ + function sendReq(config, reqData) { + var deferred = $q.defer(), + promise = deferred.promise, + cache, + cachedResp, + reqHeaders = config.headers, + url = buildUrl(config.url, config.paramSerializer(config.params)); + + $http.pendingRequests.push(config); + promise.then(removePendingReq, removePendingReq); + + + if ((config.cache || defaults.cache) && config.cache !== false && + (config.method === 'GET' || config.method === 'JSONP')) { + cache = isObject(config.cache) ? config.cache + : isObject(defaults.cache) ? defaults.cache + : defaultCache; + } + + if (cache) { + cachedResp = cache.get(url); + if (isDefined(cachedResp)) { + if (isPromiseLike(cachedResp)) { + // cached request has already been sent, but there is no response yet + cachedResp.then(resolvePromiseWithResult, resolvePromiseWithResult); + } else { + // serving from cache + if (isArray(cachedResp)) { + resolvePromise(cachedResp[1], cachedResp[0], shallowCopy(cachedResp[2]), cachedResp[3]); + } else { + resolvePromise(cachedResp, 200, {}, 'OK'); + } + } + } else { + // put the promise for the non-transformed response into cache as a placeholder + cache.put(url, promise); + } + } + + + // if we won't have the response in cache, set the xsrf headers and + // send the request to the backend + if (isUndefined(cachedResp)) { + var xsrfValue = urlIsSameOrigin(config.url) + ? $$cookieReader()[config.xsrfCookieName || defaults.xsrfCookieName] + : undefined; + if (xsrfValue) { + reqHeaders[(config.xsrfHeaderName || defaults.xsrfHeaderName)] = xsrfValue; + } + + $httpBackend(config.method, url, reqData, done, reqHeaders, config.timeout, + config.withCredentials, config.responseType); + } + + return promise; + + + /** + * Callback registered to $httpBackend(): + * - caches the response if desired + * - resolves the raw $http promise + * - calls $apply + */ + function done(status, response, headersString, statusText) { + if (cache) { + if (isSuccess(status)) { + cache.put(url, [status, response, parseHeaders(headersString), statusText]); + } else { + // remove promise from the cache + cache.remove(url); + } + } + + function resolveHttpPromise() { + resolvePromise(response, status, headersString, statusText); + } + + if (useApplyAsync) { + $rootScope.$applyAsync(resolveHttpPromise); + } else { + resolveHttpPromise(); + if (!$rootScope.$$phase) $rootScope.$apply(); + } + } + + + /** + * Resolves the raw $http promise. + */ + function resolvePromise(response, status, headers, statusText) { + // normalize internal statuses to 0 + status = Math.max(status, 0); + + (isSuccess(status) ? deferred.resolve : deferred.reject)({ + data: response, + status: status, + headers: headersGetter(headers), + config: config, + statusText: statusText + }); + } + + function resolvePromiseWithResult(result) { + resolvePromise(result.data, result.status, shallowCopy(result.headers()), result.statusText); + } + + function removePendingReq() { + var idx = $http.pendingRequests.indexOf(config); + if (idx !== -1) $http.pendingRequests.splice(idx, 1); + } + } + + + function buildUrl(url, serializedParams) { + if (serializedParams.length > 0) { + url += ((url.indexOf('?') == -1) ? '?' : '&') + serializedParams; + } + return url; + } + }]; +} + +function createXhr() { + return new window.XMLHttpRequest(); +} + +/** + * @ngdoc service + * @name $httpBackend + * @requires $window + * @requires $document + * + * @description + * HTTP backend used by the {@link ng.$http service} that delegates to + * XMLHttpRequest object or JSONP and deals with browser incompatibilities. + * + * You should never need to use this service directly, instead use the higher-level abstractions: + * {@link ng.$http $http} or {@link ngResource.$resource $resource}. + * + * During testing this implementation is swapped with {@link ngMock.$httpBackend mock + * $httpBackend} which can be trained with responses. + */ +function $HttpBackendProvider() { + this.$get = ['$browser', '$window', '$document', function($browser, $window, $document) { + return createHttpBackend($browser, createXhr, $browser.defer, $window.angular.callbacks, $document[0]); + }]; +} + +function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDocument) { + // TODO(vojta): fix the signature + return function(method, url, post, callback, headers, timeout, withCredentials, responseType) { + $browser.$$incOutstandingRequestCount(); + url = url || $browser.url(); + + if (lowercase(method) == 'jsonp') { + var callbackId = '_' + (callbacks.counter++).toString(36); + callbacks[callbackId] = function(data) { + callbacks[callbackId].data = data; + callbacks[callbackId].called = true; + }; + + var jsonpDone = jsonpReq(url.replace('JSON_CALLBACK', 'angular.callbacks.' + callbackId), + callbackId, function(status, text) { + completeRequest(callback, status, callbacks[callbackId].data, "", text); + callbacks[callbackId] = noop; + }); + } else { + + var xhr = createXhr(); + + xhr.open(method, url, true); + forEach(headers, function(value, key) { + if (isDefined(value)) { + xhr.setRequestHeader(key, value); + } + }); + + xhr.onload = function requestLoaded() { + var statusText = xhr.statusText || ''; + + // responseText is the old-school way of retrieving response (supported by IE8 & 9) + // response/responseType properties were introduced in XHR Level2 spec (supported by IE10) + var response = ('response' in xhr) ? xhr.response : xhr.responseText; + + // normalize IE9 bug (http://bugs.jquery.com/ticket/1450) + var status = xhr.status === 1223 ? 204 : xhr.status; + + // fix status code when it is 0 (0 status is undocumented). + // Occurs when accessing file resources or on Android 4.1 stock browser + // while retrieving files from application cache. + if (status === 0) { + status = response ? 200 : urlResolve(url).protocol == 'file' ? 404 : 0; + } + + completeRequest(callback, + status, + response, + xhr.getAllResponseHeaders(), + statusText); + }; + + var requestError = function() { + // The response is always empty + // See https://xhr.spec.whatwg.org/#request-error-steps and https://fetch.spec.whatwg.org/#concept-network-error + completeRequest(callback, -1, null, null, ''); + }; + + xhr.onerror = requestError; + xhr.onabort = requestError; + + if (withCredentials) { + xhr.withCredentials = true; + } + + if (responseType) { + try { + xhr.responseType = responseType; + } catch (e) { + // WebKit added support for the json responseType value on 09/03/2013 + // https://bugs.webkit.org/show_bug.cgi?id=73648. Versions of Safari prior to 7 are + // known to throw when setting the value "json" as the response type. Other older + // browsers implementing the responseType + // + // The json response type can be ignored if not supported, because JSON payloads are + // parsed on the client-side regardless. + if (responseType !== 'json') { + throw e; + } + } + } + + xhr.send(post); + } + + if (timeout > 0) { + var timeoutId = $browserDefer(timeoutRequest, timeout); + } else if (isPromiseLike(timeout)) { + timeout.then(timeoutRequest); + } + + + function timeoutRequest() { + jsonpDone && jsonpDone(); + xhr && xhr.abort(); + } + + function completeRequest(callback, status, response, headersString, statusText) { + // cancel timeout and subsequent timeout promise resolution + if (timeoutId !== undefined) { + $browserDefer.cancel(timeoutId); + } + jsonpDone = xhr = null; + + callback(status, response, headersString, statusText); + $browser.$$completeOutstandingRequest(noop); + } + }; + + function jsonpReq(url, callbackId, done) { + // we can't use jQuery/jqLite here because jQuery does crazy stuff with script elements, e.g.: + // - fetches local scripts via XHR and evals them + // - adds and immediately removes script elements from the document + var script = rawDocument.createElement('script'), callback = null; + script.type = "text/javascript"; + script.src = url; + script.async = true; + + callback = function(event) { + removeEventListenerFn(script, "load", callback); + removeEventListenerFn(script, "error", callback); + rawDocument.body.removeChild(script); + script = null; + var status = -1; + var text = "unknown"; + + if (event) { + if (event.type === "load" && !callbacks[callbackId].called) { + event = { type: "error" }; + } + text = event.type; + status = event.type === "error" ? 404 : 200; + } + + if (done) { + done(status, text); + } + }; + + addEventListenerFn(script, "load", callback); + addEventListenerFn(script, "error", callback); + rawDocument.body.appendChild(script); + return callback; + } +} + +var $interpolateMinErr = angular.$interpolateMinErr = minErr('$interpolate'); +$interpolateMinErr.throwNoconcat = function(text) { + throw $interpolateMinErr('noconcat', + "Error while interpolating: {0}\nStrict Contextual Escaping disallows " + + "interpolations that concatenate multiple expressions when a trusted value is " + + "required. See http://docs.angularjs.org/api/ng.$sce", text); +}; + +$interpolateMinErr.interr = function(text, err) { + return $interpolateMinErr('interr', "Can't interpolate: {0}\n{1}", text, err.toString()); +}; + +/** + * @ngdoc provider + * @name $interpolateProvider + * + * @description + * + * Used for configuring the interpolation markup. Defaults to `{{` and `}}`. + * + * @example + + + +
    + //demo.label// +
    +
    + + it('should interpolate binding with custom symbols', function() { + expect(element(by.binding('demo.label')).getText()).toBe('This binding is brought you by // interpolation symbols.'); + }); + +
    + */ +function $InterpolateProvider() { + var startSymbol = '{{'; + var endSymbol = '}}'; + + /** + * @ngdoc method + * @name $interpolateProvider#startSymbol + * @description + * Symbol to denote start of expression in the interpolated string. Defaults to `{{`. + * + * @param {string=} value new value to set the starting symbol to. + * @returns {string|self} Returns the symbol when used as getter and self if used as setter. + */ + this.startSymbol = function(value) { + if (value) { + startSymbol = value; + return this; + } else { + return startSymbol; + } + }; + + /** + * @ngdoc method + * @name $interpolateProvider#endSymbol + * @description + * Symbol to denote the end of expression in the interpolated string. Defaults to `}}`. + * + * @param {string=} value new value to set the ending symbol to. + * @returns {string|self} Returns the symbol when used as getter and self if used as setter. + */ + this.endSymbol = function(value) { + if (value) { + endSymbol = value; + return this; + } else { + return endSymbol; + } + }; + + + this.$get = ['$parse', '$exceptionHandler', '$sce', function($parse, $exceptionHandler, $sce) { + var startSymbolLength = startSymbol.length, + endSymbolLength = endSymbol.length, + escapedStartRegexp = new RegExp(startSymbol.replace(/./g, escape), 'g'), + escapedEndRegexp = new RegExp(endSymbol.replace(/./g, escape), 'g'); + + function escape(ch) { + return '\\\\\\' + ch; + } + + function unescapeText(text) { + return text.replace(escapedStartRegexp, startSymbol). + replace(escapedEndRegexp, endSymbol); + } + + function stringify(value) { + if (value == null) { // null || undefined + return ''; + } + switch (typeof value) { + case 'string': + break; + case 'number': + value = '' + value; + break; + default: + value = toJson(value); + } + + return value; + } + + /** + * @ngdoc service + * @name $interpolate + * @kind function + * + * @requires $parse + * @requires $sce + * + * @description + * + * Compiles a string with markup into an interpolation function. This service is used by the + * HTML {@link ng.$compile $compile} service for data binding. See + * {@link ng.$interpolateProvider $interpolateProvider} for configuring the + * interpolation markup. + * + * + * ```js + * var $interpolate = ...; // injected + * var exp = $interpolate('Hello {{name | uppercase}}!'); + * expect(exp({name:'Angular'}).toEqual('Hello ANGULAR!'); + * ``` + * + * `$interpolate` takes an optional fourth argument, `allOrNothing`. If `allOrNothing` is + * `true`, the interpolation function will return `undefined` unless all embedded expressions + * evaluate to a value other than `undefined`. + * + * ```js + * var $interpolate = ...; // injected + * var context = {greeting: 'Hello', name: undefined }; + * + * // default "forgiving" mode + * var exp = $interpolate('{{greeting}} {{name}}!'); + * expect(exp(context)).toEqual('Hello !'); + * + * // "allOrNothing" mode + * exp = $interpolate('{{greeting}} {{name}}!', false, null, true); + * expect(exp(context)).toBeUndefined(); + * context.name = 'Angular'; + * expect(exp(context)).toEqual('Hello Angular!'); + * ``` + * + * `allOrNothing` is useful for interpolating URLs. `ngSrc` and `ngSrcset` use this behavior. + * + * ####Escaped Interpolation + * $interpolate provides a mechanism for escaping interpolation markers. Start and end markers + * can be escaped by preceding each of their characters with a REVERSE SOLIDUS U+005C (backslash). + * It will be rendered as a regular start/end marker, and will not be interpreted as an expression + * or binding. + * + * This enables web-servers to prevent script injection attacks and defacing attacks, to some + * degree, while also enabling code examples to work without relying on the + * {@link ng.directive:ngNonBindable ngNonBindable} directive. + * + * **For security purposes, it is strongly encouraged that web servers escape user-supplied data, + * replacing angle brackets (<, >) with &lt; and &gt; respectively, and replacing all + * interpolation start/end markers with their escaped counterparts.** + * + * Escaped interpolation markers are only replaced with the actual interpolation markers in rendered + * output when the $interpolate service processes the text. So, for HTML elements interpolated + * by {@link ng.$compile $compile}, or otherwise interpolated with the `mustHaveExpression` parameter + * set to `true`, the interpolated text must contain an unescaped interpolation expression. As such, + * this is typically useful only when user-data is used in rendering a template from the server, or + * when otherwise untrusted data is used by a directive. + * + * + * + *
    + *

    {{apptitle}}: \{\{ username = "defaced value"; \}\} + *

    + *

    {{username}} attempts to inject code which will deface the + * application, but fails to accomplish their task, because the server has correctly + * escaped the interpolation start/end markers with REVERSE SOLIDUS U+005C (backslash) + * characters.

    + *

    Instead, the result of the attempted script injection is visible, and can be removed + * from the database by an administrator.

    + *
    + *
    + *
    + * + * @param {string} text The text with markup to interpolate. + * @param {boolean=} mustHaveExpression if set to true then the interpolation string must have + * embedded expression in order to return an interpolation function. Strings with no + * embedded expression will return null for the interpolation function. + * @param {string=} trustedContext when provided, the returned function passes the interpolated + * result through {@link ng.$sce#getTrusted $sce.getTrusted(interpolatedResult, + * trustedContext)} before returning it. Refer to the {@link ng.$sce $sce} service that + * provides Strict Contextual Escaping for details. + * @param {boolean=} allOrNothing if `true`, then the returned function returns undefined + * unless all embedded expressions evaluate to a value other than `undefined`. + * @returns {function(context)} an interpolation function which is used to compute the + * interpolated string. The function has these parameters: + * + * - `context`: evaluation context for all expressions embedded in the interpolated text + */ + function $interpolate(text, mustHaveExpression, trustedContext, allOrNothing) { + allOrNothing = !!allOrNothing; + var startIndex, + endIndex, + index = 0, + expressions = [], + parseFns = [], + textLength = text.length, + exp, + concat = [], + expressionPositions = []; + + while (index < textLength) { + if (((startIndex = text.indexOf(startSymbol, index)) != -1) && + ((endIndex = text.indexOf(endSymbol, startIndex + startSymbolLength)) != -1)) { + if (index !== startIndex) { + concat.push(unescapeText(text.substring(index, startIndex))); + } + exp = text.substring(startIndex + startSymbolLength, endIndex); + expressions.push(exp); + parseFns.push($parse(exp, parseStringifyInterceptor)); + index = endIndex + endSymbolLength; + expressionPositions.push(concat.length); + concat.push(''); + } else { + // we did not find an interpolation, so we have to add the remainder to the separators array + if (index !== textLength) { + concat.push(unescapeText(text.substring(index))); + } + break; + } + } + + // Concatenating expressions makes it hard to reason about whether some combination of + // concatenated values are unsafe to use and could easily lead to XSS. By requiring that a + // single expression be used for iframe[src], object[src], etc., we ensure that the value + // that's used is assigned or constructed by some JS code somewhere that is more testable or + // make it obvious that you bound the value to some user controlled value. This helps reduce + // the load when auditing for XSS issues. + if (trustedContext && concat.length > 1) { + $interpolateMinErr.throwNoconcat(text); + } + + if (!mustHaveExpression || expressions.length) { + var compute = function(values) { + for (var i = 0, ii = expressions.length; i < ii; i++) { + if (allOrNothing && isUndefined(values[i])) return; + concat[expressionPositions[i]] = values[i]; + } + return concat.join(''); + }; + + var getValue = function(value) { + return trustedContext ? + $sce.getTrusted(trustedContext, value) : + $sce.valueOf(value); + }; + + return extend(function interpolationFn(context) { + var i = 0; + var ii = expressions.length; + var values = new Array(ii); + + try { + for (; i < ii; i++) { + values[i] = parseFns[i](context); + } + + return compute(values); + } catch (err) { + $exceptionHandler($interpolateMinErr.interr(text, err)); + } + + }, { + // all of these properties are undocumented for now + exp: text, //just for compatibility with regular watchers created via $watch + expressions: expressions, + $$watchDelegate: function(scope, listener) { + var lastValue; + return scope.$watchGroup(parseFns, function interpolateFnWatcher(values, oldValues) { + var currValue = compute(values); + if (isFunction(listener)) { + listener.call(this, currValue, values !== oldValues ? lastValue : currValue, scope); + } + lastValue = currValue; + }); + } + }); + } + + function parseStringifyInterceptor(value) { + try { + value = getValue(value); + return allOrNothing && !isDefined(value) ? value : stringify(value); + } catch (err) { + $exceptionHandler($interpolateMinErr.interr(text, err)); + } + } + } + + + /** + * @ngdoc method + * @name $interpolate#startSymbol + * @description + * Symbol to denote the start of expression in the interpolated string. Defaults to `{{`. + * + * Use {@link ng.$interpolateProvider#startSymbol `$interpolateProvider.startSymbol`} to change + * the symbol. + * + * @returns {string} start symbol. + */ + $interpolate.startSymbol = function() { + return startSymbol; + }; + + + /** + * @ngdoc method + * @name $interpolate#endSymbol + * @description + * Symbol to denote the end of expression in the interpolated string. Defaults to `}}`. + * + * Use {@link ng.$interpolateProvider#endSymbol `$interpolateProvider.endSymbol`} to change + * the symbol. + * + * @returns {string} end symbol. + */ + $interpolate.endSymbol = function() { + return endSymbol; + }; + + return $interpolate; + }]; +} + +function $IntervalProvider() { + this.$get = ['$rootScope', '$window', '$q', '$$q', + function($rootScope, $window, $q, $$q) { + var intervals = {}; + + + /** + * @ngdoc service + * @name $interval + * + * @description + * Angular's wrapper for `window.setInterval`. The `fn` function is executed every `delay` + * milliseconds. + * + * The return value of registering an interval function is a promise. This promise will be + * notified upon each tick of the interval, and will be resolved after `count` iterations, or + * run indefinitely if `count` is not defined. The value of the notification will be the + * number of iterations that have run. + * To cancel an interval, call `$interval.cancel(promise)`. + * + * In tests you can use {@link ngMock.$interval#flush `$interval.flush(millis)`} to + * move forward by `millis` milliseconds and trigger any functions scheduled to run in that + * time. + * + *
    + * **Note**: Intervals created by this service must be explicitly destroyed when you are finished + * with them. In particular they are not automatically destroyed when a controller's scope or a + * directive's element are destroyed. + * You should take this into consideration and make sure to always cancel the interval at the + * appropriate moment. See the example below for more details on how and when to do this. + *
    + * + * @param {function()} fn A function that should be called repeatedly. + * @param {number} delay Number of milliseconds between each function call. + * @param {number=} [count=0] Number of times to repeat. If not set, or 0, will repeat + * indefinitely. + * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise + * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block. + * @param {...*=} Pass additional parameters to the executed function. + * @returns {promise} A promise which will be notified on each iteration. + * + * @example + * + * + * + * + *
    + *
    + *
    + * Current time is: + *
    + * Blood 1 : {{blood_1}} + * Blood 2 : {{blood_2}} + * + * + * + *
    + *
    + * + *
    + *
    + */ + function interval(fn, delay, count, invokeApply) { + var hasParams = arguments.length > 4, + args = hasParams ? sliceArgs(arguments, 4) : [], + setInterval = $window.setInterval, + clearInterval = $window.clearInterval, + iteration = 0, + skipApply = (isDefined(invokeApply) && !invokeApply), + deferred = (skipApply ? $$q : $q).defer(), + promise = deferred.promise; + + count = isDefined(count) ? count : 0; + + promise.then(null, null, (!hasParams) ? fn : function() { + fn.apply(null, args); + }); + + promise.$$intervalId = setInterval(function tick() { + deferred.notify(iteration++); + + if (count > 0 && iteration >= count) { + deferred.resolve(iteration); + clearInterval(promise.$$intervalId); + delete intervals[promise.$$intervalId]; + } + + if (!skipApply) $rootScope.$apply(); + + }, delay); + + intervals[promise.$$intervalId] = deferred; + + return promise; + } + + + /** + * @ngdoc method + * @name $interval#cancel + * + * @description + * Cancels a task associated with the `promise`. + * + * @param {promise} promise returned by the `$interval` function. + * @returns {boolean} Returns `true` if the task was successfully canceled. + */ + interval.cancel = function(promise) { + if (promise && promise.$$intervalId in intervals) { + intervals[promise.$$intervalId].reject('canceled'); + $window.clearInterval(promise.$$intervalId); + delete intervals[promise.$$intervalId]; + return true; + } + return false; + }; + + return interval; + }]; +} + +/** + * @ngdoc service + * @name $locale + * + * @description + * $locale service provides localization rules for various Angular components. As of right now the + * only public api is: + * + * * `id` – `{string}` – locale id formatted as `languageId-countryId` (e.g. `en-us`) + */ +function $LocaleProvider() { + this.$get = function() { + return { + id: 'en-us', + + NUMBER_FORMATS: { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PATTERNS: [ + { // Decimal Pattern + minInt: 1, + minFrac: 0, + maxFrac: 3, + posPre: '', + posSuf: '', + negPre: '-', + negSuf: '', + gSize: 3, + lgSize: 3 + },{ //Currency Pattern + minInt: 1, + minFrac: 2, + maxFrac: 2, + posPre: '\u00A4', + posSuf: '', + negPre: '(\u00A4', + negSuf: ')', + gSize: 3, + lgSize: 3 + } + ], + CURRENCY_SYM: '$' + }, + + DATETIME_FORMATS: { + MONTH: + 'January,February,March,April,May,June,July,August,September,October,November,December' + .split(','), + SHORTMONTH: 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(','), + DAY: 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(','), + SHORTDAY: 'Sun,Mon,Tue,Wed,Thu,Fri,Sat'.split(','), + AMPMS: ['AM','PM'], + medium: 'MMM d, y h:mm:ss a', + 'short': 'M/d/yy h:mm a', + fullDate: 'EEEE, MMMM d, y', + longDate: 'MMMM d, y', + mediumDate: 'MMM d, y', + shortDate: 'M/d/yy', + mediumTime: 'h:mm:ss a', + shortTime: 'h:mm a', + ERANAMES: [ + "Before Christ", + "Anno Domini" + ], + ERAS: [ + "BC", + "AD" + ] + }, + + pluralCat: function(num) { + if (num === 1) { + return 'one'; + } + return 'other'; + } + }; + }; +} + +var PATH_MATCH = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/, + DEFAULT_PORTS = {'http': 80, 'https': 443, 'ftp': 21}; +var $locationMinErr = minErr('$location'); + + +/** + * Encode path using encodeUriSegment, ignoring forward slashes + * + * @param {string} path Path to encode + * @returns {string} + */ +function encodePath(path) { + var segments = path.split('/'), + i = segments.length; + + while (i--) { + segments[i] = encodeUriSegment(segments[i]); + } + + return segments.join('/'); +} + +function parseAbsoluteUrl(absoluteUrl, locationObj) { + var parsedUrl = urlResolve(absoluteUrl); + + locationObj.$$protocol = parsedUrl.protocol; + locationObj.$$host = parsedUrl.hostname; + locationObj.$$port = toInt(parsedUrl.port) || DEFAULT_PORTS[parsedUrl.protocol] || null; +} + + +function parseAppUrl(relativeUrl, locationObj) { + var prefixed = (relativeUrl.charAt(0) !== '/'); + if (prefixed) { + relativeUrl = '/' + relativeUrl; + } + var match = urlResolve(relativeUrl); + locationObj.$$path = decodeURIComponent(prefixed && match.pathname.charAt(0) === '/' ? + match.pathname.substring(1) : match.pathname); + locationObj.$$search = parseKeyValue(match.search); + locationObj.$$hash = decodeURIComponent(match.hash); + + // make sure path starts with '/'; + if (locationObj.$$path && locationObj.$$path.charAt(0) != '/') { + locationObj.$$path = '/' + locationObj.$$path; + } +} + + +/** + * + * @param {string} begin + * @param {string} whole + * @returns {string} returns text from whole after begin or undefined if it does not begin with + * expected string. + */ +function beginsWith(begin, whole) { + if (whole.indexOf(begin) === 0) { + return whole.substr(begin.length); + } +} + + +function stripHash(url) { + var index = url.indexOf('#'); + return index == -1 ? url : url.substr(0, index); +} + +function trimEmptyHash(url) { + return url.replace(/(#.+)|#$/, '$1'); +} + + +function stripFile(url) { + return url.substr(0, stripHash(url).lastIndexOf('/') + 1); +} + +/* return the server only (scheme://host:port) */ +function serverBase(url) { + return url.substring(0, url.indexOf('/', url.indexOf('//') + 2)); +} + + +/** + * LocationHtml5Url represents an url + * This object is exposed as $location service when HTML5 mode is enabled and supported + * + * @constructor + * @param {string} appBase application base URL + * @param {string} basePrefix url path prefix + */ +function LocationHtml5Url(appBase, basePrefix) { + this.$$html5 = true; + basePrefix = basePrefix || ''; + var appBaseNoFile = stripFile(appBase); + parseAbsoluteUrl(appBase, this); + + + /** + * Parse given html5 (regular) url string into properties + * @param {string} url HTML5 url + * @private + */ + this.$$parse = function(url) { + var pathUrl = beginsWith(appBaseNoFile, url); + if (!isString(pathUrl)) { + throw $locationMinErr('ipthprfx', 'Invalid url "{0}", missing path prefix "{1}".', url, + appBaseNoFile); + } + + parseAppUrl(pathUrl, this); + + if (!this.$$path) { + this.$$path = '/'; + } + + this.$$compose(); + }; + + /** + * Compose url and update `absUrl` property + * @private + */ + this.$$compose = function() { + var search = toKeyValue(this.$$search), + hash = this.$$hash ? '#' + encodeUriSegment(this.$$hash) : ''; + + this.$$url = encodePath(this.$$path) + (search ? '?' + search : '') + hash; + this.$$absUrl = appBaseNoFile + this.$$url.substr(1); // first char is always '/' + }; + + this.$$parseLinkUrl = function(url, relHref) { + if (relHref && relHref[0] === '#') { + // special case for links to hash fragments: + // keep the old url and only replace the hash fragment + this.hash(relHref.slice(1)); + return true; + } + var appUrl, prevAppUrl; + var rewrittenUrl; + + if ((appUrl = beginsWith(appBase, url)) !== undefined) { + prevAppUrl = appUrl; + if ((appUrl = beginsWith(basePrefix, appUrl)) !== undefined) { + rewrittenUrl = appBaseNoFile + (beginsWith('/', appUrl) || appUrl); + } else { + rewrittenUrl = appBase + prevAppUrl; + } + } else if ((appUrl = beginsWith(appBaseNoFile, url)) !== undefined) { + rewrittenUrl = appBaseNoFile + appUrl; + } else if (appBaseNoFile == url + '/') { + rewrittenUrl = appBaseNoFile; + } + if (rewrittenUrl) { + this.$$parse(rewrittenUrl); + } + return !!rewrittenUrl; + }; +} + + +/** + * LocationHashbangUrl represents url + * This object is exposed as $location service when developer doesn't opt into html5 mode. + * It also serves as the base class for html5 mode fallback on legacy browsers. + * + * @constructor + * @param {string} appBase application base URL + * @param {string} hashPrefix hashbang prefix + */ +function LocationHashbangUrl(appBase, hashPrefix) { + var appBaseNoFile = stripFile(appBase); + + parseAbsoluteUrl(appBase, this); + + + /** + * Parse given hashbang url into properties + * @param {string} url Hashbang url + * @private + */ + this.$$parse = function(url) { + var withoutBaseUrl = beginsWith(appBase, url) || beginsWith(appBaseNoFile, url); + var withoutHashUrl; + + if (!isUndefined(withoutBaseUrl) && withoutBaseUrl.charAt(0) === '#') { + + // The rest of the url starts with a hash so we have + // got either a hashbang path or a plain hash fragment + withoutHashUrl = beginsWith(hashPrefix, withoutBaseUrl); + if (isUndefined(withoutHashUrl)) { + // There was no hashbang prefix so we just have a hash fragment + withoutHashUrl = withoutBaseUrl; + } + + } else { + // There was no hashbang path nor hash fragment: + // If we are in HTML5 mode we use what is left as the path; + // Otherwise we ignore what is left + if (this.$$html5) { + withoutHashUrl = withoutBaseUrl; + } else { + withoutHashUrl = ''; + if (isUndefined(withoutBaseUrl)) { + appBase = url; + this.replace(); + } + } + } + + parseAppUrl(withoutHashUrl, this); + + this.$$path = removeWindowsDriveName(this.$$path, withoutHashUrl, appBase); + + this.$$compose(); + + /* + * In Windows, on an anchor node on documents loaded from + * the filesystem, the browser will return a pathname + * prefixed with the drive name ('/C:/path') when a + * pathname without a drive is set: + * * a.setAttribute('href', '/foo') + * * a.pathname === '/C:/foo' //true + * + * Inside of Angular, we're always using pathnames that + * do not include drive names for routing. + */ + function removeWindowsDriveName(path, url, base) { + /* + Matches paths for file protocol on windows, + such as /C:/foo/bar, and captures only /foo/bar. + */ + var windowsFilePathExp = /^\/[A-Z]:(\/.*)/; + + var firstPathSegmentMatch; + + //Get the relative path from the input URL. + if (url.indexOf(base) === 0) { + url = url.replace(base, ''); + } + + // The input URL intentionally contains a first path segment that ends with a colon. + if (windowsFilePathExp.exec(url)) { + return path; + } + + firstPathSegmentMatch = windowsFilePathExp.exec(path); + return firstPathSegmentMatch ? firstPathSegmentMatch[1] : path; + } + }; + + /** + * Compose hashbang url and update `absUrl` property + * @private + */ + this.$$compose = function() { + var search = toKeyValue(this.$$search), + hash = this.$$hash ? '#' + encodeUriSegment(this.$$hash) : ''; + + this.$$url = encodePath(this.$$path) + (search ? '?' + search : '') + hash; + this.$$absUrl = appBase + (this.$$url ? hashPrefix + this.$$url : ''); + }; + + this.$$parseLinkUrl = function(url, relHref) { + if (stripHash(appBase) == stripHash(url)) { + this.$$parse(url); + return true; + } + return false; + }; +} + + +/** + * LocationHashbangUrl represents url + * This object is exposed as $location service when html5 history api is enabled but the browser + * does not support it. + * + * @constructor + * @param {string} appBase application base URL + * @param {string} hashPrefix hashbang prefix + */ +function LocationHashbangInHtml5Url(appBase, hashPrefix) { + this.$$html5 = true; + LocationHashbangUrl.apply(this, arguments); + + var appBaseNoFile = stripFile(appBase); + + this.$$parseLinkUrl = function(url, relHref) { + if (relHref && relHref[0] === '#') { + // special case for links to hash fragments: + // keep the old url and only replace the hash fragment + this.hash(relHref.slice(1)); + return true; + } + + var rewrittenUrl; + var appUrl; + + if (appBase == stripHash(url)) { + rewrittenUrl = url; + } else if ((appUrl = beginsWith(appBaseNoFile, url))) { + rewrittenUrl = appBase + hashPrefix + appUrl; + } else if (appBaseNoFile === url + '/') { + rewrittenUrl = appBaseNoFile; + } + if (rewrittenUrl) { + this.$$parse(rewrittenUrl); + } + return !!rewrittenUrl; + }; + + this.$$compose = function() { + var search = toKeyValue(this.$$search), + hash = this.$$hash ? '#' + encodeUriSegment(this.$$hash) : ''; + + this.$$url = encodePath(this.$$path) + (search ? '?' + search : '') + hash; + // include hashPrefix in $$absUrl when $$url is empty so IE8 & 9 do not reload page because of removal of '#' + this.$$absUrl = appBase + hashPrefix + this.$$url; + }; + +} + + +var locationPrototype = { + + /** + * Are we in html5 mode? + * @private + */ + $$html5: false, + + /** + * Has any change been replacing? + * @private + */ + $$replace: false, + + /** + * @ngdoc method + * @name $location#absUrl + * + * @description + * This method is getter only. + * + * Return full url representation with all segments encoded according to rules specified in + * [RFC 3986](http://www.ietf.org/rfc/rfc3986.txt). + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var absUrl = $location.absUrl(); + * // => "http://example.com/#/some/path?foo=bar&baz=xoxo" + * ``` + * + * @return {string} full url + */ + absUrl: locationGetter('$$absUrl'), + + /** + * @ngdoc method + * @name $location#url + * + * @description + * This method is getter / setter. + * + * Return url (e.g. `/path?a=b#hash`) when called without any parameter. + * + * Change path, search and hash, when called with parameter and return `$location`. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var url = $location.url(); + * // => "/some/path?foo=bar&baz=xoxo" + * ``` + * + * @param {string=} url New url without base prefix (e.g. `/path?a=b#hash`) + * @return {string} url + */ + url: function(url) { + if (isUndefined(url)) { + return this.$$url; + } + + var match = PATH_MATCH.exec(url); + if (match[1] || url === '') this.path(decodeURIComponent(match[1])); + if (match[2] || match[1] || url === '') this.search(match[3] || ''); + this.hash(match[5] || ''); + + return this; + }, + + /** + * @ngdoc method + * @name $location#protocol + * + * @description + * This method is getter only. + * + * Return protocol of current url. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var protocol = $location.protocol(); + * // => "http" + * ``` + * + * @return {string} protocol of current url + */ + protocol: locationGetter('$$protocol'), + + /** + * @ngdoc method + * @name $location#host + * + * @description + * This method is getter only. + * + * Return host of current url. + * + * Note: compared to the non-angular version `location.host` which returns `hostname:port`, this returns the `hostname` portion only. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var host = $location.host(); + * // => "example.com" + * + * // given url http://user:password@example.com:8080/#/some/path?foo=bar&baz=xoxo + * host = $location.host(); + * // => "example.com" + * host = location.host; + * // => "example.com:8080" + * ``` + * + * @return {string} host of current url. + */ + host: locationGetter('$$host'), + + /** + * @ngdoc method + * @name $location#port + * + * @description + * This method is getter only. + * + * Return port of current url. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var port = $location.port(); + * // => 80 + * ``` + * + * @return {Number} port + */ + port: locationGetter('$$port'), + + /** + * @ngdoc method + * @name $location#path + * + * @description + * This method is getter / setter. + * + * Return path of current url when called without any parameter. + * + * Change path when called with parameter and return `$location`. + * + * Note: Path should always begin with forward slash (/), this method will add the forward slash + * if it is missing. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var path = $location.path(); + * // => "/some/path" + * ``` + * + * @param {(string|number)=} path New path + * @return {string} path + */ + path: locationGetterSetter('$$path', function(path) { + path = path !== null ? path.toString() : ''; + return path.charAt(0) == '/' ? path : '/' + path; + }), + + /** + * @ngdoc method + * @name $location#search + * + * @description + * This method is getter / setter. + * + * Return search part (as object) of current url when called without any parameter. + * + * Change search part when called with parameter and return `$location`. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo + * var searchObject = $location.search(); + * // => {foo: 'bar', baz: 'xoxo'} + * + * // set foo to 'yipee' + * $location.search('foo', 'yipee'); + * // $location.search() => {foo: 'yipee', baz: 'xoxo'} + * ``` + * + * @param {string|Object.|Object.>} search New search params - string or + * hash object. + * + * When called with a single argument the method acts as a setter, setting the `search` component + * of `$location` to the specified value. + * + * If the argument is a hash object containing an array of values, these values will be encoded + * as duplicate search parameters in the url. + * + * @param {(string|Number|Array|boolean)=} paramValue If `search` is a string or number, then `paramValue` + * will override only a single search property. + * + * If `paramValue` is an array, it will override the property of the `search` component of + * `$location` specified via the first argument. + * + * If `paramValue` is `null`, the property specified via the first argument will be deleted. + * + * If `paramValue` is `true`, the property specified via the first argument will be added with no + * value nor trailing equal sign. + * + * @return {Object} If called with no arguments returns the parsed `search` object. If called with + * one or more arguments returns `$location` object itself. + */ + search: function(search, paramValue) { + switch (arguments.length) { + case 0: + return this.$$search; + case 1: + if (isString(search) || isNumber(search)) { + search = search.toString(); + this.$$search = parseKeyValue(search); + } else if (isObject(search)) { + search = copy(search, {}); + // remove object undefined or null properties + forEach(search, function(value, key) { + if (value == null) delete search[key]; + }); + + this.$$search = search; + } else { + throw $locationMinErr('isrcharg', + 'The first argument of the `$location#search()` call must be a string or an object.'); + } + break; + default: + if (isUndefined(paramValue) || paramValue === null) { + delete this.$$search[search]; + } else { + this.$$search[search] = paramValue; + } + } + + this.$$compose(); + return this; + }, + + /** + * @ngdoc method + * @name $location#hash + * + * @description + * This method is getter / setter. + * + * Return hash fragment when called without any parameter. + * + * Change hash fragment when called with parameter and return `$location`. + * + * + * ```js + * // given url http://example.com/#/some/path?foo=bar&baz=xoxo#hashValue + * var hash = $location.hash(); + * // => "hashValue" + * ``` + * + * @param {(string|number)=} hash New hash fragment + * @return {string} hash + */ + hash: locationGetterSetter('$$hash', function(hash) { + return hash !== null ? hash.toString() : ''; + }), + + /** + * @ngdoc method + * @name $location#replace + * + * @description + * If called, all changes to $location during current `$digest` will be replacing current history + * record, instead of adding new one. + */ + replace: function() { + this.$$replace = true; + return this; + } +}; + +forEach([LocationHashbangInHtml5Url, LocationHashbangUrl, LocationHtml5Url], function(Location) { + Location.prototype = Object.create(locationPrototype); + + /** + * @ngdoc method + * @name $location#state + * + * @description + * This method is getter / setter. + * + * Return the history state object when called without any parameter. + * + * Change the history state object when called with one parameter and return `$location`. + * The state object is later passed to `pushState` or `replaceState`. + * + * NOTE: This method is supported only in HTML5 mode and only in browsers supporting + * the HTML5 History API (i.e. methods `pushState` and `replaceState`). If you need to support + * older browsers (like IE9 or Android < 4.0), don't use this method. + * + * @param {object=} state State object for pushState or replaceState + * @return {object} state + */ + Location.prototype.state = function(state) { + if (!arguments.length) { + return this.$$state; + } + + if (Location !== LocationHtml5Url || !this.$$html5) { + throw $locationMinErr('nostate', 'History API state support is available only ' + + 'in HTML5 mode and only in browsers supporting HTML5 History API'); + } + // The user might modify `stateObject` after invoking `$location.state(stateObject)` + // but we're changing the $$state reference to $browser.state() during the $digest + // so the modification window is narrow. + this.$$state = isUndefined(state) ? null : state; + + return this; + }; +}); + + +function locationGetter(property) { + return function() { + return this[property]; + }; +} + + +function locationGetterSetter(property, preprocess) { + return function(value) { + if (isUndefined(value)) { + return this[property]; + } + + this[property] = preprocess(value); + this.$$compose(); + + return this; + }; +} + + +/** + * @ngdoc service + * @name $location + * + * @requires $rootElement + * + * @description + * The $location service parses the URL in the browser address bar (based on the + * [window.location](https://developer.mozilla.org/en/window.location)) and makes the URL + * available to your application. Changes to the URL in the address bar are reflected into + * $location service and changes to $location are reflected into the browser address bar. + * + * **The $location service:** + * + * - Exposes the current URL in the browser address bar, so you can + * - Watch and observe the URL. + * - Change the URL. + * - Synchronizes the URL with the browser when the user + * - Changes the address bar. + * - Clicks the back or forward button (or clicks a History link). + * - Clicks on a link. + * - Represents the URL object as a set of methods (protocol, host, port, path, search, hash). + * + * For more information see {@link guide/$location Developer Guide: Using $location} + */ + +/** + * @ngdoc provider + * @name $locationProvider + * @description + * Use the `$locationProvider` to configure how the application deep linking paths are stored. + */ +function $LocationProvider() { + var hashPrefix = '', + html5Mode = { + enabled: false, + requireBase: true, + rewriteLinks: true + }; + + /** + * @ngdoc method + * @name $locationProvider#hashPrefix + * @description + * @param {string=} prefix Prefix for hash part (containing path and search) + * @returns {*} current value if used as getter or itself (chaining) if used as setter + */ + this.hashPrefix = function(prefix) { + if (isDefined(prefix)) { + hashPrefix = prefix; + return this; + } else { + return hashPrefix; + } + }; + + /** + * @ngdoc method + * @name $locationProvider#html5Mode + * @description + * @param {(boolean|Object)=} mode If boolean, sets `html5Mode.enabled` to value. + * If object, sets `enabled`, `requireBase` and `rewriteLinks` to respective values. Supported + * properties: + * - **enabled** – `{boolean}` – (default: false) If true, will rely on `history.pushState` to + * change urls where supported. Will fall back to hash-prefixed paths in browsers that do not + * support `pushState`. + * - **requireBase** - `{boolean}` - (default: `true`) When html5Mode is enabled, specifies + * whether or not a tag is required to be present. If `enabled` and `requireBase` are + * true, and a base tag is not present, an error will be thrown when `$location` is injected. + * See the {@link guide/$location $location guide for more information} + * - **rewriteLinks** - `{boolean}` - (default: `true`) When html5Mode is enabled, + * enables/disables url rewriting for relative links. + * + * @returns {Object} html5Mode object if used as getter or itself (chaining) if used as setter + */ + this.html5Mode = function(mode) { + if (isBoolean(mode)) { + html5Mode.enabled = mode; + return this; + } else if (isObject(mode)) { + + if (isBoolean(mode.enabled)) { + html5Mode.enabled = mode.enabled; + } + + if (isBoolean(mode.requireBase)) { + html5Mode.requireBase = mode.requireBase; + } + + if (isBoolean(mode.rewriteLinks)) { + html5Mode.rewriteLinks = mode.rewriteLinks; + } + + return this; + } else { + return html5Mode; + } + }; + + /** + * @ngdoc event + * @name $location#$locationChangeStart + * @eventType broadcast on root scope + * @description + * Broadcasted before a URL will change. + * + * This change can be prevented by calling + * `preventDefault` method of the event. See {@link ng.$rootScope.Scope#$on} for more + * details about event object. Upon successful change + * {@link ng.$location#$locationChangeSuccess $locationChangeSuccess} is fired. + * + * The `newState` and `oldState` parameters may be defined only in HTML5 mode and when + * the browser supports the HTML5 History API. + * + * @param {Object} angularEvent Synthetic event object. + * @param {string} newUrl New URL + * @param {string=} oldUrl URL that was before it was changed. + * @param {string=} newState New history state object + * @param {string=} oldState History state object that was before it was changed. + */ + + /** + * @ngdoc event + * @name $location#$locationChangeSuccess + * @eventType broadcast on root scope + * @description + * Broadcasted after a URL was changed. + * + * The `newState` and `oldState` parameters may be defined only in HTML5 mode and when + * the browser supports the HTML5 History API. + * + * @param {Object} angularEvent Synthetic event object. + * @param {string} newUrl New URL + * @param {string=} oldUrl URL that was before it was changed. + * @param {string=} newState New history state object + * @param {string=} oldState History state object that was before it was changed. + */ + + this.$get = ['$rootScope', '$browser', '$sniffer', '$rootElement', '$window', + function($rootScope, $browser, $sniffer, $rootElement, $window) { + var $location, + LocationMode, + baseHref = $browser.baseHref(), // if base[href] is undefined, it defaults to '' + initialUrl = $browser.url(), + appBase; + + if (html5Mode.enabled) { + if (!baseHref && html5Mode.requireBase) { + throw $locationMinErr('nobase', + "$location in HTML5 mode requires a tag to be present!"); + } + appBase = serverBase(initialUrl) + (baseHref || '/'); + LocationMode = $sniffer.history ? LocationHtml5Url : LocationHashbangInHtml5Url; + } else { + appBase = stripHash(initialUrl); + LocationMode = LocationHashbangUrl; + } + $location = new LocationMode(appBase, '#' + hashPrefix); + $location.$$parseLinkUrl(initialUrl, initialUrl); + + $location.$$state = $browser.state(); + + var IGNORE_URI_REGEXP = /^\s*(javascript|mailto):/i; + + function setBrowserUrlWithFallback(url, replace, state) { + var oldUrl = $location.url(); + var oldState = $location.$$state; + try { + $browser.url(url, replace, state); + + // Make sure $location.state() returns referentially identical (not just deeply equal) + // state object; this makes possible quick checking if the state changed in the digest + // loop. Checking deep equality would be too expensive. + $location.$$state = $browser.state(); + } catch (e) { + // Restore old values if pushState fails + $location.url(oldUrl); + $location.$$state = oldState; + + throw e; + } + } + + $rootElement.on('click', function(event) { + // TODO(vojta): rewrite link when opening in new tab/window (in legacy browser) + // currently we open nice url link and redirect then + + if (!html5Mode.rewriteLinks || event.ctrlKey || event.metaKey || event.shiftKey || event.which == 2 || event.button == 2) return; + + var elm = jqLite(event.target); + + // traverse the DOM up to find first A tag + while (nodeName_(elm[0]) !== 'a') { + // ignore rewriting if no A tag (reached root element, or no parent - removed from document) + if (elm[0] === $rootElement[0] || !(elm = elm.parent())[0]) return; + } + + var absHref = elm.prop('href'); + // get the actual href attribute - see + // http://msdn.microsoft.com/en-us/library/ie/dd347148(v=vs.85).aspx + var relHref = elm.attr('href') || elm.attr('xlink:href'); + + if (isObject(absHref) && absHref.toString() === '[object SVGAnimatedString]') { + // SVGAnimatedString.animVal should be identical to SVGAnimatedString.baseVal, unless during + // an animation. + absHref = urlResolve(absHref.animVal).href; + } + + // Ignore when url is started with javascript: or mailto: + if (IGNORE_URI_REGEXP.test(absHref)) return; + + if (absHref && !elm.attr('target') && !event.isDefaultPrevented()) { + if ($location.$$parseLinkUrl(absHref, relHref)) { + // We do a preventDefault for all urls that are part of the angular application, + // in html5mode and also without, so that we are able to abort navigation without + // getting double entries in the location history. + event.preventDefault(); + // update location manually + if ($location.absUrl() != $browser.url()) { + $rootScope.$apply(); + // hack to work around FF6 bug 684208 when scenario runner clicks on links + $window.angular['ff-684208-preventDefault'] = true; + } + } + } + }); + + + // rewrite hashbang url <> html5 url + if (trimEmptyHash($location.absUrl()) != trimEmptyHash(initialUrl)) { + $browser.url($location.absUrl(), true); + } + + var initializing = true; + + // update $location when $browser url changes + $browser.onUrlChange(function(newUrl, newState) { + $rootScope.$evalAsync(function() { + var oldUrl = $location.absUrl(); + var oldState = $location.$$state; + var defaultPrevented; + + $location.$$parse(newUrl); + $location.$$state = newState; + + defaultPrevented = $rootScope.$broadcast('$locationChangeStart', newUrl, oldUrl, + newState, oldState).defaultPrevented; + + // if the location was changed by a `$locationChangeStart` handler then stop + // processing this location change + if ($location.absUrl() !== newUrl) return; + + if (defaultPrevented) { + $location.$$parse(oldUrl); + $location.$$state = oldState; + setBrowserUrlWithFallback(oldUrl, false, oldState); + } else { + initializing = false; + afterLocationChange(oldUrl, oldState); + } + }); + if (!$rootScope.$$phase) $rootScope.$digest(); + }); + + // update browser + $rootScope.$watch(function $locationWatch() { + var oldUrl = trimEmptyHash($browser.url()); + var newUrl = trimEmptyHash($location.absUrl()); + var oldState = $browser.state(); + var currentReplace = $location.$$replace; + var urlOrStateChanged = oldUrl !== newUrl || + ($location.$$html5 && $sniffer.history && oldState !== $location.$$state); + + if (initializing || urlOrStateChanged) { + initializing = false; + + $rootScope.$evalAsync(function() { + var newUrl = $location.absUrl(); + var defaultPrevented = $rootScope.$broadcast('$locationChangeStart', newUrl, oldUrl, + $location.$$state, oldState).defaultPrevented; + + // if the location was changed by a `$locationChangeStart` handler then stop + // processing this location change + if ($location.absUrl() !== newUrl) return; + + if (defaultPrevented) { + $location.$$parse(oldUrl); + $location.$$state = oldState; + } else { + if (urlOrStateChanged) { + setBrowserUrlWithFallback(newUrl, currentReplace, + oldState === $location.$$state ? null : $location.$$state); + } + afterLocationChange(oldUrl, oldState); + } + }); + } + + $location.$$replace = false; + + // we don't need to return anything because $evalAsync will make the digest loop dirty when + // there is a change + }); + + return $location; + + function afterLocationChange(oldUrl, oldState) { + $rootScope.$broadcast('$locationChangeSuccess', $location.absUrl(), oldUrl, + $location.$$state, oldState); + } +}]; +} + +/** + * @ngdoc service + * @name $log + * @requires $window + * + * @description + * Simple service for logging. Default implementation safely writes the message + * into the browser's console (if present). + * + * The main purpose of this service is to simplify debugging and troubleshooting. + * + * The default is to log `debug` messages. You can use + * {@link ng.$logProvider ng.$logProvider#debugEnabled} to change this. + * + * @example + + + angular.module('logExample', []) + .controller('LogController', ['$scope', '$log', function($scope, $log) { + $scope.$log = $log; + $scope.message = 'Hello World!'; + }]); + + +
    +

    Reload this page with open console, enter text and hit the log button...

    + + + + + + +
    +
    +
    + */ + +/** + * @ngdoc provider + * @name $logProvider + * @description + * Use the `$logProvider` to configure how the application logs messages + */ +function $LogProvider() { + var debug = true, + self = this; + + /** + * @ngdoc method + * @name $logProvider#debugEnabled + * @description + * @param {boolean=} flag enable or disable debug level messages + * @returns {*} current value if used as getter or itself (chaining) if used as setter + */ + this.debugEnabled = function(flag) { + if (isDefined(flag)) { + debug = flag; + return this; + } else { + return debug; + } + }; + + this.$get = ['$window', function($window) { + return { + /** + * @ngdoc method + * @name $log#log + * + * @description + * Write a log message + */ + log: consoleLog('log'), + + /** + * @ngdoc method + * @name $log#info + * + * @description + * Write an information message + */ + info: consoleLog('info'), + + /** + * @ngdoc method + * @name $log#warn + * + * @description + * Write a warning message + */ + warn: consoleLog('warn'), + + /** + * @ngdoc method + * @name $log#error + * + * @description + * Write an error message + */ + error: consoleLog('error'), + + /** + * @ngdoc method + * @name $log#debug + * + * @description + * Write a debug message + */ + debug: (function() { + var fn = consoleLog('debug'); + + return function() { + if (debug) { + fn.apply(self, arguments); + } + }; + }()) + }; + + function formatError(arg) { + if (arg instanceof Error) { + if (arg.stack) { + arg = (arg.message && arg.stack.indexOf(arg.message) === -1) + ? 'Error: ' + arg.message + '\n' + arg.stack + : arg.stack; + } else if (arg.sourceURL) { + arg = arg.message + '\n' + arg.sourceURL + ':' + arg.line; + } + } + return arg; + } + + function consoleLog(type) { + var console = $window.console || {}, + logFn = console[type] || console.log || noop, + hasApply = false; + + // Note: reading logFn.apply throws an error in IE11 in IE8 document mode. + // The reason behind this is that console.log has type "object" in IE8... + try { + hasApply = !!logFn.apply; + } catch (e) {} + + if (hasApply) { + return function() { + var args = []; + forEach(arguments, function(arg) { + args.push(formatError(arg)); + }); + return logFn.apply(console, args); + }; + } + + // we are IE which either doesn't have window.console => this is noop and we do nothing, + // or we are IE where console.log doesn't have apply so we log at least first 2 args + return function(arg1, arg2) { + logFn(arg1, arg2 == null ? '' : arg2); + }; + } + }]; +} + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +var $parseMinErr = minErr('$parse'); + +// Sandboxing Angular Expressions +// ------------------------------ +// Angular expressions are generally considered safe because these expressions only have direct +// access to `$scope` and locals. However, one can obtain the ability to execute arbitrary JS code by +// obtaining a reference to native JS functions such as the Function constructor. +// +// As an example, consider the following Angular expression: +// +// {}.toString.constructor('alert("evil JS code")') +// +// This sandboxing technique is not perfect and doesn't aim to be. The goal is to prevent exploits +// against the expression language, but not to prevent exploits that were enabled by exposing +// sensitive JavaScript or browser APIs on Scope. Exposing such objects on a Scope is never a good +// practice and therefore we are not even trying to protect against interaction with an object +// explicitly exposed in this way. +// +// In general, it is not possible to access a Window object from an angular expression unless a +// window or some DOM object that has a reference to window is published onto a Scope. +// Similarly we prevent invocations of function known to be dangerous, as well as assignments to +// native objects. +// +// See https://docs.angularjs.org/guide/security + + +function ensureSafeMemberName(name, fullExpression) { + if (name === "__defineGetter__" || name === "__defineSetter__" + || name === "__lookupGetter__" || name === "__lookupSetter__" + || name === "__proto__") { + throw $parseMinErr('isecfld', + 'Attempting to access a disallowed field in Angular expressions! ' + + 'Expression: {0}', fullExpression); + } + return name; +} + +function ensureSafeObject(obj, fullExpression) { + // nifty check if obj is Function that is fast and works across iframes and other contexts + if (obj) { + if (obj.constructor === obj) { + throw $parseMinErr('isecfn', + 'Referencing Function in Angular expressions is disallowed! Expression: {0}', + fullExpression); + } else if (// isWindow(obj) + obj.window === obj) { + throw $parseMinErr('isecwindow', + 'Referencing the Window in Angular expressions is disallowed! Expression: {0}', + fullExpression); + } else if (// isElement(obj) + obj.children && (obj.nodeName || (obj.prop && obj.attr && obj.find))) { + throw $parseMinErr('isecdom', + 'Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}', + fullExpression); + } else if (// block Object so that we can't get hold of dangerous Object.* methods + obj === Object) { + throw $parseMinErr('isecobj', + 'Referencing Object in Angular expressions is disallowed! Expression: {0}', + fullExpression); + } + } + return obj; +} + +var CALL = Function.prototype.call; +var APPLY = Function.prototype.apply; +var BIND = Function.prototype.bind; + +function ensureSafeFunction(obj, fullExpression) { + if (obj) { + if (obj.constructor === obj) { + throw $parseMinErr('isecfn', + 'Referencing Function in Angular expressions is disallowed! Expression: {0}', + fullExpression); + } else if (obj === CALL || obj === APPLY || obj === BIND) { + throw $parseMinErr('isecff', + 'Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}', + fullExpression); + } + } +} + +var OPERATORS = createMap(); +forEach('+ - * / % === !== == != < > <= >= && || ! = |'.split(' '), function(operator) { OPERATORS[operator] = true; }); +var ESCAPE = {"n":"\n", "f":"\f", "r":"\r", "t":"\t", "v":"\v", "'":"'", '"':'"'}; + + +///////////////////////////////////////// + + +/** + * @constructor + */ +var Lexer = function(options) { + this.options = options; +}; + +Lexer.prototype = { + constructor: Lexer, + + lex: function(text) { + this.text = text; + this.index = 0; + this.tokens = []; + + while (this.index < this.text.length) { + var ch = this.text.charAt(this.index); + if (ch === '"' || ch === "'") { + this.readString(ch); + } else if (this.isNumber(ch) || ch === '.' && this.isNumber(this.peek())) { + this.readNumber(); + } else if (this.isIdent(ch)) { + this.readIdent(); + } else if (this.is(ch, '(){}[].,;:?')) { + this.tokens.push({index: this.index, text: ch}); + this.index++; + } else if (this.isWhitespace(ch)) { + this.index++; + } else { + var ch2 = ch + this.peek(); + var ch3 = ch2 + this.peek(2); + var op1 = OPERATORS[ch]; + var op2 = OPERATORS[ch2]; + var op3 = OPERATORS[ch3]; + if (op1 || op2 || op3) { + var token = op3 ? ch3 : (op2 ? ch2 : ch); + this.tokens.push({index: this.index, text: token, operator: true}); + this.index += token.length; + } else { + this.throwError('Unexpected next character ', this.index, this.index + 1); + } + } + } + return this.tokens; + }, + + is: function(ch, chars) { + return chars.indexOf(ch) !== -1; + }, + + peek: function(i) { + var num = i || 1; + return (this.index + num < this.text.length) ? this.text.charAt(this.index + num) : false; + }, + + isNumber: function(ch) { + return ('0' <= ch && ch <= '9') && typeof ch === "string"; + }, + + isWhitespace: function(ch) { + // IE treats non-breaking space as \u00A0 + return (ch === ' ' || ch === '\r' || ch === '\t' || + ch === '\n' || ch === '\v' || ch === '\u00A0'); + }, + + isIdent: function(ch) { + return ('a' <= ch && ch <= 'z' || + 'A' <= ch && ch <= 'Z' || + '_' === ch || ch === '$'); + }, + + isExpOperator: function(ch) { + return (ch === '-' || ch === '+' || this.isNumber(ch)); + }, + + throwError: function(error, start, end) { + end = end || this.index; + var colStr = (isDefined(start) + ? 's ' + start + '-' + this.index + ' [' + this.text.substring(start, end) + ']' + : ' ' + end); + throw $parseMinErr('lexerr', 'Lexer Error: {0} at column{1} in expression [{2}].', + error, colStr, this.text); + }, + + readNumber: function() { + var number = ''; + var start = this.index; + while (this.index < this.text.length) { + var ch = lowercase(this.text.charAt(this.index)); + if (ch == '.' || this.isNumber(ch)) { + number += ch; + } else { + var peekCh = this.peek(); + if (ch == 'e' && this.isExpOperator(peekCh)) { + number += ch; + } else if (this.isExpOperator(ch) && + peekCh && this.isNumber(peekCh) && + number.charAt(number.length - 1) == 'e') { + number += ch; + } else if (this.isExpOperator(ch) && + (!peekCh || !this.isNumber(peekCh)) && + number.charAt(number.length - 1) == 'e') { + this.throwError('Invalid exponent'); + } else { + break; + } + } + this.index++; + } + this.tokens.push({ + index: start, + text: number, + constant: true, + value: Number(number) + }); + }, + + readIdent: function() { + var start = this.index; + while (this.index < this.text.length) { + var ch = this.text.charAt(this.index); + if (!(this.isIdent(ch) || this.isNumber(ch))) { + break; + } + this.index++; + } + this.tokens.push({ + index: start, + text: this.text.slice(start, this.index), + identifier: true + }); + }, + + readString: function(quote) { + var start = this.index; + this.index++; + var string = ''; + var rawString = quote; + var escape = false; + while (this.index < this.text.length) { + var ch = this.text.charAt(this.index); + rawString += ch; + if (escape) { + if (ch === 'u') { + var hex = this.text.substring(this.index + 1, this.index + 5); + if (!hex.match(/[\da-f]{4}/i)) { + this.throwError('Invalid unicode escape [\\u' + hex + ']'); + } + this.index += 4; + string += String.fromCharCode(parseInt(hex, 16)); + } else { + var rep = ESCAPE[ch]; + string = string + (rep || ch); + } + escape = false; + } else if (ch === '\\') { + escape = true; + } else if (ch === quote) { + this.index++; + this.tokens.push({ + index: start, + text: rawString, + constant: true, + value: string + }); + return; + } else { + string += ch; + } + this.index++; + } + this.throwError('Unterminated quote', start); + } +}; + +var AST = function(lexer, options) { + this.lexer = lexer; + this.options = options; +}; + +AST.Program = 'Program'; +AST.ExpressionStatement = 'ExpressionStatement'; +AST.AssignmentExpression = 'AssignmentExpression'; +AST.ConditionalExpression = 'ConditionalExpression'; +AST.LogicalExpression = 'LogicalExpression'; +AST.BinaryExpression = 'BinaryExpression'; +AST.UnaryExpression = 'UnaryExpression'; +AST.CallExpression = 'CallExpression'; +AST.MemberExpression = 'MemberExpression'; +AST.Identifier = 'Identifier'; +AST.Literal = 'Literal'; +AST.ArrayExpression = 'ArrayExpression'; +AST.Property = 'Property'; +AST.ObjectExpression = 'ObjectExpression'; +AST.ThisExpression = 'ThisExpression'; + +// Internal use only +AST.NGValueParameter = 'NGValueParameter'; + +AST.prototype = { + ast: function(text) { + this.text = text; + this.tokens = this.lexer.lex(text); + + var value = this.program(); + + if (this.tokens.length !== 0) { + this.throwError('is an unexpected token', this.tokens[0]); + } + + return value; + }, + + program: function() { + var body = []; + while (true) { + if (this.tokens.length > 0 && !this.peek('}', ')', ';', ']')) + body.push(this.expressionStatement()); + if (!this.expect(';')) { + return { type: AST.Program, body: body}; + } + } + }, + + expressionStatement: function() { + return { type: AST.ExpressionStatement, expression: this.filterChain() }; + }, + + filterChain: function() { + var left = this.expression(); + var token; + while ((token = this.expect('|'))) { + left = this.filter(left); + } + return left; + }, + + expression: function() { + return this.assignment(); + }, + + assignment: function() { + var result = this.ternary(); + if (this.expect('=')) { + result = { type: AST.AssignmentExpression, left: result, right: this.assignment(), operator: '='}; + } + return result; + }, + + ternary: function() { + var test = this.logicalOR(); + var alternate; + var consequent; + if (this.expect('?')) { + alternate = this.expression(); + if (this.consume(':')) { + consequent = this.expression(); + return { type: AST.ConditionalExpression, test: test, alternate: alternate, consequent: consequent}; + } + } + return test; + }, + + logicalOR: function() { + var left = this.logicalAND(); + while (this.expect('||')) { + left = { type: AST.LogicalExpression, operator: '||', left: left, right: this.logicalAND() }; + } + return left; + }, + + logicalAND: function() { + var left = this.equality(); + while (this.expect('&&')) { + left = { type: AST.LogicalExpression, operator: '&&', left: left, right: this.equality()}; + } + return left; + }, + + equality: function() { + var left = this.relational(); + var token; + while ((token = this.expect('==','!=','===','!=='))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.relational() }; + } + return left; + }, + + relational: function() { + var left = this.additive(); + var token; + while ((token = this.expect('<', '>', '<=', '>='))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.additive() }; + } + return left; + }, + + additive: function() { + var left = this.multiplicative(); + var token; + while ((token = this.expect('+','-'))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.multiplicative() }; + } + return left; + }, + + multiplicative: function() { + var left = this.unary(); + var token; + while ((token = this.expect('*','/','%'))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.unary() }; + } + return left; + }, + + unary: function() { + var token; + if ((token = this.expect('+', '-', '!'))) { + return { type: AST.UnaryExpression, operator: token.text, prefix: true, argument: this.unary() }; + } else { + return this.primary(); + } + }, + + primary: function() { + var primary; + if (this.expect('(')) { + primary = this.filterChain(); + this.consume(')'); + } else if (this.expect('[')) { + primary = this.arrayDeclaration(); + } else if (this.expect('{')) { + primary = this.object(); + } else if (this.constants.hasOwnProperty(this.peek().text)) { + primary = copy(this.constants[this.consume().text]); + } else if (this.peek().identifier) { + primary = this.identifier(); + } else if (this.peek().constant) { + primary = this.constant(); + } else { + this.throwError('not a primary expression', this.peek()); + } + + var next; + while ((next = this.expect('(', '[', '.'))) { + if (next.text === '(') { + primary = {type: AST.CallExpression, callee: primary, arguments: this.parseArguments() }; + this.consume(')'); + } else if (next.text === '[') { + primary = { type: AST.MemberExpression, object: primary, property: this.expression(), computed: true }; + this.consume(']'); + } else if (next.text === '.') { + primary = { type: AST.MemberExpression, object: primary, property: this.identifier(), computed: false }; + } else { + this.throwError('IMPOSSIBLE'); + } + } + return primary; + }, + + filter: function(baseExpression) { + var args = [baseExpression]; + var result = {type: AST.CallExpression, callee: this.identifier(), arguments: args, filter: true}; + + while (this.expect(':')) { + args.push(this.expression()); + } + + return result; + }, + + parseArguments: function() { + var args = []; + if (this.peekToken().text !== ')') { + do { + args.push(this.expression()); + } while (this.expect(',')); + } + return args; + }, + + identifier: function() { + var token = this.consume(); + if (!token.identifier) { + this.throwError('is not a valid identifier', token); + } + return { type: AST.Identifier, name: token.text }; + }, + + constant: function() { + // TODO check that it is a constant + return { type: AST.Literal, value: this.consume().value }; + }, + + arrayDeclaration: function() { + var elements = []; + if (this.peekToken().text !== ']') { + do { + if (this.peek(']')) { + // Support trailing commas per ES5.1. + break; + } + elements.push(this.expression()); + } while (this.expect(',')); + } + this.consume(']'); + + return { type: AST.ArrayExpression, elements: elements }; + }, + + object: function() { + var properties = [], property; + if (this.peekToken().text !== '}') { + do { + if (this.peek('}')) { + // Support trailing commas per ES5.1. + break; + } + property = {type: AST.Property, kind: 'init'}; + if (this.peek().constant) { + property.key = this.constant(); + } else if (this.peek().identifier) { + property.key = this.identifier(); + } else { + this.throwError("invalid key", this.peek()); + } + this.consume(':'); + property.value = this.expression(); + properties.push(property); + } while (this.expect(',')); + } + this.consume('}'); + + return {type: AST.ObjectExpression, properties: properties }; + }, + + throwError: function(msg, token) { + throw $parseMinErr('syntax', + 'Syntax Error: Token \'{0}\' {1} at column {2} of the expression [{3}] starting at [{4}].', + token.text, msg, (token.index + 1), this.text, this.text.substring(token.index)); + }, + + consume: function(e1) { + if (this.tokens.length === 0) { + throw $parseMinErr('ueoe', 'Unexpected end of expression: {0}', this.text); + } + + var token = this.expect(e1); + if (!token) { + this.throwError('is unexpected, expecting [' + e1 + ']', this.peek()); + } + return token; + }, + + peekToken: function() { + if (this.tokens.length === 0) { + throw $parseMinErr('ueoe', 'Unexpected end of expression: {0}', this.text); + } + return this.tokens[0]; + }, + + peek: function(e1, e2, e3, e4) { + return this.peekAhead(0, e1, e2, e3, e4); + }, + + peekAhead: function(i, e1, e2, e3, e4) { + if (this.tokens.length > i) { + var token = this.tokens[i]; + var t = token.text; + if (t === e1 || t === e2 || t === e3 || t === e4 || + (!e1 && !e2 && !e3 && !e4)) { + return token; + } + } + return false; + }, + + expect: function(e1, e2, e3, e4) { + var token = this.peek(e1, e2, e3, e4); + if (token) { + this.tokens.shift(); + return token; + } + return false; + }, + + + /* `undefined` is not a constant, it is an identifier, + * but using it as an identifier is not supported + */ + constants: { + 'true': { type: AST.Literal, value: true }, + 'false': { type: AST.Literal, value: false }, + 'null': { type: AST.Literal, value: null }, + 'undefined': {type: AST.Literal, value: undefined }, + 'this': {type: AST.ThisExpression } + } +}; + +function ifDefined(v, d) { + return typeof v !== 'undefined' ? v : d; +} + +function plusFn(l, r) { + if (typeof l === 'undefined') return r; + if (typeof r === 'undefined') return l; + return l + r; +} + +function isStateless($filter, filterName) { + var fn = $filter(filterName); + return !fn.$stateful; +} + +function findConstantAndWatchExpressions(ast, $filter) { + var allConstants; + var argsToWatch; + switch (ast.type) { + case AST.Program: + allConstants = true; + forEach(ast.body, function(expr) { + findConstantAndWatchExpressions(expr.expression, $filter); + allConstants = allConstants && expr.expression.constant; + }); + ast.constant = allConstants; + break; + case AST.Literal: + ast.constant = true; + ast.toWatch = []; + break; + case AST.UnaryExpression: + findConstantAndWatchExpressions(ast.argument, $filter); + ast.constant = ast.argument.constant; + ast.toWatch = ast.argument.toWatch; + break; + case AST.BinaryExpression: + findConstantAndWatchExpressions(ast.left, $filter); + findConstantAndWatchExpressions(ast.right, $filter); + ast.constant = ast.left.constant && ast.right.constant; + ast.toWatch = ast.left.toWatch.concat(ast.right.toWatch); + break; + case AST.LogicalExpression: + findConstantAndWatchExpressions(ast.left, $filter); + findConstantAndWatchExpressions(ast.right, $filter); + ast.constant = ast.left.constant && ast.right.constant; + ast.toWatch = ast.constant ? [] : [ast]; + break; + case AST.ConditionalExpression: + findConstantAndWatchExpressions(ast.test, $filter); + findConstantAndWatchExpressions(ast.alternate, $filter); + findConstantAndWatchExpressions(ast.consequent, $filter); + ast.constant = ast.test.constant && ast.alternate.constant && ast.consequent.constant; + ast.toWatch = ast.constant ? [] : [ast]; + break; + case AST.Identifier: + ast.constant = false; + ast.toWatch = [ast]; + break; + case AST.MemberExpression: + findConstantAndWatchExpressions(ast.object, $filter); + if (ast.computed) { + findConstantAndWatchExpressions(ast.property, $filter); + } + ast.constant = ast.object.constant && (!ast.computed || ast.property.constant); + ast.toWatch = [ast]; + break; + case AST.CallExpression: + allConstants = ast.filter ? isStateless($filter, ast.callee.name) : false; + argsToWatch = []; + forEach(ast.arguments, function(expr) { + findConstantAndWatchExpressions(expr, $filter); + allConstants = allConstants && expr.constant; + if (!expr.constant) { + argsToWatch.push.apply(argsToWatch, expr.toWatch); + } + }); + ast.constant = allConstants; + ast.toWatch = ast.filter && isStateless($filter, ast.callee.name) ? argsToWatch : [ast]; + break; + case AST.AssignmentExpression: + findConstantAndWatchExpressions(ast.left, $filter); + findConstantAndWatchExpressions(ast.right, $filter); + ast.constant = ast.left.constant && ast.right.constant; + ast.toWatch = [ast]; + break; + case AST.ArrayExpression: + allConstants = true; + argsToWatch = []; + forEach(ast.elements, function(expr) { + findConstantAndWatchExpressions(expr, $filter); + allConstants = allConstants && expr.constant; + if (!expr.constant) { + argsToWatch.push.apply(argsToWatch, expr.toWatch); + } + }); + ast.constant = allConstants; + ast.toWatch = argsToWatch; + break; + case AST.ObjectExpression: + allConstants = true; + argsToWatch = []; + forEach(ast.properties, function(property) { + findConstantAndWatchExpressions(property.value, $filter); + allConstants = allConstants && property.value.constant; + if (!property.value.constant) { + argsToWatch.push.apply(argsToWatch, property.value.toWatch); + } + }); + ast.constant = allConstants; + ast.toWatch = argsToWatch; + break; + case AST.ThisExpression: + ast.constant = false; + ast.toWatch = []; + break; + } +} + +function getInputs(body) { + if (body.length != 1) return; + var lastExpression = body[0].expression; + var candidate = lastExpression.toWatch; + if (candidate.length !== 1) return candidate; + return candidate[0] !== lastExpression ? candidate : undefined; +} + +function isAssignable(ast) { + return ast.type === AST.Identifier || ast.type === AST.MemberExpression; +} + +function assignableAST(ast) { + if (ast.body.length === 1 && isAssignable(ast.body[0].expression)) { + return {type: AST.AssignmentExpression, left: ast.body[0].expression, right: {type: AST.NGValueParameter}, operator: '='}; + } +} + +function isLiteral(ast) { + return ast.body.length === 0 || + ast.body.length === 1 && ( + ast.body[0].expression.type === AST.Literal || + ast.body[0].expression.type === AST.ArrayExpression || + ast.body[0].expression.type === AST.ObjectExpression); +} + +function isConstant(ast) { + return ast.constant; +} + +function ASTCompiler(astBuilder, $filter) { + this.astBuilder = astBuilder; + this.$filter = $filter; +} + +ASTCompiler.prototype = { + compile: function(expression, expensiveChecks) { + var self = this; + var ast = this.astBuilder.ast(expression); + this.state = { + nextId: 0, + filters: {}, + expensiveChecks: expensiveChecks, + fn: {vars: [], body: [], own: {}}, + assign: {vars: [], body: [], own: {}}, + inputs: [] + }; + findConstantAndWatchExpressions(ast, self.$filter); + var extra = ''; + var assignable; + this.stage = 'assign'; + if ((assignable = assignableAST(ast))) { + this.state.computing = 'assign'; + var result = this.nextId(); + this.recurse(assignable, result); + extra = 'fn.assign=' + this.generateFunction('assign', 's,v,l'); + } + var toWatch = getInputs(ast.body); + self.stage = 'inputs'; + forEach(toWatch, function(watch, key) { + var fnKey = 'fn' + key; + self.state[fnKey] = {vars: [], body: [], own: {}}; + self.state.computing = fnKey; + var intoId = self.nextId(); + self.recurse(watch, intoId); + self.return_(intoId); + self.state.inputs.push(fnKey); + watch.watchId = key; + }); + this.state.computing = 'fn'; + this.stage = 'main'; + this.recurse(ast); + var fnString = + // The build and minification steps remove the string "use strict" from the code, but this is done using a regex. + // This is a workaround for this until we do a better job at only removing the prefix only when we should. + '"' + this.USE + ' ' + this.STRICT + '";\n' + + this.filterPrefix() + + 'var fn=' + this.generateFunction('fn', 's,l,a,i') + + extra + + this.watchFns() + + 'return fn;'; + + /* jshint -W054 */ + var fn = (new Function('$filter', + 'ensureSafeMemberName', + 'ensureSafeObject', + 'ensureSafeFunction', + 'ifDefined', + 'plus', + 'text', + fnString))( + this.$filter, + ensureSafeMemberName, + ensureSafeObject, + ensureSafeFunction, + ifDefined, + plusFn, + expression); + /* jshint +W054 */ + this.state = this.stage = undefined; + fn.literal = isLiteral(ast); + fn.constant = isConstant(ast); + return fn; + }, + + USE: 'use', + + STRICT: 'strict', + + watchFns: function() { + var result = []; + var fns = this.state.inputs; + var self = this; + forEach(fns, function(name) { + result.push('var ' + name + '=' + self.generateFunction(name, 's')); + }); + if (fns.length) { + result.push('fn.inputs=[' + fns.join(',') + '];'); + } + return result.join(''); + }, + + generateFunction: function(name, params) { + return 'function(' + params + '){' + + this.varsPrefix(name) + + this.body(name) + + '};'; + }, + + filterPrefix: function() { + var parts = []; + var self = this; + forEach(this.state.filters, function(id, filter) { + parts.push(id + '=$filter(' + self.escape(filter) + ')'); + }); + if (parts.length) return 'var ' + parts.join(',') + ';'; + return ''; + }, + + varsPrefix: function(section) { + return this.state[section].vars.length ? 'var ' + this.state[section].vars.join(',') + ';' : ''; + }, + + body: function(section) { + return this.state[section].body.join(''); + }, + + recurse: function(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck) { + var left, right, self = this, args, expression; + recursionFn = recursionFn || noop; + if (!skipWatchIdCheck && isDefined(ast.watchId)) { + intoId = intoId || this.nextId(); + this.if_('i', + this.lazyAssign(intoId, this.computedMember('i', ast.watchId)), + this.lazyRecurse(ast, intoId, nameId, recursionFn, create, true) + ); + return; + } + switch (ast.type) { + case AST.Program: + forEach(ast.body, function(expression, pos) { + self.recurse(expression.expression, undefined, undefined, function(expr) { right = expr; }); + if (pos !== ast.body.length - 1) { + self.current().body.push(right, ';'); + } else { + self.return_(right); + } + }); + break; + case AST.Literal: + expression = this.escape(ast.value); + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.UnaryExpression: + this.recurse(ast.argument, undefined, undefined, function(expr) { right = expr; }); + expression = ast.operator + '(' + this.ifDefined(right, 0) + ')'; + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.BinaryExpression: + this.recurse(ast.left, undefined, undefined, function(expr) { left = expr; }); + this.recurse(ast.right, undefined, undefined, function(expr) { right = expr; }); + if (ast.operator === '+') { + expression = this.plus(left, right); + } else if (ast.operator === '-') { + expression = this.ifDefined(left, 0) + ast.operator + this.ifDefined(right, 0); + } else { + expression = '(' + left + ')' + ast.operator + '(' + right + ')'; + } + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.LogicalExpression: + intoId = intoId || this.nextId(); + self.recurse(ast.left, intoId); + self.if_(ast.operator === '&&' ? intoId : self.not(intoId), self.lazyRecurse(ast.right, intoId)); + recursionFn(intoId); + break; + case AST.ConditionalExpression: + intoId = intoId || this.nextId(); + self.recurse(ast.test, intoId); + self.if_(intoId, self.lazyRecurse(ast.alternate, intoId), self.lazyRecurse(ast.consequent, intoId)); + recursionFn(intoId); + break; + case AST.Identifier: + intoId = intoId || this.nextId(); + if (nameId) { + nameId.context = self.stage === 'inputs' ? 's' : this.assign(this.nextId(), this.getHasOwnProperty('l', ast.name) + '?l:s'); + nameId.computed = false; + nameId.name = ast.name; + } + ensureSafeMemberName(ast.name); + self.if_(self.stage === 'inputs' || self.not(self.getHasOwnProperty('l', ast.name)), + function() { + self.if_(self.stage === 'inputs' || 's', function() { + if (create && create !== 1) { + self.if_( + self.not(self.nonComputedMember('s', ast.name)), + self.lazyAssign(self.nonComputedMember('s', ast.name), '{}')); + } + self.assign(intoId, self.nonComputedMember('s', ast.name)); + }); + }, intoId && self.lazyAssign(intoId, self.nonComputedMember('l', ast.name)) + ); + if (self.state.expensiveChecks || isPossiblyDangerousMemberName(ast.name)) { + self.addEnsureSafeObject(intoId); + } + recursionFn(intoId); + break; + case AST.MemberExpression: + left = nameId && (nameId.context = this.nextId()) || this.nextId(); + intoId = intoId || this.nextId(); + self.recurse(ast.object, left, undefined, function() { + self.if_(self.notNull(left), function() { + if (ast.computed) { + right = self.nextId(); + self.recurse(ast.property, right); + self.addEnsureSafeMemberName(right); + if (create && create !== 1) { + self.if_(self.not(self.computedMember(left, right)), self.lazyAssign(self.computedMember(left, right), '{}')); + } + expression = self.ensureSafeObject(self.computedMember(left, right)); + self.assign(intoId, expression); + if (nameId) { + nameId.computed = true; + nameId.name = right; + } + } else { + ensureSafeMemberName(ast.property.name); + if (create && create !== 1) { + self.if_(self.not(self.nonComputedMember(left, ast.property.name)), self.lazyAssign(self.nonComputedMember(left, ast.property.name), '{}')); + } + expression = self.nonComputedMember(left, ast.property.name); + if (self.state.expensiveChecks || isPossiblyDangerousMemberName(ast.property.name)) { + expression = self.ensureSafeObject(expression); + } + self.assign(intoId, expression); + if (nameId) { + nameId.computed = false; + nameId.name = ast.property.name; + } + } + }, function() { + self.assign(intoId, 'undefined'); + }); + recursionFn(intoId); + }, !!create); + break; + case AST.CallExpression: + intoId = intoId || this.nextId(); + if (ast.filter) { + right = self.filter(ast.callee.name); + args = []; + forEach(ast.arguments, function(expr) { + var argument = self.nextId(); + self.recurse(expr, argument); + args.push(argument); + }); + expression = right + '(' + args.join(',') + ')'; + self.assign(intoId, expression); + recursionFn(intoId); + } else { + right = self.nextId(); + left = {}; + args = []; + self.recurse(ast.callee, right, left, function() { + self.if_(self.notNull(right), function() { + self.addEnsureSafeFunction(right); + forEach(ast.arguments, function(expr) { + self.recurse(expr, self.nextId(), undefined, function(argument) { + args.push(self.ensureSafeObject(argument)); + }); + }); + if (left.name) { + if (!self.state.expensiveChecks) { + self.addEnsureSafeObject(left.context); + } + expression = self.member(left.context, left.name, left.computed) + '(' + args.join(',') + ')'; + } else { + expression = right + '(' + args.join(',') + ')'; + } + expression = self.ensureSafeObject(expression); + self.assign(intoId, expression); + }, function() { + self.assign(intoId, 'undefined'); + }); + recursionFn(intoId); + }); + } + break; + case AST.AssignmentExpression: + right = this.nextId(); + left = {}; + if (!isAssignable(ast.left)) { + throw $parseMinErr('lval', 'Trying to assing a value to a non l-value'); + } + this.recurse(ast.left, undefined, left, function() { + self.if_(self.notNull(left.context), function() { + self.recurse(ast.right, right); + self.addEnsureSafeObject(self.member(left.context, left.name, left.computed)); + expression = self.member(left.context, left.name, left.computed) + ast.operator + right; + self.assign(intoId, expression); + recursionFn(intoId || expression); + }); + }, 1); + break; + case AST.ArrayExpression: + args = []; + forEach(ast.elements, function(expr) { + self.recurse(expr, self.nextId(), undefined, function(argument) { + args.push(argument); + }); + }); + expression = '[' + args.join(',') + ']'; + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.ObjectExpression: + args = []; + forEach(ast.properties, function(property) { + self.recurse(property.value, self.nextId(), undefined, function(expr) { + args.push(self.escape( + property.key.type === AST.Identifier ? property.key.name : + ('' + property.key.value)) + + ':' + expr); + }); + }); + expression = '{' + args.join(',') + '}'; + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.ThisExpression: + this.assign(intoId, 's'); + recursionFn('s'); + break; + case AST.NGValueParameter: + this.assign(intoId, 'v'); + recursionFn('v'); + break; + } + }, + + getHasOwnProperty: function(element, property) { + var key = element + '.' + property; + var own = this.current().own; + if (!own.hasOwnProperty(key)) { + own[key] = this.nextId(false, element + '&&(' + this.escape(property) + ' in ' + element + ')'); + } + return own[key]; + }, + + assign: function(id, value) { + if (!id) return; + this.current().body.push(id, '=', value, ';'); + return id; + }, + + filter: function(filterName) { + if (!this.state.filters.hasOwnProperty(filterName)) { + this.state.filters[filterName] = this.nextId(true); + } + return this.state.filters[filterName]; + }, + + ifDefined: function(id, defaultValue) { + return 'ifDefined(' + id + ',' + this.escape(defaultValue) + ')'; + }, + + plus: function(left, right) { + return 'plus(' + left + ',' + right + ')'; + }, + + return_: function(id) { + this.current().body.push('return ', id, ';'); + }, + + if_: function(test, alternate, consequent) { + if (test === true) { + alternate(); + } else { + var body = this.current().body; + body.push('if(', test, '){'); + alternate(); + body.push('}'); + if (consequent) { + body.push('else{'); + consequent(); + body.push('}'); + } + } + }, + + not: function(expression) { + return '!(' + expression + ')'; + }, + + notNull: function(expression) { + return expression + '!=null'; + }, + + nonComputedMember: function(left, right) { + return left + '.' + right; + }, + + computedMember: function(left, right) { + return left + '[' + right + ']'; + }, + + member: function(left, right, computed) { + if (computed) return this.computedMember(left, right); + return this.nonComputedMember(left, right); + }, + + addEnsureSafeObject: function(item) { + this.current().body.push(this.ensureSafeObject(item), ';'); + }, + + addEnsureSafeMemberName: function(item) { + this.current().body.push(this.ensureSafeMemberName(item), ';'); + }, + + addEnsureSafeFunction: function(item) { + this.current().body.push(this.ensureSafeFunction(item), ';'); + }, + + ensureSafeObject: function(item) { + return 'ensureSafeObject(' + item + ',text)'; + }, + + ensureSafeMemberName: function(item) { + return 'ensureSafeMemberName(' + item + ',text)'; + }, + + ensureSafeFunction: function(item) { + return 'ensureSafeFunction(' + item + ',text)'; + }, + + lazyRecurse: function(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck) { + var self = this; + return function() { + self.recurse(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck); + }; + }, + + lazyAssign: function(id, value) { + var self = this; + return function() { + self.assign(id, value); + }; + }, + + stringEscapeRegex: /[^ a-zA-Z0-9]/g, + + stringEscapeFn: function(c) { + return '\\u' + ('0000' + c.charCodeAt(0).toString(16)).slice(-4); + }, + + escape: function(value) { + if (isString(value)) return "'" + value.replace(this.stringEscapeRegex, this.stringEscapeFn) + "'"; + if (isNumber(value)) return value.toString(); + if (value === true) return 'true'; + if (value === false) return 'false'; + if (value === null) return 'null'; + if (typeof value === 'undefined') return 'undefined'; + + throw $parseMinErr('esc', 'IMPOSSIBLE'); + }, + + nextId: function(skip, init) { + var id = 'v' + (this.state.nextId++); + if (!skip) { + this.current().vars.push(id + (init ? '=' + init : '')); + } + return id; + }, + + current: function() { + return this.state[this.state.computing]; + } +}; + + +function ASTInterpreter(astBuilder, $filter) { + this.astBuilder = astBuilder; + this.$filter = $filter; +} + +ASTInterpreter.prototype = { + compile: function(expression, expensiveChecks) { + var self = this; + var ast = this.astBuilder.ast(expression); + this.expression = expression; + this.expensiveChecks = expensiveChecks; + findConstantAndWatchExpressions(ast, self.$filter); + var assignable; + var assign; + if ((assignable = assignableAST(ast))) { + assign = this.recurse(assignable); + } + var toWatch = getInputs(ast.body); + var inputs; + if (toWatch) { + inputs = []; + forEach(toWatch, function(watch, key) { + var input = self.recurse(watch); + watch.input = input; + inputs.push(input); + watch.watchId = key; + }); + } + var expressions = []; + forEach(ast.body, function(expression) { + expressions.push(self.recurse(expression.expression)); + }); + var fn = ast.body.length === 0 ? function() {} : + ast.body.length === 1 ? expressions[0] : + function(scope, locals) { + var lastValue; + forEach(expressions, function(exp) { + lastValue = exp(scope, locals); + }); + return lastValue; + }; + if (assign) { + fn.assign = function(scope, value, locals) { + return assign(scope, locals, value); + }; + } + if (inputs) { + fn.inputs = inputs; + } + fn.literal = isLiteral(ast); + fn.constant = isConstant(ast); + return fn; + }, + + recurse: function(ast, context, create) { + var left, right, self = this, args, expression; + if (ast.input) { + return this.inputs(ast.input, ast.watchId); + } + switch (ast.type) { + case AST.Literal: + return this.value(ast.value, context); + case AST.UnaryExpression: + right = this.recurse(ast.argument); + return this['unary' + ast.operator](right, context); + case AST.BinaryExpression: + left = this.recurse(ast.left); + right = this.recurse(ast.right); + return this['binary' + ast.operator](left, right, context); + case AST.LogicalExpression: + left = this.recurse(ast.left); + right = this.recurse(ast.right); + return this['binary' + ast.operator](left, right, context); + case AST.ConditionalExpression: + return this['ternary?:']( + this.recurse(ast.test), + this.recurse(ast.alternate), + this.recurse(ast.consequent), + context + ); + case AST.Identifier: + ensureSafeMemberName(ast.name, self.expression); + return self.identifier(ast.name, + self.expensiveChecks || isPossiblyDangerousMemberName(ast.name), + context, create, self.expression); + case AST.MemberExpression: + left = this.recurse(ast.object, false, !!create); + if (!ast.computed) { + ensureSafeMemberName(ast.property.name, self.expression); + right = ast.property.name; + } + if (ast.computed) right = this.recurse(ast.property); + return ast.computed ? + this.computedMember(left, right, context, create, self.expression) : + this.nonComputedMember(left, right, self.expensiveChecks, context, create, self.expression); + case AST.CallExpression: + args = []; + forEach(ast.arguments, function(expr) { + args.push(self.recurse(expr)); + }); + if (ast.filter) right = this.$filter(ast.callee.name); + if (!ast.filter) right = this.recurse(ast.callee, true); + return ast.filter ? + function(scope, locals, assign, inputs) { + var values = []; + for (var i = 0; i < args.length; ++i) { + values.push(args[i](scope, locals, assign, inputs)); + } + var value = right.apply(undefined, values, inputs); + return context ? {context: undefined, name: undefined, value: value} : value; + } : + function(scope, locals, assign, inputs) { + var rhs = right(scope, locals, assign, inputs); + var value; + if (rhs.value != null) { + ensureSafeObject(rhs.context, self.expression); + ensureSafeFunction(rhs.value, self.expression); + var values = []; + for (var i = 0; i < args.length; ++i) { + values.push(ensureSafeObject(args[i](scope, locals, assign, inputs), self.expression)); + } + value = ensureSafeObject(rhs.value.apply(rhs.context, values), self.expression); + } + return context ? {value: value} : value; + }; + case AST.AssignmentExpression: + left = this.recurse(ast.left, true, 1); + right = this.recurse(ast.right); + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs = right(scope, locals, assign, inputs); + ensureSafeObject(lhs.value, self.expression); + lhs.context[lhs.name] = rhs; + return context ? {value: rhs} : rhs; + }; + case AST.ArrayExpression: + args = []; + forEach(ast.elements, function(expr) { + args.push(self.recurse(expr)); + }); + return function(scope, locals, assign, inputs) { + var value = []; + for (var i = 0; i < args.length; ++i) { + value.push(args[i](scope, locals, assign, inputs)); + } + return context ? {value: value} : value; + }; + case AST.ObjectExpression: + args = []; + forEach(ast.properties, function(property) { + args.push({key: property.key.type === AST.Identifier ? + property.key.name : + ('' + property.key.value), + value: self.recurse(property.value) + }); + }); + return function(scope, locals, assign, inputs) { + var value = {}; + for (var i = 0; i < args.length; ++i) { + value[args[i].key] = args[i].value(scope, locals, assign, inputs); + } + return context ? {value: value} : value; + }; + case AST.ThisExpression: + return function(scope) { + return context ? {value: scope} : scope; + }; + case AST.NGValueParameter: + return function(scope, locals, assign, inputs) { + return context ? {value: assign} : assign; + }; + } + }, + + 'unary+': function(argument, context) { + return function(scope, locals, assign, inputs) { + var arg = argument(scope, locals, assign, inputs); + if (isDefined(arg)) { + arg = +arg; + } else { + arg = 0; + } + return context ? {value: arg} : arg; + }; + }, + 'unary-': function(argument, context) { + return function(scope, locals, assign, inputs) { + var arg = argument(scope, locals, assign, inputs); + if (isDefined(arg)) { + arg = -arg; + } else { + arg = 0; + } + return context ? {value: arg} : arg; + }; + }, + 'unary!': function(argument, context) { + return function(scope, locals, assign, inputs) { + var arg = !argument(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary+': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs = right(scope, locals, assign, inputs); + var arg = plusFn(lhs, rhs); + return context ? {value: arg} : arg; + }; + }, + 'binary-': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs = right(scope, locals, assign, inputs); + var arg = (isDefined(lhs) ? lhs : 0) - (isDefined(rhs) ? rhs : 0); + return context ? {value: arg} : arg; + }; + }, + 'binary*': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) * right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary/': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) / right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary%': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) % right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary===': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) === right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary!==': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) !== right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary==': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) == right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary!=': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) != right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary<': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) < right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary>': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) > right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary<=': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) <= right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary>=': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) >= right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary&&': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) && right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary||': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) || right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'ternary?:': function(test, alternate, consequent, context) { + return function(scope, locals, assign, inputs) { + var arg = test(scope, locals, assign, inputs) ? alternate(scope, locals, assign, inputs) : consequent(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + value: function(value, context) { + return function() { return context ? {context: undefined, name: undefined, value: value} : value; }; + }, + identifier: function(name, expensiveChecks, context, create, expression) { + return function(scope, locals, assign, inputs) { + var base = locals && (name in locals) ? locals : scope; + if (create && create !== 1 && base && !(base[name])) { + base[name] = {}; + } + var value = base ? base[name] : undefined; + if (expensiveChecks) { + ensureSafeObject(value, expression); + } + if (context) { + return {context: base, name: name, value: value}; + } else { + return value; + } + }; + }, + computedMember: function(left, right, context, create, expression) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs; + var value; + if (lhs != null) { + rhs = right(scope, locals, assign, inputs); + ensureSafeMemberName(rhs, expression); + if (create && create !== 1 && lhs && !(lhs[rhs])) { + lhs[rhs] = {}; + } + value = lhs[rhs]; + ensureSafeObject(value, expression); + } + if (context) { + return {context: lhs, name: rhs, value: value}; + } else { + return value; + } + }; + }, + nonComputedMember: function(left, right, expensiveChecks, context, create, expression) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + if (create && create !== 1 && lhs && !(lhs[right])) { + lhs[right] = {}; + } + var value = lhs != null ? lhs[right] : undefined; + if (expensiveChecks || isPossiblyDangerousMemberName(right)) { + ensureSafeObject(value, expression); + } + if (context) { + return {context: lhs, name: right, value: value}; + } else { + return value; + } + }; + }, + inputs: function(input, watchId) { + return function(scope, value, locals, inputs) { + if (inputs) return inputs[watchId]; + return input(scope, value, locals); + }; + } +}; + +/** + * @constructor + */ +var Parser = function(lexer, $filter, options) { + this.lexer = lexer; + this.$filter = $filter; + this.options = options; + this.ast = new AST(this.lexer); + this.astCompiler = options.csp ? new ASTInterpreter(this.ast, $filter) : + new ASTCompiler(this.ast, $filter); +}; + +Parser.prototype = { + constructor: Parser, + + parse: function(text) { + return this.astCompiler.compile(text, this.options.expensiveChecks); + } +}; + +////////////////////////////////////////////////// +// Parser helper functions +////////////////////////////////////////////////// + +function setter(obj, path, setValue, fullExp) { + ensureSafeObject(obj, fullExp); + + var element = path.split('.'), key; + for (var i = 0; element.length > 1; i++) { + key = ensureSafeMemberName(element.shift(), fullExp); + var propertyObj = ensureSafeObject(obj[key], fullExp); + if (!propertyObj) { + propertyObj = {}; + obj[key] = propertyObj; + } + obj = propertyObj; + } + key = ensureSafeMemberName(element.shift(), fullExp); + ensureSafeObject(obj[key], fullExp); + obj[key] = setValue; + return setValue; +} + +var getterFnCacheDefault = createMap(); +var getterFnCacheExpensive = createMap(); + +function isPossiblyDangerousMemberName(name) { + return name == 'constructor'; +} + +var objectValueOf = Object.prototype.valueOf; + +function getValueOf(value) { + return isFunction(value.valueOf) ? value.valueOf() : objectValueOf.call(value); +} + +/////////////////////////////////// + +/** + * @ngdoc service + * @name $parse + * @kind function + * + * @description + * + * Converts Angular {@link guide/expression expression} into a function. + * + * ```js + * var getter = $parse('user.name'); + * var setter = getter.assign; + * var context = {user:{name:'angular'}}; + * var locals = {user:{name:'local'}}; + * + * expect(getter(context)).toEqual('angular'); + * setter(context, 'newValue'); + * expect(context.user.name).toEqual('newValue'); + * expect(getter(context, locals)).toEqual('local'); + * ``` + * + * + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + * + * The returned function also has the following properties: + * * `literal` – `{boolean}` – whether the expression's top-level node is a JavaScript + * literal. + * * `constant` – `{boolean}` – whether the expression is made entirely of JavaScript + * constant literals. + * * `assign` – `{?function(context, value)}` – if the expression is assignable, this will be + * set to a function to change its value on the given context. + * + */ + + +/** + * @ngdoc provider + * @name $parseProvider + * + * @description + * `$parseProvider` can be used for configuring the default behavior of the {@link ng.$parse $parse} + * service. + */ +function $ParseProvider() { + var cacheDefault = createMap(); + var cacheExpensive = createMap(); + + this.$get = ['$filter', '$sniffer', function($filter, $sniffer) { + var $parseOptions = { + csp: $sniffer.csp, + expensiveChecks: false + }, + $parseOptionsExpensive = { + csp: $sniffer.csp, + expensiveChecks: true + }; + + return function $parse(exp, interceptorFn, expensiveChecks) { + var parsedExpression, oneTime, cacheKey; + + switch (typeof exp) { + case 'string': + exp = exp.trim(); + cacheKey = exp; + + var cache = (expensiveChecks ? cacheExpensive : cacheDefault); + parsedExpression = cache[cacheKey]; + + if (!parsedExpression) { + if (exp.charAt(0) === ':' && exp.charAt(1) === ':') { + oneTime = true; + exp = exp.substring(2); + } + var parseOptions = expensiveChecks ? $parseOptionsExpensive : $parseOptions; + var lexer = new Lexer(parseOptions); + var parser = new Parser(lexer, $filter, parseOptions); + parsedExpression = parser.parse(exp); + if (parsedExpression.constant) { + parsedExpression.$$watchDelegate = constantWatchDelegate; + } else if (oneTime) { + parsedExpression.$$watchDelegate = parsedExpression.literal ? + oneTimeLiteralWatchDelegate : oneTimeWatchDelegate; + } else if (parsedExpression.inputs) { + parsedExpression.$$watchDelegate = inputsWatchDelegate; + } + cache[cacheKey] = parsedExpression; + } + return addInterceptor(parsedExpression, interceptorFn); + + case 'function': + return addInterceptor(exp, interceptorFn); + + default: + return noop; + } + }; + + function expressionInputDirtyCheck(newValue, oldValueOfValue) { + + if (newValue == null || oldValueOfValue == null) { // null/undefined + return newValue === oldValueOfValue; + } + + if (typeof newValue === 'object') { + + // attempt to convert the value to a primitive type + // TODO(docs): add a note to docs that by implementing valueOf even objects and arrays can + // be cheaply dirty-checked + newValue = getValueOf(newValue); + + if (typeof newValue === 'object') { + // objects/arrays are not supported - deep-watching them would be too expensive + return false; + } + + // fall-through to the primitive equality check + } + + //Primitive or NaN + return newValue === oldValueOfValue || (newValue !== newValue && oldValueOfValue !== oldValueOfValue); + } + + function inputsWatchDelegate(scope, listener, objectEquality, parsedExpression, prettyPrintExpression) { + var inputExpressions = parsedExpression.inputs; + var lastResult; + + if (inputExpressions.length === 1) { + var oldInputValueOf = expressionInputDirtyCheck; // init to something unique so that equals check fails + inputExpressions = inputExpressions[0]; + return scope.$watch(function expressionInputWatch(scope) { + var newInputValue = inputExpressions(scope); + if (!expressionInputDirtyCheck(newInputValue, oldInputValueOf)) { + lastResult = parsedExpression(scope, undefined, undefined, [newInputValue]); + oldInputValueOf = newInputValue && getValueOf(newInputValue); + } + return lastResult; + }, listener, objectEquality, prettyPrintExpression); + } + + var oldInputValueOfValues = []; + var oldInputValues = []; + for (var i = 0, ii = inputExpressions.length; i < ii; i++) { + oldInputValueOfValues[i] = expressionInputDirtyCheck; // init to something unique so that equals check fails + oldInputValues[i] = null; + } + + return scope.$watch(function expressionInputsWatch(scope) { + var changed = false; + + for (var i = 0, ii = inputExpressions.length; i < ii; i++) { + var newInputValue = inputExpressions[i](scope); + if (changed || (changed = !expressionInputDirtyCheck(newInputValue, oldInputValueOfValues[i]))) { + oldInputValues[i] = newInputValue; + oldInputValueOfValues[i] = newInputValue && getValueOf(newInputValue); + } + } + + if (changed) { + lastResult = parsedExpression(scope, undefined, undefined, oldInputValues); + } + + return lastResult; + }, listener, objectEquality, prettyPrintExpression); + } + + function oneTimeWatchDelegate(scope, listener, objectEquality, parsedExpression) { + var unwatch, lastValue; + return unwatch = scope.$watch(function oneTimeWatch(scope) { + return parsedExpression(scope); + }, function oneTimeListener(value, old, scope) { + lastValue = value; + if (isFunction(listener)) { + listener.apply(this, arguments); + } + if (isDefined(value)) { + scope.$$postDigest(function() { + if (isDefined(lastValue)) { + unwatch(); + } + }); + } + }, objectEquality); + } + + function oneTimeLiteralWatchDelegate(scope, listener, objectEquality, parsedExpression) { + var unwatch, lastValue; + return unwatch = scope.$watch(function oneTimeWatch(scope) { + return parsedExpression(scope); + }, function oneTimeListener(value, old, scope) { + lastValue = value; + if (isFunction(listener)) { + listener.call(this, value, old, scope); + } + if (isAllDefined(value)) { + scope.$$postDigest(function() { + if (isAllDefined(lastValue)) unwatch(); + }); + } + }, objectEquality); + + function isAllDefined(value) { + var allDefined = true; + forEach(value, function(val) { + if (!isDefined(val)) allDefined = false; + }); + return allDefined; + } + } + + function constantWatchDelegate(scope, listener, objectEquality, parsedExpression) { + var unwatch; + return unwatch = scope.$watch(function constantWatch(scope) { + return parsedExpression(scope); + }, function constantListener(value, old, scope) { + if (isFunction(listener)) { + listener.apply(this, arguments); + } + unwatch(); + }, objectEquality); + } + + function addInterceptor(parsedExpression, interceptorFn) { + if (!interceptorFn) return parsedExpression; + var watchDelegate = parsedExpression.$$watchDelegate; + + var regularWatch = + watchDelegate !== oneTimeLiteralWatchDelegate && + watchDelegate !== oneTimeWatchDelegate; + + var fn = regularWatch ? function regularInterceptedExpression(scope, locals, assign, inputs) { + var value = parsedExpression(scope, locals, assign, inputs); + return interceptorFn(value, scope, locals); + } : function oneTimeInterceptedExpression(scope, locals, assign, inputs) { + var value = parsedExpression(scope, locals, assign, inputs); + var result = interceptorFn(value, scope, locals); + // we only return the interceptor's result if the + // initial value is defined (for bind-once) + return isDefined(value) ? result : value; + }; + + // Propagate $$watchDelegates other then inputsWatchDelegate + if (parsedExpression.$$watchDelegate && + parsedExpression.$$watchDelegate !== inputsWatchDelegate) { + fn.$$watchDelegate = parsedExpression.$$watchDelegate; + } else if (!interceptorFn.$stateful) { + // If there is an interceptor, but no watchDelegate then treat the interceptor like + // we treat filters - it is assumed to be a pure function unless flagged with $stateful + fn.$$watchDelegate = inputsWatchDelegate; + fn.inputs = parsedExpression.inputs ? parsedExpression.inputs : [parsedExpression]; + } + + return fn; + } + }]; +} + +/** + * @ngdoc service + * @name $q + * @requires $rootScope + * + * @description + * A service that helps you run functions asynchronously, and use their return values (or exceptions) + * when they are done processing. + * + * This is an implementation of promises/deferred objects inspired by + * [Kris Kowal's Q](https://github.com/kriskowal/q). + * + * $q can be used in two fashions --- one which is more similar to Kris Kowal's Q or jQuery's Deferred + * implementations, and the other which resembles ES6 promises to some degree. + * + * # $q constructor + * + * The streamlined ES6 style promise is essentially just using $q as a constructor which takes a `resolver` + * function as the first argument. This is similar to the native Promise implementation from ES6 Harmony, + * see [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). + * + * While the constructor-style use is supported, not all of the supporting methods from ES6 Harmony promises are + * available yet. + * + * It can be used like so: + * + * ```js + * // for the purpose of this example let's assume that variables `$q` and `okToGreet` + * // are available in the current lexical scope (they could have been injected or passed in). + * + * function asyncGreet(name) { + * // perform some asynchronous operation, resolve or reject the promise when appropriate. + * return $q(function(resolve, reject) { + * setTimeout(function() { + * if (okToGreet(name)) { + * resolve('Hello, ' + name + '!'); + * } else { + * reject('Greeting ' + name + ' is not allowed.'); + * } + * }, 1000); + * }); + * } + * + * var promise = asyncGreet('Robin Hood'); + * promise.then(function(greeting) { + * alert('Success: ' + greeting); + * }, function(reason) { + * alert('Failed: ' + reason); + * }); + * ``` + * + * Note: progress/notify callbacks are not currently supported via the ES6-style interface. + * + * However, the more traditional CommonJS-style usage is still available, and documented below. + * + * [The CommonJS Promise proposal](http://wiki.commonjs.org/wiki/Promises) describes a promise as an + * interface for interacting with an object that represents the result of an action that is + * performed asynchronously, and may or may not be finished at any given point in time. + * + * From the perspective of dealing with error handling, deferred and promise APIs are to + * asynchronous programming what `try`, `catch` and `throw` keywords are to synchronous programming. + * + * ```js + * // for the purpose of this example let's assume that variables `$q` and `okToGreet` + * // are available in the current lexical scope (they could have been injected or passed in). + * + * function asyncGreet(name) { + * var deferred = $q.defer(); + * + * setTimeout(function() { + * deferred.notify('About to greet ' + name + '.'); + * + * if (okToGreet(name)) { + * deferred.resolve('Hello, ' + name + '!'); + * } else { + * deferred.reject('Greeting ' + name + ' is not allowed.'); + * } + * }, 1000); + * + * return deferred.promise; + * } + * + * var promise = asyncGreet('Robin Hood'); + * promise.then(function(greeting) { + * alert('Success: ' + greeting); + * }, function(reason) { + * alert('Failed: ' + reason); + * }, function(update) { + * alert('Got notification: ' + update); + * }); + * ``` + * + * At first it might not be obvious why this extra complexity is worth the trouble. The payoff + * comes in the way of guarantees that promise and deferred APIs make, see + * https://github.com/kriskowal/uncommonjs/blob/master/promises/specification.md. + * + * Additionally the promise api allows for composition that is very hard to do with the + * traditional callback ([CPS](http://en.wikipedia.org/wiki/Continuation-passing_style)) approach. + * For more on this please see the [Q documentation](https://github.com/kriskowal/q) especially the + * section on serial or parallel joining of promises. + * + * # The Deferred API + * + * A new instance of deferred is constructed by calling `$q.defer()`. + * + * The purpose of the deferred object is to expose the associated Promise instance as well as APIs + * that can be used for signaling the successful or unsuccessful completion, as well as the status + * of the task. + * + * **Methods** + * + * - `resolve(value)` – resolves the derived promise with the `value`. If the value is a rejection + * constructed via `$q.reject`, the promise will be rejected instead. + * - `reject(reason)` – rejects the derived promise with the `reason`. This is equivalent to + * resolving it with a rejection constructed via `$q.reject`. + * - `notify(value)` - provides updates on the status of the promise's execution. This may be called + * multiple times before the promise is either resolved or rejected. + * + * **Properties** + * + * - promise – `{Promise}` – promise object associated with this deferred. + * + * + * # The Promise API + * + * A new promise instance is created when a deferred instance is created and can be retrieved by + * calling `deferred.promise`. + * + * The purpose of the promise object is to allow for interested parties to get access to the result + * of the deferred task when it completes. + * + * **Methods** + * + * - `then(successCallback, errorCallback, notifyCallback)` – regardless of when the promise was or + * will be resolved or rejected, `then` calls one of the success or error callbacks asynchronously + * as soon as the result is available. The callbacks are called with a single argument: the result + * or rejection reason. Additionally, the notify callback may be called zero or more times to + * provide a progress indication, before the promise is resolved or rejected. + * + * This method *returns a new promise* which is resolved or rejected via the return value of the + * `successCallback`, `errorCallback` (unless that value is a promise, in which case it is resolved + * with the value which is resolved in that promise using + * [promise chaining](http://www.html5rocks.com/en/tutorials/es6/promises/#toc-promises-queues)). + * It also notifies via the return value of the `notifyCallback` method. The promise cannot be + * resolved or rejected from the notifyCallback method. + * + * - `catch(errorCallback)` – shorthand for `promise.then(null, errorCallback)` + * + * - `finally(callback, notifyCallback)` – allows you to observe either the fulfillment or rejection of a promise, + * but to do so without modifying the final value. This is useful to release resources or do some + * clean-up that needs to be done whether the promise was rejected or resolved. See the [full + * specification](https://github.com/kriskowal/q/wiki/API-Reference#promisefinallycallback) for + * more information. + * + * # Chaining promises + * + * Because calling the `then` method of a promise returns a new derived promise, it is easily + * possible to create a chain of promises: + * + * ```js + * promiseB = promiseA.then(function(result) { + * return result + 1; + * }); + * + * // promiseB will be resolved immediately after promiseA is resolved and its value + * // will be the result of promiseA incremented by 1 + * ``` + * + * It is possible to create chains of any length and since a promise can be resolved with another + * promise (which will defer its resolution further), it is possible to pause/defer resolution of + * the promises at any point in the chain. This makes it possible to implement powerful APIs like + * $http's response interceptors. + * + * + * # Differences between Kris Kowal's Q and $q + * + * There are two main differences: + * + * - $q is integrated with the {@link ng.$rootScope.Scope} Scope model observation + * mechanism in angular, which means faster propagation of resolution or rejection into your + * models and avoiding unnecessary browser repaints, which would result in flickering UI. + * - Q has many more features than $q, but that comes at a cost of bytes. $q is tiny, but contains + * all the important functionality needed for common async tasks. + * + * # Testing + * + * ```js + * it('should simulate promise', inject(function($q, $rootScope) { + * var deferred = $q.defer(); + * var promise = deferred.promise; + * var resolvedValue; + * + * promise.then(function(value) { resolvedValue = value; }); + * expect(resolvedValue).toBeUndefined(); + * + * // Simulate resolving of promise + * deferred.resolve(123); + * // Note that the 'then' function does not get called synchronously. + * // This is because we want the promise API to always be async, whether or not + * // it got called synchronously or asynchronously. + * expect(resolvedValue).toBeUndefined(); + * + * // Propagate promise resolution to 'then' functions using $apply(). + * $rootScope.$apply(); + * expect(resolvedValue).toEqual(123); + * })); + * ``` + * + * @param {function(function, function)} resolver Function which is responsible for resolving or + * rejecting the newly created promise. The first parameter is a function which resolves the + * promise, the second parameter is a function which rejects the promise. + * + * @returns {Promise} The newly created promise. + */ +function $QProvider() { + + this.$get = ['$rootScope', '$exceptionHandler', function($rootScope, $exceptionHandler) { + return qFactory(function(callback) { + $rootScope.$evalAsync(callback); + }, $exceptionHandler); + }]; +} + +function $$QProvider() { + this.$get = ['$browser', '$exceptionHandler', function($browser, $exceptionHandler) { + return qFactory(function(callback) { + $browser.defer(callback); + }, $exceptionHandler); + }]; +} + +/** + * Constructs a promise manager. + * + * @param {function(function)} nextTick Function for executing functions in the next turn. + * @param {function(...*)} exceptionHandler Function into which unexpected exceptions are passed for + * debugging purposes. + * @returns {object} Promise manager. + */ +function qFactory(nextTick, exceptionHandler) { + var $qMinErr = minErr('$q', TypeError); + function callOnce(self, resolveFn, rejectFn) { + var called = false; + function wrap(fn) { + return function(value) { + if (called) return; + called = true; + fn.call(self, value); + }; + } + + return [wrap(resolveFn), wrap(rejectFn)]; + } + + /** + * @ngdoc method + * @name ng.$q#defer + * @kind function + * + * @description + * Creates a `Deferred` object which represents a task which will finish in the future. + * + * @returns {Deferred} Returns a new instance of deferred. + */ + var defer = function() { + return new Deferred(); + }; + + function Promise() { + this.$$state = { status: 0 }; + } + + Promise.prototype = { + then: function(onFulfilled, onRejected, progressBack) { + var result = new Deferred(); + + this.$$state.pending = this.$$state.pending || []; + this.$$state.pending.push([result, onFulfilled, onRejected, progressBack]); + if (this.$$state.status > 0) scheduleProcessQueue(this.$$state); + + return result.promise; + }, + + "catch": function(callback) { + return this.then(null, callback); + }, + + "finally": function(callback, progressBack) { + return this.then(function(value) { + return handleCallback(value, true, callback); + }, function(error) { + return handleCallback(error, false, callback); + }, progressBack); + } + }; + + //Faster, more basic than angular.bind http://jsperf.com/angular-bind-vs-custom-vs-native + function simpleBind(context, fn) { + return function(value) { + fn.call(context, value); + }; + } + + function processQueue(state) { + var fn, deferred, pending; + + pending = state.pending; + state.processScheduled = false; + state.pending = undefined; + for (var i = 0, ii = pending.length; i < ii; ++i) { + deferred = pending[i][0]; + fn = pending[i][state.status]; + try { + if (isFunction(fn)) { + deferred.resolve(fn(state.value)); + } else if (state.status === 1) { + deferred.resolve(state.value); + } else { + deferred.reject(state.value); + } + } catch (e) { + deferred.reject(e); + exceptionHandler(e); + } + } + } + + function scheduleProcessQueue(state) { + if (state.processScheduled || !state.pending) return; + state.processScheduled = true; + nextTick(function() { processQueue(state); }); + } + + function Deferred() { + this.promise = new Promise(); + //Necessary to support unbound execution :/ + this.resolve = simpleBind(this, this.resolve); + this.reject = simpleBind(this, this.reject); + this.notify = simpleBind(this, this.notify); + } + + Deferred.prototype = { + resolve: function(val) { + if (this.promise.$$state.status) return; + if (val === this.promise) { + this.$$reject($qMinErr( + 'qcycle', + "Expected promise to be resolved with value other than itself '{0}'", + val)); + } else { + this.$$resolve(val); + } + + }, + + $$resolve: function(val) { + var then, fns; + + fns = callOnce(this, this.$$resolve, this.$$reject); + try { + if ((isObject(val) || isFunction(val))) then = val && val.then; + if (isFunction(then)) { + this.promise.$$state.status = -1; + then.call(val, fns[0], fns[1], this.notify); + } else { + this.promise.$$state.value = val; + this.promise.$$state.status = 1; + scheduleProcessQueue(this.promise.$$state); + } + } catch (e) { + fns[1](e); + exceptionHandler(e); + } + }, + + reject: function(reason) { + if (this.promise.$$state.status) return; + this.$$reject(reason); + }, + + $$reject: function(reason) { + this.promise.$$state.value = reason; + this.promise.$$state.status = 2; + scheduleProcessQueue(this.promise.$$state); + }, + + notify: function(progress) { + var callbacks = this.promise.$$state.pending; + + if ((this.promise.$$state.status <= 0) && callbacks && callbacks.length) { + nextTick(function() { + var callback, result; + for (var i = 0, ii = callbacks.length; i < ii; i++) { + result = callbacks[i][0]; + callback = callbacks[i][3]; + try { + result.notify(isFunction(callback) ? callback(progress) : progress); + } catch (e) { + exceptionHandler(e); + } + } + }); + } + } + }; + + /** + * @ngdoc method + * @name $q#reject + * @kind function + * + * @description + * Creates a promise that is resolved as rejected with the specified `reason`. This api should be + * used to forward rejection in a chain of promises. If you are dealing with the last promise in + * a promise chain, you don't need to worry about it. + * + * When comparing deferreds/promises to the familiar behavior of try/catch/throw, think of + * `reject` as the `throw` keyword in JavaScript. This also means that if you "catch" an error via + * a promise error callback and you want to forward the error to the promise derived from the + * current promise, you have to "rethrow" the error by returning a rejection constructed via + * `reject`. + * + * ```js + * promiseB = promiseA.then(function(result) { + * // success: do something and resolve promiseB + * // with the old or a new result + * return result; + * }, function(reason) { + * // error: handle the error if possible and + * // resolve promiseB with newPromiseOrValue, + * // otherwise forward the rejection to promiseB + * if (canHandle(reason)) { + * // handle the error and recover + * return newPromiseOrValue; + * } + * return $q.reject(reason); + * }); + * ``` + * + * @param {*} reason Constant, message, exception or an object representing the rejection reason. + * @returns {Promise} Returns a promise that was already resolved as rejected with the `reason`. + */ + var reject = function(reason) { + var result = new Deferred(); + result.reject(reason); + return result.promise; + }; + + var makePromise = function makePromise(value, resolved) { + var result = new Deferred(); + if (resolved) { + result.resolve(value); + } else { + result.reject(value); + } + return result.promise; + }; + + var handleCallback = function handleCallback(value, isResolved, callback) { + var callbackOutput = null; + try { + if (isFunction(callback)) callbackOutput = callback(); + } catch (e) { + return makePromise(e, false); + } + if (isPromiseLike(callbackOutput)) { + return callbackOutput.then(function() { + return makePromise(value, isResolved); + }, function(error) { + return makePromise(error, false); + }); + } else { + return makePromise(value, isResolved); + } + }; + + /** + * @ngdoc method + * @name $q#when + * @kind function + * + * @description + * Wraps an object that might be a value or a (3rd party) then-able promise into a $q promise. + * This is useful when you are dealing with an object that might or might not be a promise, or if + * the promise comes from a source that can't be trusted. + * + * @param {*} value Value or a promise + * @returns {Promise} Returns a promise of the passed value or promise + */ + + + var when = function(value, callback, errback, progressBack) { + var result = new Deferred(); + result.resolve(value); + return result.promise.then(callback, errback, progressBack); + }; + + /** + * @ngdoc method + * @name $q#resolve + * @kind function + * + * @description + * Alias of {@link ng.$q#when when} to maintain naming consistency with ES6. + * + * @param {*} value Value or a promise + * @returns {Promise} Returns a promise of the passed value or promise + */ + var resolve = when; + + /** + * @ngdoc method + * @name $q#all + * @kind function + * + * @description + * Combines multiple promises into a single promise that is resolved when all of the input + * promises are resolved. + * + * @param {Array.|Object.} promises An array or hash of promises. + * @returns {Promise} Returns a single promise that will be resolved with an array/hash of values, + * each value corresponding to the promise at the same index/key in the `promises` array/hash. + * If any of the promises is resolved with a rejection, this resulting promise will be rejected + * with the same rejection value. + */ + + function all(promises) { + var deferred = new Deferred(), + counter = 0, + results = isArray(promises) ? [] : {}; + + forEach(promises, function(promise, key) { + counter++; + when(promise).then(function(value) { + if (results.hasOwnProperty(key)) return; + results[key] = value; + if (!(--counter)) deferred.resolve(results); + }, function(reason) { + if (results.hasOwnProperty(key)) return; + deferred.reject(reason); + }); + }); + + if (counter === 0) { + deferred.resolve(results); + } + + return deferred.promise; + } + + var $Q = function Q(resolver) { + if (!isFunction(resolver)) { + throw $qMinErr('norslvr', "Expected resolverFn, got '{0}'", resolver); + } + + if (!(this instanceof Q)) { + // More useful when $Q is the Promise itself. + return new Q(resolver); + } + + var deferred = new Deferred(); + + function resolveFn(value) { + deferred.resolve(value); + } + + function rejectFn(reason) { + deferred.reject(reason); + } + + resolver(resolveFn, rejectFn); + + return deferred.promise; + }; + + $Q.defer = defer; + $Q.reject = reject; + $Q.when = when; + $Q.resolve = resolve; + $Q.all = all; + + return $Q; +} + +function $$RAFProvider() { //rAF + this.$get = ['$window', '$timeout', function($window, $timeout) { + var requestAnimationFrame = $window.requestAnimationFrame || + $window.webkitRequestAnimationFrame; + + var cancelAnimationFrame = $window.cancelAnimationFrame || + $window.webkitCancelAnimationFrame || + $window.webkitCancelRequestAnimationFrame; + + var rafSupported = !!requestAnimationFrame; + var rafFn = rafSupported + ? function(fn) { + var id = requestAnimationFrame(fn); + return function() { + cancelAnimationFrame(id); + }; + } + : function(fn) { + var timer = $timeout(fn, 16.66, false); // 1000 / 60 = 16.666 + return function() { + $timeout.cancel(timer); + }; + }; + + queueFn.supported = rafSupported; + + var cancelLastRAF; + var taskCount = 0; + var taskQueue = []; + return queueFn; + + function flush() { + for (var i = 0; i < taskQueue.length; i++) { + var task = taskQueue[i]; + if (task) { + taskQueue[i] = null; + task(); + } + } + taskCount = taskQueue.length = 0; + } + + function queueFn(asyncFn) { + var index = taskQueue.length; + + taskCount++; + taskQueue.push(asyncFn); + + if (index === 0) { + cancelLastRAF = rafFn(flush); + } + + return function cancelQueueFn() { + if (index >= 0) { + taskQueue[index] = null; + index = null; + + if (--taskCount === 0 && cancelLastRAF) { + cancelLastRAF(); + cancelLastRAF = null; + taskQueue.length = 0; + } + } + }; + } + }]; +} + +/** + * DESIGN NOTES + * + * The design decisions behind the scope are heavily favored for speed and memory consumption. + * + * The typical use of scope is to watch the expressions, which most of the time return the same + * value as last time so we optimize the operation. + * + * Closures construction is expensive in terms of speed as well as memory: + * - No closures, instead use prototypical inheritance for API + * - Internal state needs to be stored on scope directly, which means that private state is + * exposed as $$____ properties + * + * Loop operations are optimized by using while(count--) { ... } + * - this means that in order to keep the same order of execution as addition we have to add + * items to the array at the beginning (unshift) instead of at the end (push) + * + * Child scopes are created and removed often + * - Using an array would be slow since inserts in middle are expensive so we use linked list + * + * There are few watches then a lot of observers. This is why you don't want the observer to be + * implemented in the same way as watch. Watch requires return of initialization function which + * are expensive to construct. + */ + + +/** + * @ngdoc provider + * @name $rootScopeProvider + * @description + * + * Provider for the $rootScope service. + */ + +/** + * @ngdoc method + * @name $rootScopeProvider#digestTtl + * @description + * + * Sets the number of `$digest` iterations the scope should attempt to execute before giving up and + * assuming that the model is unstable. + * + * The current default is 10 iterations. + * + * In complex applications it's possible that the dependencies between `$watch`s will result in + * several digest iterations. However if an application needs more than the default 10 digest + * iterations for its model to stabilize then you should investigate what is causing the model to + * continuously change during the digest. + * + * Increasing the TTL could have performance implications, so you should not change it without + * proper justification. + * + * @param {number} limit The number of digest iterations. + */ + + +/** + * @ngdoc service + * @name $rootScope + * @description + * + * Every application has a single root {@link ng.$rootScope.Scope scope}. + * All other scopes are descendant scopes of the root scope. Scopes provide separation + * between the model and the view, via a mechanism for watching the model for changes. + * They also provide an event emission/broadcast and subscription facility. See the + * {@link guide/scope developer guide on scopes}. + */ +function $RootScopeProvider() { + var TTL = 10; + var $rootScopeMinErr = minErr('$rootScope'); + var lastDirtyWatch = null; + var applyAsyncId = null; + + this.digestTtl = function(value) { + if (arguments.length) { + TTL = value; + } + return TTL; + }; + + function createChildScopeClass(parent) { + function ChildScope() { + this.$$watchers = this.$$nextSibling = + this.$$childHead = this.$$childTail = null; + this.$$listeners = {}; + this.$$listenerCount = {}; + this.$$watchersCount = 0; + this.$id = nextUid(); + this.$$ChildScope = null; + } + ChildScope.prototype = parent; + return ChildScope; + } + + this.$get = ['$injector', '$exceptionHandler', '$parse', '$browser', + function($injector, $exceptionHandler, $parse, $browser) { + + function destroyChildScope($event) { + $event.currentScope.$$destroyed = true; + } + + /** + * @ngdoc type + * @name $rootScope.Scope + * + * @description + * A root scope can be retrieved using the {@link ng.$rootScope $rootScope} key from the + * {@link auto.$injector $injector}. Child scopes are created using the + * {@link ng.$rootScope.Scope#$new $new()} method. (Most scopes are created automatically when + * compiled HTML template is executed.) + * + * Here is a simple scope snippet to show how you can interact with the scope. + * ```html + * + * ``` + * + * # Inheritance + * A scope can inherit from a parent scope, as in this example: + * ```js + var parent = $rootScope; + var child = parent.$new(); + + parent.salutation = "Hello"; + expect(child.salutation).toEqual('Hello'); + + child.salutation = "Welcome"; + expect(child.salutation).toEqual('Welcome'); + expect(parent.salutation).toEqual('Hello'); + * ``` + * + * When interacting with `Scope` in tests, additional helper methods are available on the + * instances of `Scope` type. See {@link ngMock.$rootScope.Scope ngMock Scope} for additional + * details. + * + * + * @param {Object.=} providers Map of service factory which need to be + * provided for the current scope. Defaults to {@link ng}. + * @param {Object.=} instanceCache Provides pre-instantiated services which should + * append/override services provided by `providers`. This is handy + * when unit-testing and having the need to override a default + * service. + * @returns {Object} Newly created scope. + * + */ + function Scope() { + this.$id = nextUid(); + this.$$phase = this.$parent = this.$$watchers = + this.$$nextSibling = this.$$prevSibling = + this.$$childHead = this.$$childTail = null; + this.$root = this; + this.$$destroyed = false; + this.$$listeners = {}; + this.$$listenerCount = {}; + this.$$watchersCount = 0; + this.$$isolateBindings = null; + } + + /** + * @ngdoc property + * @name $rootScope.Scope#$id + * + * @description + * Unique scope ID (monotonically increasing) useful for debugging. + */ + + /** + * @ngdoc property + * @name $rootScope.Scope#$parent + * + * @description + * Reference to the parent scope. + */ + + /** + * @ngdoc property + * @name $rootScope.Scope#$root + * + * @description + * Reference to the root scope. + */ + + Scope.prototype = { + constructor: Scope, + /** + * @ngdoc method + * @name $rootScope.Scope#$new + * @kind function + * + * @description + * Creates a new child {@link ng.$rootScope.Scope scope}. + * + * The parent scope will propagate the {@link ng.$rootScope.Scope#$digest $digest()} event. + * The scope can be removed from the scope hierarchy using {@link ng.$rootScope.Scope#$destroy $destroy()}. + * + * {@link ng.$rootScope.Scope#$destroy $destroy()} must be called on a scope when it is + * desired for the scope and its child scopes to be permanently detached from the parent and + * thus stop participating in model change detection and listener notification by invoking. + * + * @param {boolean} isolate If true, then the scope does not prototypically inherit from the + * parent scope. The scope is isolated, as it can not see parent scope properties. + * When creating widgets, it is useful for the widget to not accidentally read parent + * state. + * + * @param {Scope} [parent=this] The {@link ng.$rootScope.Scope `Scope`} that will be the `$parent` + * of the newly created scope. Defaults to `this` scope if not provided. + * This is used when creating a transclude scope to correctly place it + * in the scope hierarchy while maintaining the correct prototypical + * inheritance. + * + * @returns {Object} The newly created child scope. + * + */ + $new: function(isolate, parent) { + var child; + + parent = parent || this; + + if (isolate) { + child = new Scope(); + child.$root = this.$root; + } else { + // Only create a child scope class if somebody asks for one, + // but cache it to allow the VM to optimize lookups. + if (!this.$$ChildScope) { + this.$$ChildScope = createChildScopeClass(this); + } + child = new this.$$ChildScope(); + } + child.$parent = parent; + child.$$prevSibling = parent.$$childTail; + if (parent.$$childHead) { + parent.$$childTail.$$nextSibling = child; + parent.$$childTail = child; + } else { + parent.$$childHead = parent.$$childTail = child; + } + + // When the new scope is not isolated or we inherit from `this`, and + // the parent scope is destroyed, the property `$$destroyed` is inherited + // prototypically. In all other cases, this property needs to be set + // when the parent scope is destroyed. + // The listener needs to be added after the parent is set + if (isolate || parent != this) child.$on('$destroy', destroyChildScope); + + return child; + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$watch + * @kind function + * + * @description + * Registers a `listener` callback to be executed whenever the `watchExpression` changes. + * + * - The `watchExpression` is called on every call to {@link ng.$rootScope.Scope#$digest + * $digest()} and should return the value that will be watched. (Since + * {@link ng.$rootScope.Scope#$digest $digest()} reruns when it detects changes the + * `watchExpression` can execute multiple times per + * {@link ng.$rootScope.Scope#$digest $digest()} and should be idempotent.) + * - The `listener` is called only when the value from the current `watchExpression` and the + * previous call to `watchExpression` are not equal (with the exception of the initial run, + * see below). Inequality is determined according to reference inequality, + * [strict comparison](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators) + * via the `!==` Javascript operator, unless `objectEquality == true` + * (see next point) + * - When `objectEquality == true`, inequality of the `watchExpression` is determined + * according to the {@link angular.equals} function. To save the value of the object for + * later comparison, the {@link angular.copy} function is used. This therefore means that + * watching complex objects will have adverse memory and performance implications. + * - The watch `listener` may change the model, which may trigger other `listener`s to fire. + * This is achieved by rerunning the watchers until no changes are detected. The rerun + * iteration limit is 10 to prevent an infinite loop deadlock. + * + * + * If you want to be notified whenever {@link ng.$rootScope.Scope#$digest $digest} is called, + * you can register a `watchExpression` function with no `listener`. (Since `watchExpression` + * can execute multiple times per {@link ng.$rootScope.Scope#$digest $digest} cycle when a + * change is detected, be prepared for multiple calls to your listener.) + * + * After a watcher is registered with the scope, the `listener` fn is called asynchronously + * (via {@link ng.$rootScope.Scope#$evalAsync $evalAsync}) to initialize the + * watcher. In rare cases, this is undesirable because the listener is called when the result + * of `watchExpression` didn't change. To detect this scenario within the `listener` fn, you + * can compare the `newVal` and `oldVal`. If these two values are identical (`===`) then the + * listener was called due to initialization. + * + * + * + * # Example + * ```js + // let's assume that scope was dependency injected as the $rootScope + var scope = $rootScope; + scope.name = 'misko'; + scope.counter = 0; + + expect(scope.counter).toEqual(0); + scope.$watch('name', function(newValue, oldValue) { + scope.counter = scope.counter + 1; + }); + expect(scope.counter).toEqual(0); + + scope.$digest(); + // the listener is always called during the first $digest loop after it was registered + expect(scope.counter).toEqual(1); + + scope.$digest(); + // but now it will not be called unless the value changes + expect(scope.counter).toEqual(1); + + scope.name = 'adam'; + scope.$digest(); + expect(scope.counter).toEqual(2); + + + + // Using a function as a watchExpression + var food; + scope.foodCounter = 0; + expect(scope.foodCounter).toEqual(0); + scope.$watch( + // This function returns the value being watched. It is called for each turn of the $digest loop + function() { return food; }, + // This is the change listener, called when the value returned from the above function changes + function(newValue, oldValue) { + if ( newValue !== oldValue ) { + // Only increment the counter if the value changed + scope.foodCounter = scope.foodCounter + 1; + } + } + ); + // No digest has been run so the counter will be zero + expect(scope.foodCounter).toEqual(0); + + // Run the digest but since food has not changed count will still be zero + scope.$digest(); + expect(scope.foodCounter).toEqual(0); + + // Update food and run digest. Now the counter will increment + food = 'cheeseburger'; + scope.$digest(); + expect(scope.foodCounter).toEqual(1); + + * ``` + * + * + * + * @param {(function()|string)} watchExpression Expression that is evaluated on each + * {@link ng.$rootScope.Scope#$digest $digest} cycle. A change in the return value triggers + * a call to the `listener`. + * + * - `string`: Evaluated as {@link guide/expression expression} + * - `function(scope)`: called with current `scope` as a parameter. + * @param {function(newVal, oldVal, scope)} listener Callback called whenever the value + * of `watchExpression` changes. + * + * - `newVal` contains the current value of the `watchExpression` + * - `oldVal` contains the previous value of the `watchExpression` + * - `scope` refers to the current scope + * @param {boolean=} objectEquality Compare for object equality using {@link angular.equals} instead of + * comparing for reference equality. + * @returns {function()} Returns a deregistration function for this listener. + */ + $watch: function(watchExp, listener, objectEquality, prettyPrintExpression) { + var get = $parse(watchExp); + + if (get.$$watchDelegate) { + return get.$$watchDelegate(this, listener, objectEquality, get, watchExp); + } + var scope = this, + array = scope.$$watchers, + watcher = { + fn: listener, + last: initWatchVal, + get: get, + exp: prettyPrintExpression || watchExp, + eq: !!objectEquality + }; + + lastDirtyWatch = null; + + if (!isFunction(listener)) { + watcher.fn = noop; + } + + if (!array) { + array = scope.$$watchers = []; + } + // we use unshift since we use a while loop in $digest for speed. + // the while loop reads in reverse order. + array.unshift(watcher); + incrementWatchersCount(this, 1); + + return function deregisterWatch() { + if (arrayRemove(array, watcher) >= 0) { + incrementWatchersCount(scope, -1); + } + lastDirtyWatch = null; + }; + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$watchGroup + * @kind function + * + * @description + * A variant of {@link ng.$rootScope.Scope#$watch $watch()} where it watches an array of `watchExpressions`. + * If any one expression in the collection changes the `listener` is executed. + * + * - The items in the `watchExpressions` array are observed via standard $watch operation and are examined on every + * call to $digest() to see if any items changes. + * - The `listener` is called whenever any expression in the `watchExpressions` array changes. + * + * @param {Array.} watchExpressions Array of expressions that will be individually + * watched using {@link ng.$rootScope.Scope#$watch $watch()} + * + * @param {function(newValues, oldValues, scope)} listener Callback called whenever the return value of any + * expression in `watchExpressions` changes + * The `newValues` array contains the current values of the `watchExpressions`, with the indexes matching + * those of `watchExpression` + * and the `oldValues` array contains the previous values of the `watchExpressions`, with the indexes matching + * those of `watchExpression` + * The `scope` refers to the current scope. + * @returns {function()} Returns a de-registration function for all listeners. + */ + $watchGroup: function(watchExpressions, listener) { + var oldValues = new Array(watchExpressions.length); + var newValues = new Array(watchExpressions.length); + var deregisterFns = []; + var self = this; + var changeReactionScheduled = false; + var firstRun = true; + + if (!watchExpressions.length) { + // No expressions means we call the listener ASAP + var shouldCall = true; + self.$evalAsync(function() { + if (shouldCall) listener(newValues, newValues, self); + }); + return function deregisterWatchGroup() { + shouldCall = false; + }; + } + + if (watchExpressions.length === 1) { + // Special case size of one + return this.$watch(watchExpressions[0], function watchGroupAction(value, oldValue, scope) { + newValues[0] = value; + oldValues[0] = oldValue; + listener(newValues, (value === oldValue) ? newValues : oldValues, scope); + }); + } + + forEach(watchExpressions, function(expr, i) { + var unwatchFn = self.$watch(expr, function watchGroupSubAction(value, oldValue) { + newValues[i] = value; + oldValues[i] = oldValue; + if (!changeReactionScheduled) { + changeReactionScheduled = true; + self.$evalAsync(watchGroupAction); + } + }); + deregisterFns.push(unwatchFn); + }); + + function watchGroupAction() { + changeReactionScheduled = false; + + if (firstRun) { + firstRun = false; + listener(newValues, newValues, self); + } else { + listener(newValues, oldValues, self); + } + } + + return function deregisterWatchGroup() { + while (deregisterFns.length) { + deregisterFns.shift()(); + } + }; + }, + + + /** + * @ngdoc method + * @name $rootScope.Scope#$watchCollection + * @kind function + * + * @description + * Shallow watches the properties of an object and fires whenever any of the properties change + * (for arrays, this implies watching the array items; for object maps, this implies watching + * the properties). If a change is detected, the `listener` callback is fired. + * + * - The `obj` collection is observed via standard $watch operation and is examined on every + * call to $digest() to see if any items have been added, removed, or moved. + * - The `listener` is called whenever anything within the `obj` has changed. Examples include + * adding, removing, and moving items belonging to an object or array. + * + * + * # Example + * ```js + $scope.names = ['igor', 'matias', 'misko', 'james']; + $scope.dataCount = 4; + + $scope.$watchCollection('names', function(newNames, oldNames) { + $scope.dataCount = newNames.length; + }); + + expect($scope.dataCount).toEqual(4); + $scope.$digest(); + + //still at 4 ... no changes + expect($scope.dataCount).toEqual(4); + + $scope.names.pop(); + $scope.$digest(); + + //now there's been a change + expect($scope.dataCount).toEqual(3); + * ``` + * + * + * @param {string|function(scope)} obj Evaluated as {@link guide/expression expression}. The + * expression value should evaluate to an object or an array which is observed on each + * {@link ng.$rootScope.Scope#$digest $digest} cycle. Any shallow change within the + * collection will trigger a call to the `listener`. + * + * @param {function(newCollection, oldCollection, scope)} listener a callback function called + * when a change is detected. + * - The `newCollection` object is the newly modified data obtained from the `obj` expression + * - The `oldCollection` object is a copy of the former collection data. + * Due to performance considerations, the`oldCollection` value is computed only if the + * `listener` function declares two or more arguments. + * - The `scope` argument refers to the current scope. + * + * @returns {function()} Returns a de-registration function for this listener. When the + * de-registration function is executed, the internal watch operation is terminated. + */ + $watchCollection: function(obj, listener) { + $watchCollectionInterceptor.$stateful = true; + + var self = this; + // the current value, updated on each dirty-check run + var newValue; + // a shallow copy of the newValue from the last dirty-check run, + // updated to match newValue during dirty-check run + var oldValue; + // a shallow copy of the newValue from when the last change happened + var veryOldValue; + // only track veryOldValue if the listener is asking for it + var trackVeryOldValue = (listener.length > 1); + var changeDetected = 0; + var changeDetector = $parse(obj, $watchCollectionInterceptor); + var internalArray = []; + var internalObject = {}; + var initRun = true; + var oldLength = 0; + + function $watchCollectionInterceptor(_value) { + newValue = _value; + var newLength, key, bothNaN, newItem, oldItem; + + // If the new value is undefined, then return undefined as the watch may be a one-time watch + if (isUndefined(newValue)) return; + + if (!isObject(newValue)) { // if primitive + if (oldValue !== newValue) { + oldValue = newValue; + changeDetected++; + } + } else if (isArrayLike(newValue)) { + if (oldValue !== internalArray) { + // we are transitioning from something which was not an array into array. + oldValue = internalArray; + oldLength = oldValue.length = 0; + changeDetected++; + } + + newLength = newValue.length; + + if (oldLength !== newLength) { + // if lengths do not match we need to trigger change notification + changeDetected++; + oldValue.length = oldLength = newLength; + } + // copy the items to oldValue and look for changes. + for (var i = 0; i < newLength; i++) { + oldItem = oldValue[i]; + newItem = newValue[i]; + + bothNaN = (oldItem !== oldItem) && (newItem !== newItem); + if (!bothNaN && (oldItem !== newItem)) { + changeDetected++; + oldValue[i] = newItem; + } + } + } else { + if (oldValue !== internalObject) { + // we are transitioning from something which was not an object into object. + oldValue = internalObject = {}; + oldLength = 0; + changeDetected++; + } + // copy the items to oldValue and look for changes. + newLength = 0; + for (key in newValue) { + if (newValue.hasOwnProperty(key)) { + newLength++; + newItem = newValue[key]; + oldItem = oldValue[key]; + + if (key in oldValue) { + bothNaN = (oldItem !== oldItem) && (newItem !== newItem); + if (!bothNaN && (oldItem !== newItem)) { + changeDetected++; + oldValue[key] = newItem; + } + } else { + oldLength++; + oldValue[key] = newItem; + changeDetected++; + } + } + } + if (oldLength > newLength) { + // we used to have more keys, need to find them and destroy them. + changeDetected++; + for (key in oldValue) { + if (!newValue.hasOwnProperty(key)) { + oldLength--; + delete oldValue[key]; + } + } + } + } + return changeDetected; + } + + function $watchCollectionAction() { + if (initRun) { + initRun = false; + listener(newValue, newValue, self); + } else { + listener(newValue, veryOldValue, self); + } + + // make a copy for the next time a collection is changed + if (trackVeryOldValue) { + if (!isObject(newValue)) { + //primitive + veryOldValue = newValue; + } else if (isArrayLike(newValue)) { + veryOldValue = new Array(newValue.length); + for (var i = 0; i < newValue.length; i++) { + veryOldValue[i] = newValue[i]; + } + } else { // if object + veryOldValue = {}; + for (var key in newValue) { + if (hasOwnProperty.call(newValue, key)) { + veryOldValue[key] = newValue[key]; + } + } + } + } + } + + return this.$watch(changeDetector, $watchCollectionAction); + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$digest + * @kind function + * + * @description + * Processes all of the {@link ng.$rootScope.Scope#$watch watchers} of the current scope and + * its children. Because a {@link ng.$rootScope.Scope#$watch watcher}'s listener can change + * the model, the `$digest()` keeps calling the {@link ng.$rootScope.Scope#$watch watchers} + * until no more listeners are firing. This means that it is possible to get into an infinite + * loop. This function will throw `'Maximum iteration limit exceeded.'` if the number of + * iterations exceeds 10. + * + * Usually, you don't call `$digest()` directly in + * {@link ng.directive:ngController controllers} or in + * {@link ng.$compileProvider#directive directives}. + * Instead, you should call {@link ng.$rootScope.Scope#$apply $apply()} (typically from within + * a {@link ng.$compileProvider#directive directive}), which will force a `$digest()`. + * + * If you want to be notified whenever `$digest()` is called, + * you can register a `watchExpression` function with + * {@link ng.$rootScope.Scope#$watch $watch()} with no `listener`. + * + * In unit tests, you may need to call `$digest()` to simulate the scope life cycle. + * + * # Example + * ```js + var scope = ...; + scope.name = 'misko'; + scope.counter = 0; + + expect(scope.counter).toEqual(0); + scope.$watch('name', function(newValue, oldValue) { + scope.counter = scope.counter + 1; + }); + expect(scope.counter).toEqual(0); + + scope.$digest(); + // the listener is always called during the first $digest loop after it was registered + expect(scope.counter).toEqual(1); + + scope.$digest(); + // but now it will not be called unless the value changes + expect(scope.counter).toEqual(1); + + scope.name = 'adam'; + scope.$digest(); + expect(scope.counter).toEqual(2); + * ``` + * + */ + $digest: function() { + var watch, value, last, + watchers, + length, + dirty, ttl = TTL, + next, current, target = this, + watchLog = [], + logIdx, logMsg, asyncTask; + + beginPhase('$digest'); + // Check for changes to browser url that happened in sync before the call to $digest + $browser.$$checkUrlChange(); + + if (this === $rootScope && applyAsyncId !== null) { + // If this is the root scope, and $applyAsync has scheduled a deferred $apply(), then + // cancel the scheduled $apply and flush the queue of expressions to be evaluated. + $browser.defer.cancel(applyAsyncId); + flushApplyAsync(); + } + + lastDirtyWatch = null; + + do { // "while dirty" loop + dirty = false; + current = target; + + while (asyncQueue.length) { + try { + asyncTask = asyncQueue.shift(); + asyncTask.scope.$eval(asyncTask.expression, asyncTask.locals); + } catch (e) { + $exceptionHandler(e); + } + lastDirtyWatch = null; + } + + traverseScopesLoop: + do { // "traverse the scopes" loop + if ((watchers = current.$$watchers)) { + // process our watches + length = watchers.length; + while (length--) { + try { + watch = watchers[length]; + // Most common watches are on primitives, in which case we can short + // circuit it with === operator, only when === fails do we use .equals + if (watch) { + if ((value = watch.get(current)) !== (last = watch.last) && + !(watch.eq + ? equals(value, last) + : (typeof value === 'number' && typeof last === 'number' + && isNaN(value) && isNaN(last)))) { + dirty = true; + lastDirtyWatch = watch; + watch.last = watch.eq ? copy(value, null) : value; + watch.fn(value, ((last === initWatchVal) ? value : last), current); + if (ttl < 5) { + logIdx = 4 - ttl; + if (!watchLog[logIdx]) watchLog[logIdx] = []; + watchLog[logIdx].push({ + msg: isFunction(watch.exp) ? 'fn: ' + (watch.exp.name || watch.exp.toString()) : watch.exp, + newVal: value, + oldVal: last + }); + } + } else if (watch === lastDirtyWatch) { + // If the most recently dirty watcher is now clean, short circuit since the remaining watchers + // have already been tested. + dirty = false; + break traverseScopesLoop; + } + } + } catch (e) { + $exceptionHandler(e); + } + } + } + + // Insanity Warning: scope depth-first traversal + // yes, this code is a bit crazy, but it works and we have tests to prove it! + // this piece should be kept in sync with the traversal in $broadcast + if (!(next = ((current.$$watchersCount && current.$$childHead) || + (current !== target && current.$$nextSibling)))) { + while (current !== target && !(next = current.$$nextSibling)) { + current = current.$parent; + } + } + } while ((current = next)); + + // `break traverseScopesLoop;` takes us to here + + if ((dirty || asyncQueue.length) && !(ttl--)) { + clearPhase(); + throw $rootScopeMinErr('infdig', + '{0} $digest() iterations reached. Aborting!\n' + + 'Watchers fired in the last 5 iterations: {1}', + TTL, watchLog); + } + + } while (dirty || asyncQueue.length); + + clearPhase(); + + while (postDigestQueue.length) { + try { + postDigestQueue.shift()(); + } catch (e) { + $exceptionHandler(e); + } + } + }, + + + /** + * @ngdoc event + * @name $rootScope.Scope#$destroy + * @eventType broadcast on scope being destroyed + * + * @description + * Broadcasted when a scope and its children are being destroyed. + * + * Note that, in AngularJS, there is also a `$destroy` jQuery event, which can be used to + * clean up DOM bindings before an element is removed from the DOM. + */ + + /** + * @ngdoc method + * @name $rootScope.Scope#$destroy + * @kind function + * + * @description + * Removes the current scope (and all of its children) from the parent scope. Removal implies + * that calls to {@link ng.$rootScope.Scope#$digest $digest()} will no longer + * propagate to the current scope and its children. Removal also implies that the current + * scope is eligible for garbage collection. + * + * The `$destroy()` is usually used by directives such as + * {@link ng.directive:ngRepeat ngRepeat} for managing the + * unrolling of the loop. + * + * Just before a scope is destroyed, a `$destroy` event is broadcasted on this scope. + * Application code can register a `$destroy` event handler that will give it a chance to + * perform any necessary cleanup. + * + * Note that, in AngularJS, there is also a `$destroy` jQuery event, which can be used to + * clean up DOM bindings before an element is removed from the DOM. + */ + $destroy: function() { + // We can't destroy a scope that has been already destroyed. + if (this.$$destroyed) return; + var parent = this.$parent; + + this.$broadcast('$destroy'); + this.$$destroyed = true; + + if (this === $rootScope) { + //Remove handlers attached to window when $rootScope is removed + $browser.$$applicationDestroyed(); + } + + incrementWatchersCount(this, -this.$$watchersCount); + for (var eventName in this.$$listenerCount) { + decrementListenerCount(this, this.$$listenerCount[eventName], eventName); + } + + // sever all the references to parent scopes (after this cleanup, the current scope should + // not be retained by any of our references and should be eligible for garbage collection) + if (parent && parent.$$childHead == this) parent.$$childHead = this.$$nextSibling; + if (parent && parent.$$childTail == this) parent.$$childTail = this.$$prevSibling; + if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling; + if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling; + + // Disable listeners, watchers and apply/digest methods + this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = noop; + this.$on = this.$watch = this.$watchGroup = function() { return noop; }; + this.$$listeners = {}; + + // All of the code below is bogus code that works around V8's memory leak via optimized code + // and inline caches. + // + // see: + // - https://code.google.com/p/v8/issues/detail?id=2073#c26 + // - https://github.com/angular/angular.js/issues/6794#issuecomment-38648909 + // - https://github.com/angular/angular.js/issues/1313#issuecomment-10378451 + + this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead = + this.$$childTail = this.$root = this.$$watchers = null; + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$eval + * @kind function + * + * @description + * Executes the `expression` on the current scope and returns the result. Any exceptions in + * the expression are propagated (uncaught). This is useful when evaluating Angular + * expressions. + * + * # Example + * ```js + var scope = ng.$rootScope.Scope(); + scope.a = 1; + scope.b = 2; + + expect(scope.$eval('a+b')).toEqual(3); + expect(scope.$eval(function(scope){ return scope.a + scope.b; })).toEqual(3); + * ``` + * + * @param {(string|function())=} expression An angular expression to be executed. + * + * - `string`: execute using the rules as defined in {@link guide/expression expression}. + * - `function(scope)`: execute the function with the current `scope` parameter. + * + * @param {(object)=} locals Local variables object, useful for overriding values in scope. + * @returns {*} The result of evaluating the expression. + */ + $eval: function(expr, locals) { + return $parse(expr)(this, locals); + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$evalAsync + * @kind function + * + * @description + * Executes the expression on the current scope at a later point in time. + * + * The `$evalAsync` makes no guarantees as to when the `expression` will be executed, only + * that: + * + * - it will execute after the function that scheduled the evaluation (preferably before DOM + * rendering). + * - at least one {@link ng.$rootScope.Scope#$digest $digest cycle} will be performed after + * `expression` execution. + * + * Any exceptions from the execution of the expression are forwarded to the + * {@link ng.$exceptionHandler $exceptionHandler} service. + * + * __Note:__ if this function is called outside of a `$digest` cycle, a new `$digest` cycle + * will be scheduled. However, it is encouraged to always call code that changes the model + * from within an `$apply` call. That includes code evaluated via `$evalAsync`. + * + * @param {(string|function())=} expression An angular expression to be executed. + * + * - `string`: execute using the rules as defined in {@link guide/expression expression}. + * - `function(scope)`: execute the function with the current `scope` parameter. + * + * @param {(object)=} locals Local variables object, useful for overriding values in scope. + */ + $evalAsync: function(expr, locals) { + // if we are outside of an $digest loop and this is the first time we are scheduling async + // task also schedule async auto-flush + if (!$rootScope.$$phase && !asyncQueue.length) { + $browser.defer(function() { + if (asyncQueue.length) { + $rootScope.$digest(); + } + }); + } + + asyncQueue.push({scope: this, expression: expr, locals: locals}); + }, + + $$postDigest: function(fn) { + postDigestQueue.push(fn); + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$apply + * @kind function + * + * @description + * `$apply()` is used to execute an expression in angular from outside of the angular + * framework. (For example from browser DOM events, setTimeout, XHR or third party libraries). + * Because we are calling into the angular framework we need to perform proper scope life + * cycle of {@link ng.$exceptionHandler exception handling}, + * {@link ng.$rootScope.Scope#$digest executing watches}. + * + * ## Life cycle + * + * # Pseudo-Code of `$apply()` + * ```js + function $apply(expr) { + try { + return $eval(expr); + } catch (e) { + $exceptionHandler(e); + } finally { + $root.$digest(); + } + } + * ``` + * + * + * Scope's `$apply()` method transitions through the following stages: + * + * 1. The {@link guide/expression expression} is executed using the + * {@link ng.$rootScope.Scope#$eval $eval()} method. + * 2. Any exceptions from the execution of the expression are forwarded to the + * {@link ng.$exceptionHandler $exceptionHandler} service. + * 3. The {@link ng.$rootScope.Scope#$watch watch} listeners are fired immediately after the + * expression was executed using the {@link ng.$rootScope.Scope#$digest $digest()} method. + * + * + * @param {(string|function())=} exp An angular expression to be executed. + * + * - `string`: execute using the rules as defined in {@link guide/expression expression}. + * - `function(scope)`: execute the function with current `scope` parameter. + * + * @returns {*} The result of evaluating the expression. + */ + $apply: function(expr) { + try { + beginPhase('$apply'); + return this.$eval(expr); + } catch (e) { + $exceptionHandler(e); + } finally { + clearPhase(); + try { + $rootScope.$digest(); + } catch (e) { + $exceptionHandler(e); + throw e; + } + } + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$applyAsync + * @kind function + * + * @description + * Schedule the invocation of $apply to occur at a later time. The actual time difference + * varies across browsers, but is typically around ~10 milliseconds. + * + * This can be used to queue up multiple expressions which need to be evaluated in the same + * digest. + * + * @param {(string|function())=} exp An angular expression to be executed. + * + * - `string`: execute using the rules as defined in {@link guide/expression expression}. + * - `function(scope)`: execute the function with current `scope` parameter. + */ + $applyAsync: function(expr) { + var scope = this; + expr && applyAsyncQueue.push($applyAsyncExpression); + scheduleApplyAsync(); + + function $applyAsyncExpression() { + scope.$eval(expr); + } + }, + + /** + * @ngdoc method + * @name $rootScope.Scope#$on + * @kind function + * + * @description + * Listens on events of a given type. See {@link ng.$rootScope.Scope#$emit $emit} for + * discussion of event life cycle. + * + * The event listener function format is: `function(event, args...)`. The `event` object + * passed into the listener has the following attributes: + * + * - `targetScope` - `{Scope}`: the scope on which the event was `$emit`-ed or + * `$broadcast`-ed. + * - `currentScope` - `{Scope}`: the scope that is currently handling the event. Once the + * event propagates through the scope hierarchy, this property is set to null. + * - `name` - `{string}`: name of the event. + * - `stopPropagation` - `{function=}`: calling `stopPropagation` function will cancel + * further event propagation (available only for events that were `$emit`-ed). + * - `preventDefault` - `{function}`: calling `preventDefault` sets `defaultPrevented` flag + * to true. + * - `defaultPrevented` - `{boolean}`: true if `preventDefault` was called. + * + * @param {string} name Event name to listen on. + * @param {function(event, ...args)} listener Function to call when the event is emitted. + * @returns {function()} Returns a deregistration function for this listener. + */ + $on: function(name, listener) { + var namedListeners = this.$$listeners[name]; + if (!namedListeners) { + this.$$listeners[name] = namedListeners = []; + } + namedListeners.push(listener); + + var current = this; + do { + if (!current.$$listenerCount[name]) { + current.$$listenerCount[name] = 0; + } + current.$$listenerCount[name]++; + } while ((current = current.$parent)); + + var self = this; + return function() { + var indexOfListener = namedListeners.indexOf(listener); + if (indexOfListener !== -1) { + namedListeners[indexOfListener] = null; + decrementListenerCount(self, 1, name); + } + }; + }, + + + /** + * @ngdoc method + * @name $rootScope.Scope#$emit + * @kind function + * + * @description + * Dispatches an event `name` upwards through the scope hierarchy notifying the + * registered {@link ng.$rootScope.Scope#$on} listeners. + * + * The event life cycle starts at the scope on which `$emit` was called. All + * {@link ng.$rootScope.Scope#$on listeners} listening for `name` event on this scope get + * notified. Afterwards, the event traverses upwards toward the root scope and calls all + * registered listeners along the way. The event will stop propagating if one of the listeners + * cancels it. + * + * Any exception emitted from the {@link ng.$rootScope.Scope#$on listeners} will be passed + * onto the {@link ng.$exceptionHandler $exceptionHandler} service. + * + * @param {string} name Event name to emit. + * @param {...*} args Optional one or more arguments which will be passed onto the event listeners. + * @return {Object} Event object (see {@link ng.$rootScope.Scope#$on}). + */ + $emit: function(name, args) { + var empty = [], + namedListeners, + scope = this, + stopPropagation = false, + event = { + name: name, + targetScope: scope, + stopPropagation: function() {stopPropagation = true;}, + preventDefault: function() { + event.defaultPrevented = true; + }, + defaultPrevented: false + }, + listenerArgs = concat([event], arguments, 1), + i, length; + + do { + namedListeners = scope.$$listeners[name] || empty; + event.currentScope = scope; + for (i = 0, length = namedListeners.length; i < length; i++) { + + // if listeners were deregistered, defragment the array + if (!namedListeners[i]) { + namedListeners.splice(i, 1); + i--; + length--; + continue; + } + try { + //allow all listeners attached to the current scope to run + namedListeners[i].apply(null, listenerArgs); + } catch (e) { + $exceptionHandler(e); + } + } + //if any listener on the current scope stops propagation, prevent bubbling + if (stopPropagation) { + event.currentScope = null; + return event; + } + //traverse upwards + scope = scope.$parent; + } while (scope); + + event.currentScope = null; + + return event; + }, + + + /** + * @ngdoc method + * @name $rootScope.Scope#$broadcast + * @kind function + * + * @description + * Dispatches an event `name` downwards to all child scopes (and their children) notifying the + * registered {@link ng.$rootScope.Scope#$on} listeners. + * + * The event life cycle starts at the scope on which `$broadcast` was called. All + * {@link ng.$rootScope.Scope#$on listeners} listening for `name` event on this scope get + * notified. Afterwards, the event propagates to all direct and indirect scopes of the current + * scope and calls all registered listeners along the way. The event cannot be canceled. + * + * Any exception emitted from the {@link ng.$rootScope.Scope#$on listeners} will be passed + * onto the {@link ng.$exceptionHandler $exceptionHandler} service. + * + * @param {string} name Event name to broadcast. + * @param {...*} args Optional one or more arguments which will be passed onto the event listeners. + * @return {Object} Event object, see {@link ng.$rootScope.Scope#$on} + */ + $broadcast: function(name, args) { + var target = this, + current = target, + next = target, + event = { + name: name, + targetScope: target, + preventDefault: function() { + event.defaultPrevented = true; + }, + defaultPrevented: false + }; + + if (!target.$$listenerCount[name]) return event; + + var listenerArgs = concat([event], arguments, 1), + listeners, i, length; + + //down while you can, then up and next sibling or up and next sibling until back at root + while ((current = next)) { + event.currentScope = current; + listeners = current.$$listeners[name] || []; + for (i = 0, length = listeners.length; i < length; i++) { + // if listeners were deregistered, defragment the array + if (!listeners[i]) { + listeners.splice(i, 1); + i--; + length--; + continue; + } + + try { + listeners[i].apply(null, listenerArgs); + } catch (e) { + $exceptionHandler(e); + } + } + + // Insanity Warning: scope depth-first traversal + // yes, this code is a bit crazy, but it works and we have tests to prove it! + // this piece should be kept in sync with the traversal in $digest + // (though it differs due to having the extra check for $$listenerCount) + if (!(next = ((current.$$listenerCount[name] && current.$$childHead) || + (current !== target && current.$$nextSibling)))) { + while (current !== target && !(next = current.$$nextSibling)) { + current = current.$parent; + } + } + } + + event.currentScope = null; + return event; + } + }; + + var $rootScope = new Scope(); + + //The internal queues. Expose them on the $rootScope for debugging/testing purposes. + var asyncQueue = $rootScope.$$asyncQueue = []; + var postDigestQueue = $rootScope.$$postDigestQueue = []; + var applyAsyncQueue = $rootScope.$$applyAsyncQueue = []; + + return $rootScope; + + + function beginPhase(phase) { + if ($rootScope.$$phase) { + throw $rootScopeMinErr('inprog', '{0} already in progress', $rootScope.$$phase); + } + + $rootScope.$$phase = phase; + } + + function clearPhase() { + $rootScope.$$phase = null; + } + + function incrementWatchersCount(current, count) { + do { + current.$$watchersCount += count; + } while ((current = current.$parent)); + } + + function decrementListenerCount(current, count, name) { + do { + current.$$listenerCount[name] -= count; + + if (current.$$listenerCount[name] === 0) { + delete current.$$listenerCount[name]; + } + } while ((current = current.$parent)); + } + + /** + * function used as an initial value for watchers. + * because it's unique we can easily tell it apart from other values + */ + function initWatchVal() {} + + function flushApplyAsync() { + while (applyAsyncQueue.length) { + try { + applyAsyncQueue.shift()(); + } catch (e) { + $exceptionHandler(e); + } + } + applyAsyncId = null; + } + + function scheduleApplyAsync() { + if (applyAsyncId === null) { + applyAsyncId = $browser.defer(function() { + $rootScope.$apply(flushApplyAsync); + }); + } + } + }]; +} + +/** + * @description + * Private service to sanitize uris for links and images. Used by $compile and $sanitize. + */ +function $$SanitizeUriProvider() { + var aHrefSanitizationWhitelist = /^\s*(https?|ftp|mailto|tel|file):/, + imgSrcSanitizationWhitelist = /^\s*((https?|ftp|file|blob):|data:image\/)/; + + /** + * @description + * Retrieves or overrides the default regular expression that is used for whitelisting of safe + * urls during a[href] sanitization. + * + * The sanitization is a security measure aimed at prevent XSS attacks via html links. + * + * Any url about to be assigned to a[href] via data-binding is first normalized and turned into + * an absolute url. Afterwards, the url is matched against the `aHrefSanitizationWhitelist` + * regular expression. If a match is found, the original url is written into the dom. Otherwise, + * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM. + * + * @param {RegExp=} regexp New regexp to whitelist urls with. + * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for + * chaining otherwise. + */ + this.aHrefSanitizationWhitelist = function(regexp) { + if (isDefined(regexp)) { + aHrefSanitizationWhitelist = regexp; + return this; + } + return aHrefSanitizationWhitelist; + }; + + + /** + * @description + * Retrieves or overrides the default regular expression that is used for whitelisting of safe + * urls during img[src] sanitization. + * + * The sanitization is a security measure aimed at prevent XSS attacks via html links. + * + * Any url about to be assigned to img[src] via data-binding is first normalized and turned into + * an absolute url. Afterwards, the url is matched against the `imgSrcSanitizationWhitelist` + * regular expression. If a match is found, the original url is written into the dom. Otherwise, + * the absolute url is prefixed with `'unsafe:'` string and only then is it written into the DOM. + * + * @param {RegExp=} regexp New regexp to whitelist urls with. + * @returns {RegExp|ng.$compileProvider} Current RegExp if called without value or self for + * chaining otherwise. + */ + this.imgSrcSanitizationWhitelist = function(regexp) { + if (isDefined(regexp)) { + imgSrcSanitizationWhitelist = regexp; + return this; + } + return imgSrcSanitizationWhitelist; + }; + + this.$get = function() { + return function sanitizeUri(uri, isImage) { + var regex = isImage ? imgSrcSanitizationWhitelist : aHrefSanitizationWhitelist; + var normalizedVal; + normalizedVal = urlResolve(uri).href; + if (normalizedVal !== '' && !normalizedVal.match(regex)) { + return 'unsafe:' + normalizedVal; + } + return uri; + }; + }; +} + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +var $sceMinErr = minErr('$sce'); + +var SCE_CONTEXTS = { + HTML: 'html', + CSS: 'css', + URL: 'url', + // RESOURCE_URL is a subtype of URL used in contexts where a privileged resource is sourced from a + // url. (e.g. ng-include, script src, templateUrl) + RESOURCE_URL: 'resourceUrl', + JS: 'js' +}; + +// Helper functions follow. + +function adjustMatcher(matcher) { + if (matcher === 'self') { + return matcher; + } else if (isString(matcher)) { + // Strings match exactly except for 2 wildcards - '*' and '**'. + // '*' matches any character except those from the set ':/.?&'. + // '**' matches any character (like .* in a RegExp). + // More than 2 *'s raises an error as it's ill defined. + if (matcher.indexOf('***') > -1) { + throw $sceMinErr('iwcard', + 'Illegal sequence *** in string matcher. String: {0}', matcher); + } + matcher = escapeForRegexp(matcher). + replace('\\*\\*', '.*'). + replace('\\*', '[^:/.?&;]*'); + return new RegExp('^' + matcher + '$'); + } else if (isRegExp(matcher)) { + // The only other type of matcher allowed is a Regexp. + // Match entire URL / disallow partial matches. + // Flags are reset (i.e. no global, ignoreCase or multiline) + return new RegExp('^' + matcher.source + '$'); + } else { + throw $sceMinErr('imatcher', + 'Matchers may only be "self", string patterns or RegExp objects'); + } +} + + +function adjustMatchers(matchers) { + var adjustedMatchers = []; + if (isDefined(matchers)) { + forEach(matchers, function(matcher) { + adjustedMatchers.push(adjustMatcher(matcher)); + }); + } + return adjustedMatchers; +} + + +/** + * @ngdoc service + * @name $sceDelegate + * @kind function + * + * @description + * + * `$sceDelegate` is a service that is used by the `$sce` service to provide {@link ng.$sce Strict + * Contextual Escaping (SCE)} services to AngularJS. + * + * Typically, you would configure or override the {@link ng.$sceDelegate $sceDelegate} instead of + * the `$sce` service to customize the way Strict Contextual Escaping works in AngularJS. This is + * because, while the `$sce` provides numerous shorthand methods, etc., you really only need to + * override 3 core functions (`trustAs`, `getTrusted` and `valueOf`) to replace the way things + * work because `$sce` delegates to `$sceDelegate` for these operations. + * + * Refer {@link ng.$sceDelegateProvider $sceDelegateProvider} to configure this service. + * + * The default instance of `$sceDelegate` should work out of the box with little pain. While you + * can override it completely to change the behavior of `$sce`, the common case would + * involve configuring the {@link ng.$sceDelegateProvider $sceDelegateProvider} instead by setting + * your own whitelists and blacklists for trusting URLs used for loading AngularJS resources such as + * templates. Refer {@link ng.$sceDelegateProvider#resourceUrlWhitelist + * $sceDelegateProvider.resourceUrlWhitelist} and {@link + * ng.$sceDelegateProvider#resourceUrlBlacklist $sceDelegateProvider.resourceUrlBlacklist} + */ + +/** + * @ngdoc provider + * @name $sceDelegateProvider + * @description + * + * The `$sceDelegateProvider` provider allows developers to configure the {@link ng.$sceDelegate + * $sceDelegate} service. This allows one to get/set the whitelists and blacklists used to ensure + * that the URLs used for sourcing Angular templates are safe. Refer {@link + * ng.$sceDelegateProvider#resourceUrlWhitelist $sceDelegateProvider.resourceUrlWhitelist} and + * {@link ng.$sceDelegateProvider#resourceUrlBlacklist $sceDelegateProvider.resourceUrlBlacklist} + * + * For the general details about this service in Angular, read the main page for {@link ng.$sce + * Strict Contextual Escaping (SCE)}. + * + * **Example**: Consider the following case. + * + * - your app is hosted at url `http://myapp.example.com/` + * - but some of your templates are hosted on other domains you control such as + * `http://srv01.assets.example.com/`,  `http://srv02.assets.example.com/`, etc. + * - and you have an open redirect at `http://myapp.example.com/clickThru?...`. + * + * Here is what a secure configuration for this scenario might look like: + * + * ``` + * angular.module('myApp', []).config(function($sceDelegateProvider) { + * $sceDelegateProvider.resourceUrlWhitelist([ + * // Allow same origin resource loads. + * 'self', + * // Allow loading from our assets domain. Notice the difference between * and **. + * 'http://srv*.assets.example.com/**' + * ]); + * + * // The blacklist overrides the whitelist so the open redirect here is blocked. + * $sceDelegateProvider.resourceUrlBlacklist([ + * 'http://myapp.example.com/clickThru**' + * ]); + * }); + * ``` + */ + +function $SceDelegateProvider() { + this.SCE_CONTEXTS = SCE_CONTEXTS; + + // Resource URLs can also be trusted by policy. + var resourceUrlWhitelist = ['self'], + resourceUrlBlacklist = []; + + /** + * @ngdoc method + * @name $sceDelegateProvider#resourceUrlWhitelist + * @kind function + * + * @param {Array=} whitelist When provided, replaces the resourceUrlWhitelist with the value + * provided. This must be an array or null. A snapshot of this array is used so further + * changes to the array are ignored. + * + * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items + * allowed in this array. + * + * Note: **an empty whitelist array will block all URLs**! + * + * @return {Array} the currently set whitelist array. + * + * The **default value** when no whitelist has been explicitly set is `['self']` allowing only + * same origin resource requests. + * + * @description + * Sets/Gets the whitelist of trusted resource URLs. + */ + this.resourceUrlWhitelist = function(value) { + if (arguments.length) { + resourceUrlWhitelist = adjustMatchers(value); + } + return resourceUrlWhitelist; + }; + + /** + * @ngdoc method + * @name $sceDelegateProvider#resourceUrlBlacklist + * @kind function + * + * @param {Array=} blacklist When provided, replaces the resourceUrlBlacklist with the value + * provided. This must be an array or null. A snapshot of this array is used so further + * changes to the array are ignored. + * + * Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items + * allowed in this array. + * + * The typical usage for the blacklist is to **block + * [open redirects](http://cwe.mitre.org/data/definitions/601.html)** served by your domain as + * these would otherwise be trusted but actually return content from the redirected domain. + * + * Finally, **the blacklist overrides the whitelist** and has the final say. + * + * @return {Array} the currently set blacklist array. + * + * The **default value** when no whitelist has been explicitly set is the empty array (i.e. there + * is no blacklist.) + * + * @description + * Sets/Gets the blacklist of trusted resource URLs. + */ + + this.resourceUrlBlacklist = function(value) { + if (arguments.length) { + resourceUrlBlacklist = adjustMatchers(value); + } + return resourceUrlBlacklist; + }; + + this.$get = ['$injector', function($injector) { + + var htmlSanitizer = function htmlSanitizer(html) { + throw $sceMinErr('unsafe', 'Attempting to use an unsafe value in a safe context.'); + }; + + if ($injector.has('$sanitize')) { + htmlSanitizer = $injector.get('$sanitize'); + } + + + function matchUrl(matcher, parsedUrl) { + if (matcher === 'self') { + return urlIsSameOrigin(parsedUrl); + } else { + // definitely a regex. See adjustMatchers() + return !!matcher.exec(parsedUrl.href); + } + } + + function isResourceUrlAllowedByPolicy(url) { + var parsedUrl = urlResolve(url.toString()); + var i, n, allowed = false; + // Ensure that at least one item from the whitelist allows this url. + for (i = 0, n = resourceUrlWhitelist.length; i < n; i++) { + if (matchUrl(resourceUrlWhitelist[i], parsedUrl)) { + allowed = true; + break; + } + } + if (allowed) { + // Ensure that no item from the blacklist blocked this url. + for (i = 0, n = resourceUrlBlacklist.length; i < n; i++) { + if (matchUrl(resourceUrlBlacklist[i], parsedUrl)) { + allowed = false; + break; + } + } + } + return allowed; + } + + function generateHolderType(Base) { + var holderType = function TrustedValueHolderType(trustedValue) { + this.$$unwrapTrustedValue = function() { + return trustedValue; + }; + }; + if (Base) { + holderType.prototype = new Base(); + } + holderType.prototype.valueOf = function sceValueOf() { + return this.$$unwrapTrustedValue(); + }; + holderType.prototype.toString = function sceToString() { + return this.$$unwrapTrustedValue().toString(); + }; + return holderType; + } + + var trustedValueHolderBase = generateHolderType(), + byType = {}; + + byType[SCE_CONTEXTS.HTML] = generateHolderType(trustedValueHolderBase); + byType[SCE_CONTEXTS.CSS] = generateHolderType(trustedValueHolderBase); + byType[SCE_CONTEXTS.URL] = generateHolderType(trustedValueHolderBase); + byType[SCE_CONTEXTS.JS] = generateHolderType(trustedValueHolderBase); + byType[SCE_CONTEXTS.RESOURCE_URL] = generateHolderType(byType[SCE_CONTEXTS.URL]); + + /** + * @ngdoc method + * @name $sceDelegate#trustAs + * + * @description + * Returns an object that is trusted by angular for use in specified strict + * contextual escaping contexts (such as ng-bind-html, ng-include, any src + * attribute interpolation, any dom event binding attribute interpolation + * such as for onclick, etc.) that uses the provided value. + * See {@link ng.$sce $sce} for enabling strict contextual escaping. + * + * @param {string} type The kind of context in which this value is safe for use. e.g. url, + * resourceUrl, html, js and css. + * @param {*} value The value that that should be considered trusted/safe. + * @returns {*} A value that can be used to stand in for the provided `value` in places + * where Angular expects a $sce.trustAs() return value. + */ + function trustAs(type, trustedValue) { + var Constructor = (byType.hasOwnProperty(type) ? byType[type] : null); + if (!Constructor) { + throw $sceMinErr('icontext', + 'Attempted to trust a value in invalid context. Context: {0}; Value: {1}', + type, trustedValue); + } + if (trustedValue === null || trustedValue === undefined || trustedValue === '') { + return trustedValue; + } + // All the current contexts in SCE_CONTEXTS happen to be strings. In order to avoid trusting + // mutable objects, we ensure here that the value passed in is actually a string. + if (typeof trustedValue !== 'string') { + throw $sceMinErr('itype', + 'Attempted to trust a non-string value in a content requiring a string: Context: {0}', + type); + } + return new Constructor(trustedValue); + } + + /** + * @ngdoc method + * @name $sceDelegate#valueOf + * + * @description + * If the passed parameter had been returned by a prior call to {@link ng.$sceDelegate#trustAs + * `$sceDelegate.trustAs`}, returns the value that had been passed to {@link + * ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}. + * + * If the passed parameter is not a value that had been returned by {@link + * ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}, returns it as-is. + * + * @param {*} value The result of a prior {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs`} + * call or anything else. + * @returns {*} The `value` that was originally provided to {@link ng.$sceDelegate#trustAs + * `$sceDelegate.trustAs`} if `value` is the result of such a call. Otherwise, returns + * `value` unchanged. + */ + function valueOf(maybeTrusted) { + if (maybeTrusted instanceof trustedValueHolderBase) { + return maybeTrusted.$$unwrapTrustedValue(); + } else { + return maybeTrusted; + } + } + + /** + * @ngdoc method + * @name $sceDelegate#getTrusted + * + * @description + * Takes the result of a {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs`} call and + * returns the originally supplied value if the queried context type is a supertype of the + * created type. If this condition isn't satisfied, throws an exception. + * + * @param {string} type The kind of context in which this value is to be used. + * @param {*} maybeTrusted The result of a prior {@link ng.$sceDelegate#trustAs + * `$sceDelegate.trustAs`} call. + * @returns {*} The value the was originally provided to {@link ng.$sceDelegate#trustAs + * `$sceDelegate.trustAs`} if valid in this context. Otherwise, throws an exception. + */ + function getTrusted(type, maybeTrusted) { + if (maybeTrusted === null || maybeTrusted === undefined || maybeTrusted === '') { + return maybeTrusted; + } + var constructor = (byType.hasOwnProperty(type) ? byType[type] : null); + if (constructor && maybeTrusted instanceof constructor) { + return maybeTrusted.$$unwrapTrustedValue(); + } + // If we get here, then we may only take one of two actions. + // 1. sanitize the value for the requested type, or + // 2. throw an exception. + if (type === SCE_CONTEXTS.RESOURCE_URL) { + if (isResourceUrlAllowedByPolicy(maybeTrusted)) { + return maybeTrusted; + } else { + throw $sceMinErr('insecurl', + 'Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}', + maybeTrusted.toString()); + } + } else if (type === SCE_CONTEXTS.HTML) { + return htmlSanitizer(maybeTrusted); + } + throw $sceMinErr('unsafe', 'Attempting to use an unsafe value in a safe context.'); + } + + return { trustAs: trustAs, + getTrusted: getTrusted, + valueOf: valueOf }; + }]; +} + + +/** + * @ngdoc provider + * @name $sceProvider + * @description + * + * The $sceProvider provider allows developers to configure the {@link ng.$sce $sce} service. + * - enable/disable Strict Contextual Escaping (SCE) in a module + * - override the default implementation with a custom delegate + * + * Read more about {@link ng.$sce Strict Contextual Escaping (SCE)}. + */ + +/* jshint maxlen: false*/ + +/** + * @ngdoc service + * @name $sce + * @kind function + * + * @description + * + * `$sce` is a service that provides Strict Contextual Escaping services to AngularJS. + * + * # Strict Contextual Escaping + * + * Strict Contextual Escaping (SCE) is a mode in which AngularJS requires bindings in certain + * contexts to result in a value that is marked as safe to use for that context. One example of + * such a context is binding arbitrary html controlled by the user via `ng-bind-html`. We refer + * to these contexts as privileged or SCE contexts. + * + * As of version 1.2, Angular ships with SCE enabled by default. + * + * Note: When enabled (the default), IE<11 in quirks mode is not supported. In this mode, IE<11 allow + * one to execute arbitrary javascript by the use of the expression() syntax. Refer + * to learn more about them. + * You can ensure your document is in standards mode and not quirks mode by adding `` + * to the top of your HTML document. + * + * SCE assists in writing code in way that (a) is secure by default and (b) makes auditing for + * security vulnerabilities such as XSS, clickjacking, etc. a lot easier. + * + * Here's an example of a binding in a privileged context: + * + * ``` + * + *
    + * ``` + * + * Notice that `ng-bind-html` is bound to `userHtml` controlled by the user. With SCE + * disabled, this application allows the user to render arbitrary HTML into the DIV. + * In a more realistic example, one may be rendering user comments, blog articles, etc. via + * bindings. (HTML is just one example of a context where rendering user controlled input creates + * security vulnerabilities.) + * + * For the case of HTML, you might use a library, either on the client side, or on the server side, + * to sanitize unsafe HTML before binding to the value and rendering it in the document. + * + * How would you ensure that every place that used these types of bindings was bound to a value that + * was sanitized by your library (or returned as safe for rendering by your server?) How can you + * ensure that you didn't accidentally delete the line that sanitized the value, or renamed some + * properties/fields and forgot to update the binding to the sanitized value? + * + * To be secure by default, you want to ensure that any such bindings are disallowed unless you can + * determine that something explicitly says it's safe to use a value for binding in that + * context. You can then audit your code (a simple grep would do) to ensure that this is only done + * for those values that you can easily tell are safe - because they were received from your server, + * sanitized by your library, etc. You can organize your codebase to help with this - perhaps + * allowing only the files in a specific directory to do this. Ensuring that the internal API + * exposed by that code doesn't markup arbitrary values as safe then becomes a more manageable task. + * + * In the case of AngularJS' SCE service, one uses {@link ng.$sce#trustAs $sce.trustAs} + * (and shorthand methods such as {@link ng.$sce#trustAsHtml $sce.trustAsHtml}, etc.) to + * obtain values that will be accepted by SCE / privileged contexts. + * + * + * ## How does it work? + * + * In privileged contexts, directives and code will bind to the result of {@link ng.$sce#getTrusted + * $sce.getTrusted(context, value)} rather than to the value directly. Directives use {@link + * ng.$sce#parseAs $sce.parseAs} rather than `$parse` to watch attribute bindings, which performs the + * {@link ng.$sce#getTrusted $sce.getTrusted} behind the scenes on non-constant literals. + * + * As an example, {@link ng.directive:ngBindHtml ngBindHtml} uses {@link + * ng.$sce#parseAsHtml $sce.parseAsHtml(binding expression)}. Here's the actual code (slightly + * simplified): + * + * ``` + * var ngBindHtmlDirective = ['$sce', function($sce) { + * return function(scope, element, attr) { + * scope.$watch($sce.parseAsHtml(attr.ngBindHtml), function(value) { + * element.html(value || ''); + * }); + * }; + * }]; + * ``` + * + * ## Impact on loading templates + * + * This applies both to the {@link ng.directive:ngInclude `ng-include`} directive as well as + * `templateUrl`'s specified by {@link guide/directive directives}. + * + * By default, Angular only loads templates from the same domain and protocol as the application + * document. This is done by calling {@link ng.$sce#getTrustedResourceUrl + * $sce.getTrustedResourceUrl} on the template URL. To load templates from other domains and/or + * protocols, you may either either {@link ng.$sceDelegateProvider#resourceUrlWhitelist whitelist + * them} or {@link ng.$sce#trustAsResourceUrl wrap it} into a trusted value. + * + * *Please note*: + * The browser's + * [Same Origin Policy](https://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_XMLHttpRequest) + * and [Cross-Origin Resource Sharing (CORS)](http://www.w3.org/TR/cors/) + * policy apply in addition to this and may further restrict whether the template is successfully + * loaded. This means that without the right CORS policy, loading templates from a different domain + * won't work on all browsers. Also, loading templates from `file://` URL does not work on some + * browsers. + * + * ## This feels like too much overhead + * + * It's important to remember that SCE only applies to interpolation expressions. + * + * If your expressions are constant literals, they're automatically trusted and you don't need to + * call `$sce.trustAs` on them (remember to include the `ngSanitize` module) (e.g. + * `
    `) just works. + * + * Additionally, `a[href]` and `img[src]` automatically sanitize their URLs and do not pass them + * through {@link ng.$sce#getTrusted $sce.getTrusted}. SCE doesn't play a role here. + * + * The included {@link ng.$sceDelegate $sceDelegate} comes with sane defaults to allow you to load + * templates in `ng-include` from your application's domain without having to even know about SCE. + * It blocks loading templates from other domains or loading templates over http from an https + * served document. You can change these by setting your own custom {@link + * ng.$sceDelegateProvider#resourceUrlWhitelist whitelists} and {@link + * ng.$sceDelegateProvider#resourceUrlBlacklist blacklists} for matching such URLs. + * + * This significantly reduces the overhead. It is far easier to pay the small overhead and have an + * application that's secure and can be audited to verify that with much more ease than bolting + * security onto an application later. + * + * + * ## What trusted context types are supported? + * + * | Context | Notes | + * |---------------------|----------------| + * | `$sce.HTML` | For HTML that's safe to source into the application. The {@link ng.directive:ngBindHtml ngBindHtml} directive uses this context for bindings. If an unsafe value is encountered and the {@link ngSanitize $sanitize} module is present this will sanitize the value instead of throwing an error. | + * | `$sce.CSS` | For CSS that's safe to source into the application. Currently unused. Feel free to use it in your own directives. | + * | `$sce.URL` | For URLs that are safe to follow as links. Currently unused (`
    Note that `$sce.RESOURCE_URL` makes a stronger statement about the URL than `$sce.URL` does and therefore contexts requiring values trusted for `$sce.RESOURCE_URL` can be used anywhere that values trusted for `$sce.URL` are required. | + * | `$sce.JS` | For JavaScript that is safe to execute in your application's context. Currently unused. Feel free to use it in your own directives. | + * + * ## Format of items in {@link ng.$sceDelegateProvider#resourceUrlWhitelist resourceUrlWhitelist}/{@link ng.$sceDelegateProvider#resourceUrlBlacklist Blacklist}
    + * + * Each element in these arrays must be one of the following: + * + * - **'self'** + * - The special **string**, `'self'`, can be used to match against all URLs of the **same + * domain** as the application document using the **same protocol**. + * - **String** (except the special value `'self'`) + * - The string is matched against the full *normalized / absolute URL* of the resource + * being tested (substring matches are not good enough.) + * - There are exactly **two wildcard sequences** - `*` and `**`. All other characters + * match themselves. + * - `*`: matches zero or more occurrences of any character other than one of the following 6 + * characters: '`:`', '`/`', '`.`', '`?`', '`&`' and ';'. It's a useful wildcard for use + * in a whitelist. + * - `**`: matches zero or more occurrences of *any* character. As such, it's not + * not appropriate to use in for a scheme, domain, etc. as it would match too much. (e.g. + * http://**.example.com/ would match http://evil.com/?ignore=.example.com/ and that might + * not have been the intention.) Its usage at the very end of the path is ok. (e.g. + * http://foo.example.com/templates/**). + * - **RegExp** (*see caveat below*) + * - *Caveat*: While regular expressions are powerful and offer great flexibility, their syntax + * (and all the inevitable escaping) makes them *harder to maintain*. It's easy to + * accidentally introduce a bug when one updates a complex expression (imho, all regexes should + * have good test coverage.). For instance, the use of `.` in the regex is correct only in a + * small number of cases. A `.` character in the regex used when matching the scheme or a + * subdomain could be matched against a `:` or literal `.` that was likely not intended. It + * is highly recommended to use the string patterns and only fall back to regular expressions + * if they as a last resort. + * - The regular expression must be an instance of RegExp (i.e. not a string.) It is + * matched against the **entire** *normalized / absolute URL* of the resource being tested + * (even when the RegExp did not have the `^` and `$` codes.) In addition, any flags + * present on the RegExp (such as multiline, global, ignoreCase) are ignored. + * - If you are generating your JavaScript from some other templating engine (not + * recommended, e.g. in issue [#4006](https://github.com/angular/angular.js/issues/4006)), + * remember to escape your regular expression (and be aware that you might need more than + * one level of escaping depending on your templating engine and the way you interpolated + * the value.) Do make use of your platform's escaping mechanism as it might be good + * enough before coding your own. e.g. Ruby has + * [Regexp.escape(str)](http://www.ruby-doc.org/core-2.0.0/Regexp.html#method-c-escape) + * and Python has [re.escape](http://docs.python.org/library/re.html#re.escape). + * Javascript lacks a similar built in function for escaping. Take a look at Google + * Closure library's [goog.string.regExpEscape(s)]( + * http://docs.closure-library.googlecode.com/git/closure_goog_string_string.js.source.html#line962). + * + * Refer {@link ng.$sceDelegateProvider $sceDelegateProvider} for an example. + * + * ## Show me an example using SCE. + * + * + * + *
    + *

    + * User comments
    + * By default, HTML that isn't explicitly trusted (e.g. Alice's comment) is sanitized when + * $sanitize is available. If $sanitize isn't available, this results in an error instead of an + * exploit. + *
    + *
    + * {{userComment.name}}: + * + *
    + *
    + *
    + *
    + *
    + * + * + * angular.module('mySceApp', ['ngSanitize']) + * .controller('AppController', ['$http', '$templateCache', '$sce', + * function($http, $templateCache, $sce) { + * var self = this; + * $http.get("test_data.json", {cache: $templateCache}).success(function(userComments) { + * self.userComments = userComments; + * }); + * self.explicitlyTrustedHtml = $sce.trustAsHtml( + * 'Hover over this text.'); + * }]); + * + * + * + * [ + * { "name": "Alice", + * "htmlComment": + * "Is anyone reading this?" + * }, + * { "name": "Bob", + * "htmlComment": "Yes! Am I the only other one?" + * } + * ] + * + * + * + * describe('SCE doc demo', function() { + * it('should sanitize untrusted values', function() { + * expect(element.all(by.css('.htmlComment')).first().getInnerHtml()) + * .toBe('Is anyone reading this?'); + * }); + * + * it('should NOT sanitize explicitly trusted values', function() { + * expect(element(by.id('explicitlyTrustedHtml')).getInnerHtml()).toBe( + * 'Hover over this text.'); + * }); + * }); + * + *
    + * + * + * + * ## Can I disable SCE completely? + * + * Yes, you can. However, this is strongly discouraged. SCE gives you a lot of security benefits + * for little coding overhead. It will be much harder to take an SCE disabled application and + * either secure it on your own or enable SCE at a later stage. It might make sense to disable SCE + * for cases where you have a lot of existing code that was written before SCE was introduced and + * you're migrating them a module at a time. + * + * That said, here's how you can completely disable SCE: + * + * ``` + * angular.module('myAppWithSceDisabledmyApp', []).config(function($sceProvider) { + * // Completely disable SCE. For demonstration purposes only! + * // Do not use in new projects. + * $sceProvider.enabled(false); + * }); + * ``` + * + */ +/* jshint maxlen: 100 */ + +function $SceProvider() { + var enabled = true; + + /** + * @ngdoc method + * @name $sceProvider#enabled + * @kind function + * + * @param {boolean=} value If provided, then enables/disables SCE. + * @return {boolean} true if SCE is enabled, false otherwise. + * + * @description + * Enables/disables SCE and returns the current value. + */ + this.enabled = function(value) { + if (arguments.length) { + enabled = !!value; + } + return enabled; + }; + + + /* Design notes on the default implementation for SCE. + * + * The API contract for the SCE delegate + * ------------------------------------- + * The SCE delegate object must provide the following 3 methods: + * + * - trustAs(contextEnum, value) + * This method is used to tell the SCE service that the provided value is OK to use in the + * contexts specified by contextEnum. It must return an object that will be accepted by + * getTrusted() for a compatible contextEnum and return this value. + * + * - valueOf(value) + * For values that were not produced by trustAs(), return them as is. For values that were + * produced by trustAs(), return the corresponding input value to trustAs. Basically, if + * trustAs is wrapping the given values into some type, this operation unwraps it when given + * such a value. + * + * - getTrusted(contextEnum, value) + * This function should return the a value that is safe to use in the context specified by + * contextEnum or throw and exception otherwise. + * + * NOTE: This contract deliberately does NOT state that values returned by trustAs() must be + * opaque or wrapped in some holder object. That happens to be an implementation detail. For + * instance, an implementation could maintain a registry of all trusted objects by context. In + * such a case, trustAs() would return the same object that was passed in. getTrusted() would + * return the same object passed in if it was found in the registry under a compatible context or + * throw an exception otherwise. An implementation might only wrap values some of the time based + * on some criteria. getTrusted() might return a value and not throw an exception for special + * constants or objects even if not wrapped. All such implementations fulfill this contract. + * + * + * A note on the inheritance model for SCE contexts + * ------------------------------------------------ + * I've used inheritance and made RESOURCE_URL wrapped types a subtype of URL wrapped types. This + * is purely an implementation details. + * + * The contract is simply this: + * + * getTrusted($sce.RESOURCE_URL, value) succeeding implies that getTrusted($sce.URL, value) + * will also succeed. + * + * Inheritance happens to capture this in a natural way. In some future, we + * may not use inheritance anymore. That is OK because no code outside of + * sce.js and sceSpecs.js would need to be aware of this detail. + */ + + this.$get = ['$parse', '$sceDelegate', function( + $parse, $sceDelegate) { + // Prereq: Ensure that we're not running in IE<11 quirks mode. In that mode, IE < 11 allow + // the "expression(javascript expression)" syntax which is insecure. + if (enabled && msie < 8) { + throw $sceMinErr('iequirks', + 'Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks ' + + 'mode. You can fix this by adding the text to the top of your HTML ' + + 'document. See http://docs.angularjs.org/api/ng.$sce for more information.'); + } + + var sce = shallowCopy(SCE_CONTEXTS); + + /** + * @ngdoc method + * @name $sce#isEnabled + * @kind function + * + * @return {Boolean} true if SCE is enabled, false otherwise. If you want to set the value, you + * have to do it at module config time on {@link ng.$sceProvider $sceProvider}. + * + * @description + * Returns a boolean indicating if SCE is enabled. + */ + sce.isEnabled = function() { + return enabled; + }; + sce.trustAs = $sceDelegate.trustAs; + sce.getTrusted = $sceDelegate.getTrusted; + sce.valueOf = $sceDelegate.valueOf; + + if (!enabled) { + sce.trustAs = sce.getTrusted = function(type, value) { return value; }; + sce.valueOf = identity; + } + + /** + * @ngdoc method + * @name $sce#parseAs + * + * @description + * Converts Angular {@link guide/expression expression} into a function. This is like {@link + * ng.$parse $parse} and is identical when the expression is a literal constant. Otherwise, it + * wraps the expression in a call to {@link ng.$sce#getTrusted $sce.getTrusted(*type*, + * *result*)} + * + * @param {string} type The kind of SCE context in which this result will be used. + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + */ + sce.parseAs = function sceParseAs(type, expr) { + var parsed = $parse(expr); + if (parsed.literal && parsed.constant) { + return parsed; + } else { + return $parse(expr, function(value) { + return sce.getTrusted(type, value); + }); + } + }; + + /** + * @ngdoc method + * @name $sce#trustAs + * + * @description + * Delegates to {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}. As such, + * returns an object that is trusted by angular for use in specified strict contextual + * escaping contexts (such as ng-bind-html, ng-include, any src attribute + * interpolation, any dom event binding attribute interpolation such as for onclick, etc.) + * that uses the provided value. See * {@link ng.$sce $sce} for enabling strict contextual + * escaping. + * + * @param {string} type The kind of context in which this value is safe for use. e.g. url, + * resourceUrl, html, js and css. + * @param {*} value The value that that should be considered trusted/safe. + * @returns {*} A value that can be used to stand in for the provided `value` in places + * where Angular expects a $sce.trustAs() return value. + */ + + /** + * @ngdoc method + * @name $sce#trustAsHtml + * + * @description + * Shorthand method. `$sce.trustAsHtml(value)` → + * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.HTML, value)`} + * + * @param {*} value The value to trustAs. + * @returns {*} An object that can be passed to {@link ng.$sce#getTrustedHtml + * $sce.getTrustedHtml(value)} to obtain the original value. (privileged directives + * only accept expressions that are either literal constants or are the + * return value of {@link ng.$sce#trustAs $sce.trustAs}.) + */ + + /** + * @ngdoc method + * @name $sce#trustAsUrl + * + * @description + * Shorthand method. `$sce.trustAsUrl(value)` → + * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.URL, value)`} + * + * @param {*} value The value to trustAs. + * @returns {*} An object that can be passed to {@link ng.$sce#getTrustedUrl + * $sce.getTrustedUrl(value)} to obtain the original value. (privileged directives + * only accept expressions that are either literal constants or are the + * return value of {@link ng.$sce#trustAs $sce.trustAs}.) + */ + + /** + * @ngdoc method + * @name $sce#trustAsResourceUrl + * + * @description + * Shorthand method. `$sce.trustAsResourceUrl(value)` → + * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.RESOURCE_URL, value)`} + * + * @param {*} value The value to trustAs. + * @returns {*} An object that can be passed to {@link ng.$sce#getTrustedResourceUrl + * $sce.getTrustedResourceUrl(value)} to obtain the original value. (privileged directives + * only accept expressions that are either literal constants or are the return + * value of {@link ng.$sce#trustAs $sce.trustAs}.) + */ + + /** + * @ngdoc method + * @name $sce#trustAsJs + * + * @description + * Shorthand method. `$sce.trustAsJs(value)` → + * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.JS, value)`} + * + * @param {*} value The value to trustAs. + * @returns {*} An object that can be passed to {@link ng.$sce#getTrustedJs + * $sce.getTrustedJs(value)} to obtain the original value. (privileged directives + * only accept expressions that are either literal constants or are the + * return value of {@link ng.$sce#trustAs $sce.trustAs}.) + */ + + /** + * @ngdoc method + * @name $sce#getTrusted + * + * @description + * Delegates to {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted`}. As such, + * takes the result of a {@link ng.$sce#trustAs `$sce.trustAs`}() call and returns the + * originally supplied value if the queried context type is a supertype of the created type. + * If this condition isn't satisfied, throws an exception. + * + * @param {string} type The kind of context in which this value is to be used. + * @param {*} maybeTrusted The result of a prior {@link ng.$sce#trustAs `$sce.trustAs`} + * call. + * @returns {*} The value the was originally provided to + * {@link ng.$sce#trustAs `$sce.trustAs`} if valid in this context. + * Otherwise, throws an exception. + */ + + /** + * @ngdoc method + * @name $sce#getTrustedHtml + * + * @description + * Shorthand method. `$sce.getTrustedHtml(value)` → + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.HTML, value)`} + * + * @param {*} value The value to pass to `$sce.getTrusted`. + * @returns {*} The return value of `$sce.getTrusted($sce.HTML, value)` + */ + + /** + * @ngdoc method + * @name $sce#getTrustedCss + * + * @description + * Shorthand method. `$sce.getTrustedCss(value)` → + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.CSS, value)`} + * + * @param {*} value The value to pass to `$sce.getTrusted`. + * @returns {*} The return value of `$sce.getTrusted($sce.CSS, value)` + */ + + /** + * @ngdoc method + * @name $sce#getTrustedUrl + * + * @description + * Shorthand method. `$sce.getTrustedUrl(value)` → + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.URL, value)`} + * + * @param {*} value The value to pass to `$sce.getTrusted`. + * @returns {*} The return value of `$sce.getTrusted($sce.URL, value)` + */ + + /** + * @ngdoc method + * @name $sce#getTrustedResourceUrl + * + * @description + * Shorthand method. `$sce.getTrustedResourceUrl(value)` → + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.RESOURCE_URL, value)`} + * + * @param {*} value The value to pass to `$sceDelegate.getTrusted`. + * @returns {*} The return value of `$sce.getTrusted($sce.RESOURCE_URL, value)` + */ + + /** + * @ngdoc method + * @name $sce#getTrustedJs + * + * @description + * Shorthand method. `$sce.getTrustedJs(value)` → + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.JS, value)`} + * + * @param {*} value The value to pass to `$sce.getTrusted`. + * @returns {*} The return value of `$sce.getTrusted($sce.JS, value)` + */ + + /** + * @ngdoc method + * @name $sce#parseAsHtml + * + * @description + * Shorthand method. `$sce.parseAsHtml(expression string)` → + * {@link ng.$sce#parseAs `$sce.parseAs($sce.HTML, value)`} + * + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + */ + + /** + * @ngdoc method + * @name $sce#parseAsCss + * + * @description + * Shorthand method. `$sce.parseAsCss(value)` → + * {@link ng.$sce#parseAs `$sce.parseAs($sce.CSS, value)`} + * + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + */ + + /** + * @ngdoc method + * @name $sce#parseAsUrl + * + * @description + * Shorthand method. `$sce.parseAsUrl(value)` → + * {@link ng.$sce#parseAs `$sce.parseAs($sce.URL, value)`} + * + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + */ + + /** + * @ngdoc method + * @name $sce#parseAsResourceUrl + * + * @description + * Shorthand method. `$sce.parseAsResourceUrl(value)` → + * {@link ng.$sce#parseAs `$sce.parseAs($sce.RESOURCE_URL, value)`} + * + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + */ + + /** + * @ngdoc method + * @name $sce#parseAsJs + * + * @description + * Shorthand method. `$sce.parseAsJs(value)` → + * {@link ng.$sce#parseAs `$sce.parseAs($sce.JS, value)`} + * + * @param {string} expression String expression to compile. + * @returns {function(context, locals)} a function which represents the compiled expression: + * + * * `context` – `{object}` – an object against which any expressions embedded in the strings + * are evaluated against (typically a scope object). + * * `locals` – `{object=}` – local variables context object, useful for overriding values in + * `context`. + */ + + // Shorthand delegations. + var parse = sce.parseAs, + getTrusted = sce.getTrusted, + trustAs = sce.trustAs; + + forEach(SCE_CONTEXTS, function(enumValue, name) { + var lName = lowercase(name); + sce[camelCase("parse_as_" + lName)] = function(expr) { + return parse(enumValue, expr); + }; + sce[camelCase("get_trusted_" + lName)] = function(value) { + return getTrusted(enumValue, value); + }; + sce[camelCase("trust_as_" + lName)] = function(value) { + return trustAs(enumValue, value); + }; + }); + + return sce; + }]; +} + +/** + * !!! This is an undocumented "private" service !!! + * + * @name $sniffer + * @requires $window + * @requires $document + * + * @property {boolean} history Does the browser support html5 history api ? + * @property {boolean} transitions Does the browser support CSS transition events ? + * @property {boolean} animations Does the browser support CSS animation events ? + * + * @description + * This is very simple implementation of testing browser's features. + */ +function $SnifferProvider() { + this.$get = ['$window', '$document', function($window, $document) { + var eventSupport = {}, + android = + toInt((/android (\d+)/.exec(lowercase(($window.navigator || {}).userAgent)) || [])[1]), + boxee = /Boxee/i.test(($window.navigator || {}).userAgent), + document = $document[0] || {}, + vendorPrefix, + vendorRegex = /^(Moz|webkit|ms)(?=[A-Z])/, + bodyStyle = document.body && document.body.style, + transitions = false, + animations = false, + match; + + if (bodyStyle) { + for (var prop in bodyStyle) { + if (match = vendorRegex.exec(prop)) { + vendorPrefix = match[0]; + vendorPrefix = vendorPrefix.substr(0, 1).toUpperCase() + vendorPrefix.substr(1); + break; + } + } + + if (!vendorPrefix) { + vendorPrefix = ('WebkitOpacity' in bodyStyle) && 'webkit'; + } + + transitions = !!(('transition' in bodyStyle) || (vendorPrefix + 'Transition' in bodyStyle)); + animations = !!(('animation' in bodyStyle) || (vendorPrefix + 'Animation' in bodyStyle)); + + if (android && (!transitions || !animations)) { + transitions = isString(bodyStyle.webkitTransition); + animations = isString(bodyStyle.webkitAnimation); + } + } + + + return { + // Android has history.pushState, but it does not update location correctly + // so let's not use the history API at all. + // http://code.google.com/p/android/issues/detail?id=17471 + // https://github.com/angular/angular.js/issues/904 + + // older webkit browser (533.9) on Boxee box has exactly the same problem as Android has + // so let's not use the history API also + // We are purposefully using `!(android < 4)` to cover the case when `android` is undefined + // jshint -W018 + history: !!($window.history && $window.history.pushState && !(android < 4) && !boxee), + // jshint +W018 + hasEvent: function(event) { + // IE9 implements 'input' event it's so fubared that we rather pretend that it doesn't have + // it. In particular the event is not fired when backspace or delete key are pressed or + // when cut operation is performed. + // IE10+ implements 'input' event but it erroneously fires under various situations, + // e.g. when placeholder changes, or a form is focused. + if (event === 'input' && msie <= 11) return false; + + if (isUndefined(eventSupport[event])) { + var divElm = document.createElement('div'); + eventSupport[event] = 'on' + event in divElm; + } + + return eventSupport[event]; + }, + csp: csp(), + vendorPrefix: vendorPrefix, + transitions: transitions, + animations: animations, + android: android + }; + }]; +} + +var $compileMinErr = minErr('$compile'); + +/** + * @ngdoc service + * @name $templateRequest + * + * @description + * The `$templateRequest` service runs security checks then downloads the provided template using + * `$http` and, upon success, stores the contents inside of `$templateCache`. If the HTTP request + * fails or the response data of the HTTP request is empty, a `$compile` error will be thrown (the + * exception can be thwarted by setting the 2nd parameter of the function to true). Note that the + * contents of `$templateCache` are trusted, so the call to `$sce.getTrustedUrl(tpl)` is omitted + * when `tpl` is of type string and `$templateCache` has the matching entry. + * + * @param {string|TrustedResourceUrl} tpl The HTTP request template URL + * @param {boolean=} ignoreRequestError Whether or not to ignore the exception when the request fails or the template is empty + * + * @return {Promise} a promise for the HTTP response data of the given URL. + * + * @property {number} totalPendingRequests total amount of pending template requests being downloaded. + */ +function $TemplateRequestProvider() { + this.$get = ['$templateCache', '$http', '$q', '$sce', function($templateCache, $http, $q, $sce) { + function handleRequestFn(tpl, ignoreRequestError) { + handleRequestFn.totalPendingRequests++; + + // We consider the template cache holds only trusted templates, so + // there's no need to go through whitelisting again for keys that already + // are included in there. This also makes Angular accept any script + // directive, no matter its name. However, we still need to unwrap trusted + // types. + if (!isString(tpl) || !$templateCache.get(tpl)) { + tpl = $sce.getTrustedResourceUrl(tpl); + } + + var transformResponse = $http.defaults && $http.defaults.transformResponse; + + if (isArray(transformResponse)) { + transformResponse = transformResponse.filter(function(transformer) { + return transformer !== defaultHttpResponseTransform; + }); + } else if (transformResponse === defaultHttpResponseTransform) { + transformResponse = null; + } + + var httpOptions = { + cache: $templateCache, + transformResponse: transformResponse + }; + + return $http.get(tpl, httpOptions) + ['finally'](function() { + handleRequestFn.totalPendingRequests--; + }) + .then(function(response) { + $templateCache.put(tpl, response.data); + return response.data; + }, handleError); + + function handleError(resp) { + if (!ignoreRequestError) { + throw $compileMinErr('tpload', 'Failed to load template: {0} (HTTP status: {1} {2})', + tpl, resp.status, resp.statusText); + } + return $q.reject(resp); + } + } + + handleRequestFn.totalPendingRequests = 0; + + return handleRequestFn; + }]; +} + +function $$TestabilityProvider() { + this.$get = ['$rootScope', '$browser', '$location', + function($rootScope, $browser, $location) { + + /** + * @name $testability + * + * @description + * The private $$testability service provides a collection of methods for use when debugging + * or by automated test and debugging tools. + */ + var testability = {}; + + /** + * @name $$testability#findBindings + * + * @description + * Returns an array of elements that are bound (via ng-bind or {{}}) + * to expressions matching the input. + * + * @param {Element} element The element root to search from. + * @param {string} expression The binding expression to match. + * @param {boolean} opt_exactMatch If true, only returns exact matches + * for the expression. Filters and whitespace are ignored. + */ + testability.findBindings = function(element, expression, opt_exactMatch) { + var bindings = element.getElementsByClassName('ng-binding'); + var matches = []; + forEach(bindings, function(binding) { + var dataBinding = angular.element(binding).data('$binding'); + if (dataBinding) { + forEach(dataBinding, function(bindingName) { + if (opt_exactMatch) { + var matcher = new RegExp('(^|\\s)' + escapeForRegexp(expression) + '(\\s|\\||$)'); + if (matcher.test(bindingName)) { + matches.push(binding); + } + } else { + if (bindingName.indexOf(expression) != -1) { + matches.push(binding); + } + } + }); + } + }); + return matches; + }; + + /** + * @name $$testability#findModels + * + * @description + * Returns an array of elements that are two-way found via ng-model to + * expressions matching the input. + * + * @param {Element} element The element root to search from. + * @param {string} expression The model expression to match. + * @param {boolean} opt_exactMatch If true, only returns exact matches + * for the expression. + */ + testability.findModels = function(element, expression, opt_exactMatch) { + var prefixes = ['ng-', 'data-ng-', 'ng\\:']; + for (var p = 0; p < prefixes.length; ++p) { + var attributeEquals = opt_exactMatch ? '=' : '*='; + var selector = '[' + prefixes[p] + 'model' + attributeEquals + '"' + expression + '"]'; + var elements = element.querySelectorAll(selector); + if (elements.length) { + return elements; + } + } + }; + + /** + * @name $$testability#getLocation + * + * @description + * Shortcut for getting the location in a browser agnostic way. Returns + * the path, search, and hash. (e.g. /path?a=b#hash) + */ + testability.getLocation = function() { + return $location.url(); + }; + + /** + * @name $$testability#setLocation + * + * @description + * Shortcut for navigating to a location without doing a full page reload. + * + * @param {string} url The location url (path, search and hash, + * e.g. /path?a=b#hash) to go to. + */ + testability.setLocation = function(url) { + if (url !== $location.url()) { + $location.url(url); + $rootScope.$digest(); + } + }; + + /** + * @name $$testability#whenStable + * + * @description + * Calls the callback when $timeout and $http requests are completed. + * + * @param {function} callback + */ + testability.whenStable = function(callback) { + $browser.notifyWhenNoOutstandingRequests(callback); + }; + + return testability; + }]; +} + +function $TimeoutProvider() { + this.$get = ['$rootScope', '$browser', '$q', '$$q', '$exceptionHandler', + function($rootScope, $browser, $q, $$q, $exceptionHandler) { + + var deferreds = {}; + + + /** + * @ngdoc service + * @name $timeout + * + * @description + * Angular's wrapper for `window.setTimeout`. The `fn` function is wrapped into a try/catch + * block and delegates any exceptions to + * {@link ng.$exceptionHandler $exceptionHandler} service. + * + * The return value of calling `$timeout` is a promise, which will be resolved when + * the delay has passed and the timeout function, if provided, is executed. + * + * To cancel a timeout request, call `$timeout.cancel(promise)`. + * + * In tests you can use {@link ngMock.$timeout `$timeout.flush()`} to + * synchronously flush the queue of deferred functions. + * + * If you only want a promise that will be resolved after some specified delay + * then you can call `$timeout` without the `fn` function. + * + * @param {function()=} fn A function, whose execution should be delayed. + * @param {number=} [delay=0] Delay in milliseconds. + * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise + * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block. + * @param {...*=} Pass additional parameters to the executed function. + * @returns {Promise} Promise that will be resolved when the timeout is reached. The value this + * promise will be resolved with is the return value of the `fn` function. + * + */ + function timeout(fn, delay, invokeApply) { + if (!isFunction(fn)) { + invokeApply = delay; + delay = fn; + fn = noop; + } + + var args = sliceArgs(arguments, 3), + skipApply = (isDefined(invokeApply) && !invokeApply), + deferred = (skipApply ? $$q : $q).defer(), + promise = deferred.promise, + timeoutId; + + timeoutId = $browser.defer(function() { + try { + deferred.resolve(fn.apply(null, args)); + } catch (e) { + deferred.reject(e); + $exceptionHandler(e); + } + finally { + delete deferreds[promise.$$timeoutId]; + } + + if (!skipApply) $rootScope.$apply(); + }, delay); + + promise.$$timeoutId = timeoutId; + deferreds[timeoutId] = deferred; + + return promise; + } + + + /** + * @ngdoc method + * @name $timeout#cancel + * + * @description + * Cancels a task associated with the `promise`. As a result of this, the promise will be + * resolved with a rejection. + * + * @param {Promise=} promise Promise returned by the `$timeout` function. + * @returns {boolean} Returns `true` if the task hasn't executed yet and was successfully + * canceled. + */ + timeout.cancel = function(promise) { + if (promise && promise.$$timeoutId in deferreds) { + deferreds[promise.$$timeoutId].reject('canceled'); + delete deferreds[promise.$$timeoutId]; + return $browser.defer.cancel(promise.$$timeoutId); + } + return false; + }; + + return timeout; + }]; +} + +// NOTE: The usage of window and document instead of $window and $document here is +// deliberate. This service depends on the specific behavior of anchor nodes created by the +// browser (resolving and parsing URLs) that is unlikely to be provided by mock objects and +// cause us to break tests. In addition, when the browser resolves a URL for XHR, it +// doesn't know about mocked locations and resolves URLs to the real document - which is +// exactly the behavior needed here. There is little value is mocking these out for this +// service. +var urlParsingNode = document.createElement("a"); +var originUrl = urlResolve(window.location.href); + + +/** + * + * Implementation Notes for non-IE browsers + * ---------------------------------------- + * Assigning a URL to the href property of an anchor DOM node, even one attached to the DOM, + * results both in the normalizing and parsing of the URL. Normalizing means that a relative + * URL will be resolved into an absolute URL in the context of the application document. + * Parsing means that the anchor node's host, hostname, protocol, port, pathname and related + * properties are all populated to reflect the normalized URL. This approach has wide + * compatibility - Safari 1+, Mozilla 1+, Opera 7+,e etc. See + * http://www.aptana.com/reference/html/api/HTMLAnchorElement.html + * + * Implementation Notes for IE + * --------------------------- + * IE >= 8 and <= 10 normalizes the URL when assigned to the anchor node similar to the other + * browsers. However, the parsed components will not be set if the URL assigned did not specify + * them. (e.g. if you assign a.href = "foo", then a.protocol, a.host, etc. will be empty.) We + * work around that by performing the parsing in a 2nd step by taking a previously normalized + * URL (e.g. by assigning to a.href) and assigning it a.href again. This correctly populates the + * properties such as protocol, hostname, port, etc. + * + * IE7 does not normalize the URL when assigned to an anchor node. (Apparently, it does, if one + * uses the inner HTML approach to assign the URL as part of an HTML snippet - + * http://stackoverflow.com/a/472729) However, setting img[src] does normalize the URL. + * Unfortunately, setting img[src] to something like "javascript:foo" on IE throws an exception. + * Since the primary usage for normalizing URLs is to sanitize such URLs, we can't use that + * method and IE < 8 is unsupported. + * + * References: + * http://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement + * http://www.aptana.com/reference/html/api/HTMLAnchorElement.html + * http://url.spec.whatwg.org/#urlutils + * https://github.com/angular/angular.js/pull/2902 + * http://james.padolsey.com/javascript/parsing-urls-with-the-dom/ + * + * @kind function + * @param {string} url The URL to be parsed. + * @description Normalizes and parses a URL. + * @returns {object} Returns the normalized URL as a dictionary. + * + * | member name | Description | + * |---------------|----------------| + * | href | A normalized version of the provided URL if it was not an absolute URL | + * | protocol | The protocol including the trailing colon | + * | host | The host and port (if the port is non-default) of the normalizedUrl | + * | search | The search params, minus the question mark | + * | hash | The hash string, minus the hash symbol + * | hostname | The hostname + * | port | The port, without ":" + * | pathname | The pathname, beginning with "/" + * + */ +function urlResolve(url) { + var href = url; + + if (msie) { + // Normalize before parse. Refer Implementation Notes on why this is + // done in two steps on IE. + urlParsingNode.setAttribute("href", href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') + ? urlParsingNode.pathname + : '/' + urlParsingNode.pathname + }; +} + +/** + * Parse a request URL and determine whether this is a same-origin request as the application document. + * + * @param {string|object} requestUrl The url of the request as a string that will be resolved + * or a parsed URL object. + * @returns {boolean} Whether the request is for the same origin as the application document. + */ +function urlIsSameOrigin(requestUrl) { + var parsed = (isString(requestUrl)) ? urlResolve(requestUrl) : requestUrl; + return (parsed.protocol === originUrl.protocol && + parsed.host === originUrl.host); +} + +/** + * @ngdoc service + * @name $window + * + * @description + * A reference to the browser's `window` object. While `window` + * is globally available in JavaScript, it causes testability problems, because + * it is a global variable. In angular we always refer to it through the + * `$window` service, so it may be overridden, removed or mocked for testing. + * + * Expressions, like the one defined for the `ngClick` directive in the example + * below, are evaluated with respect to the current scope. Therefore, there is + * no risk of inadvertently coding in a dependency on a global value in such an + * expression. + * + * @example + + + +
    + + +
    +
    + + it('should display the greeting in the input box', function() { + element(by.model('greeting')).sendKeys('Hello, E2E Tests'); + // If we click the button it will block the test runner + // element(':button').click(); + }); + +
    + */ +function $WindowProvider() { + this.$get = valueFn(window); +} + +/** + * @name $$cookieReader + * @requires $document + * + * @description + * This is a private service for reading cookies used by $http and ngCookies + * + * @return {Object} a key/value map of the current cookies + */ +function $$CookieReader($document) { + var rawDocument = $document[0] || {}; + var lastCookies = {}; + var lastCookieString = ''; + + function safeDecodeURIComponent(str) { + try { + return decodeURIComponent(str); + } catch (e) { + return str; + } + } + + return function() { + var cookieArray, cookie, i, index, name; + var currentCookieString = rawDocument.cookie || ''; + + if (currentCookieString !== lastCookieString) { + lastCookieString = currentCookieString; + cookieArray = lastCookieString.split('; '); + lastCookies = {}; + + for (i = 0; i < cookieArray.length; i++) { + cookie = cookieArray[i]; + index = cookie.indexOf('='); + if (index > 0) { //ignore nameless cookies + name = safeDecodeURIComponent(cookie.substring(0, index)); + // the first value that is seen for a cookie is the most + // specific one. values for the same cookie name that + // follow are for less specific paths. + if (lastCookies[name] === undefined) { + lastCookies[name] = safeDecodeURIComponent(cookie.substring(index + 1)); + } + } + } + } + return lastCookies; + }; +} + +$$CookieReader.$inject = ['$document']; + +function $$CookieReaderProvider() { + this.$get = $$CookieReader; +} + +/* global currencyFilter: true, + dateFilter: true, + filterFilter: true, + jsonFilter: true, + limitToFilter: true, + lowercaseFilter: true, + numberFilter: true, + orderByFilter: true, + uppercaseFilter: true, + */ + +/** + * @ngdoc provider + * @name $filterProvider + * @description + * + * Filters are just functions which transform input to an output. However filters need to be + * Dependency Injected. To achieve this a filter definition consists of a factory function which is + * annotated with dependencies and is responsible for creating a filter function. + * + *
    + * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`. + * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace + * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores + * (`myapp_subsection_filterx`). + *
    + * + * ```js + * // Filter registration + * function MyModule($provide, $filterProvider) { + * // create a service to demonstrate injection (not always needed) + * $provide.value('greet', function(name){ + * return 'Hello ' + name + '!'; + * }); + * + * // register a filter factory which uses the + * // greet service to demonstrate DI. + * $filterProvider.register('greet', function(greet){ + * // return the filter function which uses the greet service + * // to generate salutation + * return function(text) { + * // filters need to be forgiving so check input validity + * return text && greet(text) || text; + * }; + * }); + * } + * ``` + * + * The filter function is registered with the `$injector` under the filter name suffix with + * `Filter`. + * + * ```js + * it('should be the same instance', inject( + * function($filterProvider) { + * $filterProvider.register('reverse', function(){ + * return ...; + * }); + * }, + * function($filter, reverseFilter) { + * expect($filter('reverse')).toBe(reverseFilter); + * }); + * ``` + * + * + * For more information about how angular filters work, and how to create your own filters, see + * {@link guide/filter Filters} in the Angular Developer Guide. + */ + +/** + * @ngdoc service + * @name $filter + * @kind function + * @description + * Filters are used for formatting data displayed to the user. + * + * The general syntax in templates is as follows: + * + * {{ expression [| filter_name[:parameter_value] ... ] }} + * + * @param {String} name Name of the filter function to retrieve + * @return {Function} the filter function + * @example + + +
    +

    {{ originalText }}

    +

    {{ filteredText }}

    +
    +
    + + + angular.module('filterExample', []) + .controller('MainCtrl', function($scope, $filter) { + $scope.originalText = 'hello'; + $scope.filteredText = $filter('uppercase')($scope.originalText); + }); + +
    + */ +$FilterProvider.$inject = ['$provide']; +function $FilterProvider($provide) { + var suffix = 'Filter'; + + /** + * @ngdoc method + * @name $filterProvider#register + * @param {string|Object} name Name of the filter function, or an object map of filters where + * the keys are the filter names and the values are the filter factories. + * + *
    + * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`. + * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace + * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores + * (`myapp_subsection_filterx`). + *
    + * @returns {Object} Registered filter instance, or if a map of filters was provided then a map + * of the registered filter instances. + */ + function register(name, factory) { + if (isObject(name)) { + var filters = {}; + forEach(name, function(filter, key) { + filters[key] = register(key, filter); + }); + return filters; + } else { + return $provide.factory(name + suffix, factory); + } + } + this.register = register; + + this.$get = ['$injector', function($injector) { + return function(name) { + return $injector.get(name + suffix); + }; + }]; + + //////////////////////////////////////// + + /* global + currencyFilter: false, + dateFilter: false, + filterFilter: false, + jsonFilter: false, + limitToFilter: false, + lowercaseFilter: false, + numberFilter: false, + orderByFilter: false, + uppercaseFilter: false, + */ + + register('currency', currencyFilter); + register('date', dateFilter); + register('filter', filterFilter); + register('json', jsonFilter); + register('limitTo', limitToFilter); + register('lowercase', lowercaseFilter); + register('number', numberFilter); + register('orderBy', orderByFilter); + register('uppercase', uppercaseFilter); +} + +/** + * @ngdoc filter + * @name filter + * @kind function + * + * @description + * Selects a subset of items from `array` and returns it as a new array. + * + * @param {Array} array The source array. + * @param {string|Object|function()} expression The predicate to be used for selecting items from + * `array`. + * + * Can be one of: + * + * - `string`: The string is used for matching against the contents of the `array`. All strings or + * objects with string properties in `array` that match this string will be returned. This also + * applies to nested object properties. + * The predicate can be negated by prefixing the string with `!`. + * + * - `Object`: A pattern object can be used to filter specific properties on objects contained + * by `array`. For example `{name:"M", phone:"1"}` predicate will return an array of items + * which have property `name` containing "M" and property `phone` containing "1". A special + * property name `$` can be used (as in `{$:"text"}`) to accept a match against any + * property of the object or its nested object properties. That's equivalent to the simple + * substring match with a `string` as described above. The predicate can be negated by prefixing + * the string with `!`. + * For example `{name: "!M"}` predicate will return an array of items which have property `name` + * not containing "M". + * + * Note that a named property will match properties on the same level only, while the special + * `$` property will match properties on the same level or deeper. E.g. an array item like + * `{name: {first: 'John', last: 'Doe'}}` will **not** be matched by `{name: 'John'}`, but + * **will** be matched by `{$: 'John'}`. + * + * - `function(value, index, array)`: A predicate function can be used to write arbitrary filters. + * The function is called for each element of the array, with the element, its index, and + * the entire array itself as arguments. + * + * The final result is an array of those elements that the predicate returned true for. + * + * @param {function(actual, expected)|true|undefined} comparator Comparator which is used in + * determining if the expected value (from the filter expression) and actual value (from + * the object in the array) should be considered a match. + * + * Can be one of: + * + * - `function(actual, expected)`: + * The function will be given the object value and the predicate value to compare and + * should return true if both values should be considered equal. + * + * - `true`: A shorthand for `function(actual, expected) { return angular.equals(actual, expected)}`. + * This is essentially strict comparison of expected and actual. + * + * - `false|undefined`: A short hand for a function which will look for a substring match in case + * insensitive way. + * + * Primitive values are converted to strings. Objects are not compared against primitives, + * unless they have a custom `toString` method (e.g. `Date` objects). + * + * @example + + +
    + + + + + + + + +
    NamePhone
    {{friend.name}}{{friend.phone}}
    +
    +
    +
    +
    +
    + + + + + + +
    NamePhone
    {{friendObj.name}}{{friendObj.phone}}
    +
    + + var expectFriendNames = function(expectedNames, key) { + element.all(by.repeater(key + ' in friends').column(key + '.name')).then(function(arr) { + arr.forEach(function(wd, i) { + expect(wd.getText()).toMatch(expectedNames[i]); + }); + }); + }; + + it('should search across all fields when filtering with a string', function() { + var searchText = element(by.model('searchText')); + searchText.clear(); + searchText.sendKeys('m'); + expectFriendNames(['Mary', 'Mike', 'Adam'], 'friend'); + + searchText.clear(); + searchText.sendKeys('76'); + expectFriendNames(['John', 'Julie'], 'friend'); + }); + + it('should search in specific fields when filtering with a predicate object', function() { + var searchAny = element(by.model('search.$')); + searchAny.clear(); + searchAny.sendKeys('i'); + expectFriendNames(['Mary', 'Mike', 'Julie', 'Juliette'], 'friendObj'); + }); + it('should use a equal comparison when comparator is true', function() { + var searchName = element(by.model('search.name')); + var strict = element(by.model('strict')); + searchName.clear(); + searchName.sendKeys('Julie'); + strict.click(); + expectFriendNames(['Julie'], 'friendObj'); + }); + +
    + */ +function filterFilter() { + return function(array, expression, comparator) { + if (!isArrayLike(array)) { + if (array == null) { + return array; + } else { + throw minErr('filter')('notarray', 'Expected array but received: {0}', array); + } + } + + var expressionType = getTypeForFilter(expression); + var predicateFn; + var matchAgainstAnyProp; + + switch (expressionType) { + case 'function': + predicateFn = expression; + break; + case 'boolean': + case 'null': + case 'number': + case 'string': + matchAgainstAnyProp = true; + //jshint -W086 + case 'object': + //jshint +W086 + predicateFn = createPredicateFn(expression, comparator, matchAgainstAnyProp); + break; + default: + return array; + } + + return Array.prototype.filter.call(array, predicateFn); + }; +} + +// Helper functions for `filterFilter` +function createPredicateFn(expression, comparator, matchAgainstAnyProp) { + var shouldMatchPrimitives = isObject(expression) && ('$' in expression); + var predicateFn; + + if (comparator === true) { + comparator = equals; + } else if (!isFunction(comparator)) { + comparator = function(actual, expected) { + if (isUndefined(actual)) { + // No substring matching against `undefined` + return false; + } + if ((actual === null) || (expected === null)) { + // No substring matching against `null`; only match against `null` + return actual === expected; + } + if (isObject(expected) || (isObject(actual) && !hasCustomToString(actual))) { + // Should not compare primitives against objects, unless they have custom `toString` method + return false; + } + + actual = lowercase('' + actual); + expected = lowercase('' + expected); + return actual.indexOf(expected) !== -1; + }; + } + + predicateFn = function(item) { + if (shouldMatchPrimitives && !isObject(item)) { + return deepCompare(item, expression.$, comparator, false); + } + return deepCompare(item, expression, comparator, matchAgainstAnyProp); + }; + + return predicateFn; +} + +function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatchWholeObject) { + var actualType = getTypeForFilter(actual); + var expectedType = getTypeForFilter(expected); + + if ((expectedType === 'string') && (expected.charAt(0) === '!')) { + return !deepCompare(actual, expected.substring(1), comparator, matchAgainstAnyProp); + } else if (isArray(actual)) { + // In case `actual` is an array, consider it a match + // if ANY of it's items matches `expected` + return actual.some(function(item) { + return deepCompare(item, expected, comparator, matchAgainstAnyProp); + }); + } + + switch (actualType) { + case 'object': + var key; + if (matchAgainstAnyProp) { + for (key in actual) { + if ((key.charAt(0) !== '$') && deepCompare(actual[key], expected, comparator, true)) { + return true; + } + } + return dontMatchWholeObject ? false : deepCompare(actual, expected, comparator, false); + } else if (expectedType === 'object') { + for (key in expected) { + var expectedVal = expected[key]; + if (isFunction(expectedVal) || isUndefined(expectedVal)) { + continue; + } + + var matchAnyProperty = key === '$'; + var actualVal = matchAnyProperty ? actual : actual[key]; + if (!deepCompare(actualVal, expectedVal, comparator, matchAnyProperty, matchAnyProperty)) { + return false; + } + } + return true; + } else { + return comparator(actual, expected); + } + break; + case 'function': + return false; + default: + return comparator(actual, expected); + } +} + +// Used for easily differentiating between `null` and actual `object` +function getTypeForFilter(val) { + return (val === null) ? 'null' : typeof val; +} + +/** + * @ngdoc filter + * @name currency + * @kind function + * + * @description + * Formats a number as a currency (ie $1,234.56). When no currency symbol is provided, default + * symbol for current locale is used. + * + * @param {number} amount Input to filter. + * @param {string=} symbol Currency symbol or identifier to be displayed. + * @param {number=} fractionSize Number of decimal places to round the amount to, defaults to default max fraction size for current locale + * @returns {string} Formatted number. + * + * + * @example + + + +
    +
    + default currency symbol ($): {{amount | currency}}
    + custom currency identifier (USD$): {{amount | currency:"USD$"}} + no fractions (0): {{amount | currency:"USD$":0}} +
    +
    + + it('should init with 1234.56', function() { + expect(element(by.id('currency-default')).getText()).toBe('$1,234.56'); + expect(element(by.id('currency-custom')).getText()).toBe('USD$1,234.56'); + expect(element(by.id('currency-no-fractions')).getText()).toBe('USD$1,235'); + }); + it('should update', function() { + if (browser.params.browser == 'safari') { + // Safari does not understand the minus key. See + // https://github.com/angular/protractor/issues/481 + return; + } + element(by.model('amount')).clear(); + element(by.model('amount')).sendKeys('-1234'); + expect(element(by.id('currency-default')).getText()).toBe('($1,234.00)'); + expect(element(by.id('currency-custom')).getText()).toBe('(USD$1,234.00)'); + expect(element(by.id('currency-no-fractions')).getText()).toBe('(USD$1,234)'); + }); + +
    + */ +currencyFilter.$inject = ['$locale']; +function currencyFilter($locale) { + var formats = $locale.NUMBER_FORMATS; + return function(amount, currencySymbol, fractionSize) { + if (isUndefined(currencySymbol)) { + currencySymbol = formats.CURRENCY_SYM; + } + + if (isUndefined(fractionSize)) { + fractionSize = formats.PATTERNS[1].maxFrac; + } + + // if null or undefined pass it through + return (amount == null) + ? amount + : formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, fractionSize). + replace(/\u00A4/g, currencySymbol); + }; +} + +/** + * @ngdoc filter + * @name number + * @kind function + * + * @description + * Formats a number as text. + * + * If the input is null or undefined, it will just be returned. + * If the input is infinite (Infinity/-Infinity) the Infinity symbol '∞' is returned. + * If the input is not a number an empty string is returned. + * + * + * @param {number|string} number Number to format. + * @param {(number|string)=} fractionSize Number of decimal places to round the number to. + * If this is not provided then the fraction size is computed from the current locale's number + * formatting pattern. In the case of the default locale, it will be 3. + * @returns {string} Number rounded to decimalPlaces and places a “,” after each third digit. + * + * @example + + + +
    +
    + Default formatting: {{val | number}}
    + No fractions: {{val | number:0}}
    + Negative number: {{-val | number:4}} +
    +
    + + it('should format numbers', function() { + expect(element(by.id('number-default')).getText()).toBe('1,234.568'); + expect(element(by.binding('val | number:0')).getText()).toBe('1,235'); + expect(element(by.binding('-val | number:4')).getText()).toBe('-1,234.5679'); + }); + + it('should update', function() { + element(by.model('val')).clear(); + element(by.model('val')).sendKeys('3374.333'); + expect(element(by.id('number-default')).getText()).toBe('3,374.333'); + expect(element(by.binding('val | number:0')).getText()).toBe('3,374'); + expect(element(by.binding('-val | number:4')).getText()).toBe('-3,374.3330'); + }); + +
    + */ + + +numberFilter.$inject = ['$locale']; +function numberFilter($locale) { + var formats = $locale.NUMBER_FORMATS; + return function(number, fractionSize) { + + // if null or undefined pass it through + return (number == null) + ? number + : formatNumber(number, formats.PATTERNS[0], formats.GROUP_SEP, formats.DECIMAL_SEP, + fractionSize); + }; +} + +var DECIMAL_SEP = '.'; +function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) { + if (isObject(number)) return ''; + + var isNegative = number < 0; + number = Math.abs(number); + + var isInfinity = number === Infinity; + if (!isInfinity && !isFinite(number)) return ''; + + var numStr = number + '', + formatedText = '', + hasExponent = false, + parts = []; + + if (isInfinity) formatedText = '\u221e'; + + if (!isInfinity && numStr.indexOf('e') !== -1) { + var match = numStr.match(/([\d\.]+)e(-?)(\d+)/); + if (match && match[2] == '-' && match[3] > fractionSize + 1) { + number = 0; + } else { + formatedText = numStr; + hasExponent = true; + } + } + + if (!isInfinity && !hasExponent) { + var fractionLen = (numStr.split(DECIMAL_SEP)[1] || '').length; + + // determine fractionSize if it is not specified + if (isUndefined(fractionSize)) { + fractionSize = Math.min(Math.max(pattern.minFrac, fractionLen), pattern.maxFrac); + } + + // safely round numbers in JS without hitting imprecisions of floating-point arithmetics + // inspired by: + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round + number = +(Math.round(+(number.toString() + 'e' + fractionSize)).toString() + 'e' + -fractionSize); + + var fraction = ('' + number).split(DECIMAL_SEP); + var whole = fraction[0]; + fraction = fraction[1] || ''; + + var i, pos = 0, + lgroup = pattern.lgSize, + group = pattern.gSize; + + if (whole.length >= (lgroup + group)) { + pos = whole.length - lgroup; + for (i = 0; i < pos; i++) { + if ((pos - i) % group === 0 && i !== 0) { + formatedText += groupSep; + } + formatedText += whole.charAt(i); + } + } + + for (i = pos; i < whole.length; i++) { + if ((whole.length - i) % lgroup === 0 && i !== 0) { + formatedText += groupSep; + } + formatedText += whole.charAt(i); + } + + // format fraction part. + while (fraction.length < fractionSize) { + fraction += '0'; + } + + if (fractionSize && fractionSize !== "0") formatedText += decimalSep + fraction.substr(0, fractionSize); + } else { + if (fractionSize > 0 && number < 1) { + formatedText = number.toFixed(fractionSize); + number = parseFloat(formatedText); + } + } + + if (number === 0) { + isNegative = false; + } + + parts.push(isNegative ? pattern.negPre : pattern.posPre, + formatedText, + isNegative ? pattern.negSuf : pattern.posSuf); + return parts.join(''); +} + +function padNumber(num, digits, trim) { + var neg = ''; + if (num < 0) { + neg = '-'; + num = -num; + } + num = '' + num; + while (num.length < digits) num = '0' + num; + if (trim) { + num = num.substr(num.length - digits); + } + return neg + num; +} + + +function dateGetter(name, size, offset, trim) { + offset = offset || 0; + return function(date) { + var value = date['get' + name](); + if (offset > 0 || value > -offset) { + value += offset; + } + if (value === 0 && offset == -12) value = 12; + return padNumber(value, size, trim); + }; +} + +function dateStrGetter(name, shortForm) { + return function(date, formats) { + var value = date['get' + name](); + var get = uppercase(shortForm ? ('SHORT' + name) : name); + + return formats[get][value]; + }; +} + +function timeZoneGetter(date, formats, offset) { + var zone = -1 * offset; + var paddedZone = (zone >= 0) ? "+" : ""; + + paddedZone += padNumber(Math[zone > 0 ? 'floor' : 'ceil'](zone / 60), 2) + + padNumber(Math.abs(zone % 60), 2); + + return paddedZone; +} + +function getFirstThursdayOfYear(year) { + // 0 = index of January + var dayOfWeekOnFirst = (new Date(year, 0, 1)).getDay(); + // 4 = index of Thursday (+1 to account for 1st = 5) + // 11 = index of *next* Thursday (+1 account for 1st = 12) + return new Date(year, 0, ((dayOfWeekOnFirst <= 4) ? 5 : 12) - dayOfWeekOnFirst); +} + +function getThursdayThisWeek(datetime) { + return new Date(datetime.getFullYear(), datetime.getMonth(), + // 4 = index of Thursday + datetime.getDate() + (4 - datetime.getDay())); +} + +function weekGetter(size) { + return function(date) { + var firstThurs = getFirstThursdayOfYear(date.getFullYear()), + thisThurs = getThursdayThisWeek(date); + + var diff = +thisThurs - +firstThurs, + result = 1 + Math.round(diff / 6.048e8); // 6.048e8 ms per week + + return padNumber(result, size); + }; +} + +function ampmGetter(date, formats) { + return date.getHours() < 12 ? formats.AMPMS[0] : formats.AMPMS[1]; +} + +function eraGetter(date, formats) { + return date.getFullYear() <= 0 ? formats.ERAS[0] : formats.ERAS[1]; +} + +function longEraGetter(date, formats) { + return date.getFullYear() <= 0 ? formats.ERANAMES[0] : formats.ERANAMES[1]; +} + +var DATE_FORMATS = { + yyyy: dateGetter('FullYear', 4), + yy: dateGetter('FullYear', 2, 0, true), + y: dateGetter('FullYear', 1), + MMMM: dateStrGetter('Month'), + MMM: dateStrGetter('Month', true), + MM: dateGetter('Month', 2, 1), + M: dateGetter('Month', 1, 1), + dd: dateGetter('Date', 2), + d: dateGetter('Date', 1), + HH: dateGetter('Hours', 2), + H: dateGetter('Hours', 1), + hh: dateGetter('Hours', 2, -12), + h: dateGetter('Hours', 1, -12), + mm: dateGetter('Minutes', 2), + m: dateGetter('Minutes', 1), + ss: dateGetter('Seconds', 2), + s: dateGetter('Seconds', 1), + // while ISO 8601 requires fractions to be prefixed with `.` or `,` + // we can be just safely rely on using `sss` since we currently don't support single or two digit fractions + sss: dateGetter('Milliseconds', 3), + EEEE: dateStrGetter('Day'), + EEE: dateStrGetter('Day', true), + a: ampmGetter, + Z: timeZoneGetter, + ww: weekGetter(2), + w: weekGetter(1), + G: eraGetter, + GG: eraGetter, + GGG: eraGetter, + GGGG: longEraGetter +}; + +var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, + NUMBER_STRING = /^\-?\d+$/; + +/** + * @ngdoc filter + * @name date + * @kind function + * + * @description + * Formats `date` to a string based on the requested `format`. + * + * `format` string can be composed of the following elements: + * + * * `'yyyy'`: 4 digit representation of year (e.g. AD 1 => 0001, AD 2010 => 2010) + * * `'yy'`: 2 digit representation of year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10) + * * `'y'`: 1 digit representation of year, e.g. (AD 1 => 1, AD 199 => 199) + * * `'MMMM'`: Month in year (January-December) + * * `'MMM'`: Month in year (Jan-Dec) + * * `'MM'`: Month in year, padded (01-12) + * * `'M'`: Month in year (1-12) + * * `'dd'`: Day in month, padded (01-31) + * * `'d'`: Day in month (1-31) + * * `'EEEE'`: Day in Week,(Sunday-Saturday) + * * `'EEE'`: Day in Week, (Sun-Sat) + * * `'HH'`: Hour in day, padded (00-23) + * * `'H'`: Hour in day (0-23) + * * `'hh'`: Hour in AM/PM, padded (01-12) + * * `'h'`: Hour in AM/PM, (1-12) + * * `'mm'`: Minute in hour, padded (00-59) + * * `'m'`: Minute in hour (0-59) + * * `'ss'`: Second in minute, padded (00-59) + * * `'s'`: Second in minute (0-59) + * * `'sss'`: Millisecond in second, padded (000-999) + * * `'a'`: AM/PM marker + * * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200-+1200) + * * `'ww'`: Week of year, padded (00-53). Week 01 is the week with the first Thursday of the year + * * `'w'`: Week of year (0-53). Week 1 is the week with the first Thursday of the year + * * `'G'`, `'GG'`, `'GGG'`: The abbreviated form of the era string (e.g. 'AD') + * * `'GGGG'`: The long form of the era string (e.g. 'Anno Domini') + * + * `format` string can also be one of the following predefined + * {@link guide/i18n localizable formats}: + * + * * `'medium'`: equivalent to `'MMM d, y h:mm:ss a'` for en_US locale + * (e.g. Sep 3, 2010 12:05:08 PM) + * * `'short'`: equivalent to `'M/d/yy h:mm a'` for en_US locale (e.g. 9/3/10 12:05 PM) + * * `'fullDate'`: equivalent to `'EEEE, MMMM d, y'` for en_US locale + * (e.g. Friday, September 3, 2010) + * * `'longDate'`: equivalent to `'MMMM d, y'` for en_US locale (e.g. September 3, 2010) + * * `'mediumDate'`: equivalent to `'MMM d, y'` for en_US locale (e.g. Sep 3, 2010) + * * `'shortDate'`: equivalent to `'M/d/yy'` for en_US locale (e.g. 9/3/10) + * * `'mediumTime'`: equivalent to `'h:mm:ss a'` for en_US locale (e.g. 12:05:08 PM) + * * `'shortTime'`: equivalent to `'h:mm a'` for en_US locale (e.g. 12:05 PM) + * + * `format` string can contain literal values. These need to be escaped by surrounding with single quotes (e.g. + * `"h 'in the morning'"`). In order to output a single quote, escape it - i.e., two single quotes in a sequence + * (e.g. `"h 'o''clock'"`). + * + * @param {(Date|number|string)} date Date to format either as Date object, milliseconds (string or + * number) or various ISO 8601 datetime string formats (e.g. yyyy-MM-ddTHH:mm:ss.sssZ and its + * shorter versions like yyyy-MM-ddTHH:mmZ, yyyy-MM-dd or yyyyMMddTHHmmssZ). If no timezone is + * specified in the string input, the time is considered to be in the local timezone. + * @param {string=} format Formatting rules (see Description). If not specified, + * `mediumDate` is used. + * @param {string=} timezone Timezone to be used for formatting. It understands UTC/GMT and the + * continental US time zone abbreviations, but for general use, use a time zone offset, for + * example, `'+0430'` (4 hours, 30 minutes east of the Greenwich meridian) + * If not specified, the timezone of the browser will be used. + * @returns {string} Formatted string or the input if input is not recognized as date/millis. + * + * @example + + + {{1288323623006 | date:'medium'}}: + {{1288323623006 | date:'medium'}}
    + {{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}: + {{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}
    + {{1288323623006 | date:'MM/dd/yyyy @ h:mma'}}: + {{'1288323623006' | date:'MM/dd/yyyy @ h:mma'}}
    + {{1288323623006 | date:"MM/dd/yyyy 'at' h:mma"}}: + {{'1288323623006' | date:"MM/dd/yyyy 'at' h:mma"}}
    +
    + + it('should format date', function() { + expect(element(by.binding("1288323623006 | date:'medium'")).getText()). + toMatch(/Oct 2\d, 2010 \d{1,2}:\d{2}:\d{2} (AM|PM)/); + expect(element(by.binding("1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'")).getText()). + toMatch(/2010\-10\-2\d \d{2}:\d{2}:\d{2} (\-|\+)?\d{4}/); + expect(element(by.binding("'1288323623006' | date:'MM/dd/yyyy @ h:mma'")).getText()). + toMatch(/10\/2\d\/2010 @ \d{1,2}:\d{2}(AM|PM)/); + expect(element(by.binding("'1288323623006' | date:\"MM/dd/yyyy 'at' h:mma\"")).getText()). + toMatch(/10\/2\d\/2010 at \d{1,2}:\d{2}(AM|PM)/); + }); + +
    + */ +dateFilter.$inject = ['$locale']; +function dateFilter($locale) { + + + var R_ISO8601_STR = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/; + // 1 2 3 4 5 6 7 8 9 10 11 + function jsonStringToDate(string) { + var match; + if (match = string.match(R_ISO8601_STR)) { + var date = new Date(0), + tzHour = 0, + tzMin = 0, + dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear, + timeSetter = match[8] ? date.setUTCHours : date.setHours; + + if (match[9]) { + tzHour = toInt(match[9] + match[10]); + tzMin = toInt(match[9] + match[11]); + } + dateSetter.call(date, toInt(match[1]), toInt(match[2]) - 1, toInt(match[3])); + var h = toInt(match[4] || 0) - tzHour; + var m = toInt(match[5] || 0) - tzMin; + var s = toInt(match[6] || 0); + var ms = Math.round(parseFloat('0.' + (match[7] || 0)) * 1000); + timeSetter.call(date, h, m, s, ms); + return date; + } + return string; + } + + + return function(date, format, timezone) { + var text = '', + parts = [], + fn, match; + + format = format || 'mediumDate'; + format = $locale.DATETIME_FORMATS[format] || format; + if (isString(date)) { + date = NUMBER_STRING.test(date) ? toInt(date) : jsonStringToDate(date); + } + + if (isNumber(date)) { + date = new Date(date); + } + + if (!isDate(date) || !isFinite(date.getTime())) { + return date; + } + + while (format) { + match = DATE_FORMATS_SPLIT.exec(format); + if (match) { + parts = concat(parts, match, 1); + format = parts.pop(); + } else { + parts.push(format); + format = null; + } + } + + var dateTimezoneOffset = date.getTimezoneOffset(); + if (timezone) { + dateTimezoneOffset = timezoneToOffset(timezone, date.getTimezoneOffset()); + date = convertTimezoneToLocal(date, timezone, true); + } + forEach(parts, function(value) { + fn = DATE_FORMATS[value]; + text += fn ? fn(date, $locale.DATETIME_FORMATS, dateTimezoneOffset) + : value.replace(/(^'|'$)/g, '').replace(/''/g, "'"); + }); + + return text; + }; +} + + +/** + * @ngdoc filter + * @name json + * @kind function + * + * @description + * Allows you to convert a JavaScript object into JSON string. + * + * This filter is mostly useful for debugging. When using the double curly {{value}} notation + * the binding is automatically converted to JSON. + * + * @param {*} object Any JavaScript object (including arrays and primitive types) to filter. + * @param {number=} spacing The number of spaces to use per indentation, defaults to 2. + * @returns {string} JSON string. + * + * + * @example + + +
    {{ {'name':'value'} | json }}
    +
    {{ {'name':'value'} | json:4 }}
    +
    + + it('should jsonify filtered objects', function() { + expect(element(by.id('default-spacing')).getText()).toMatch(/\{\n "name": ?"value"\n}/); + expect(element(by.id('custom-spacing')).getText()).toMatch(/\{\n "name": ?"value"\n}/); + }); + +
    + * + */ +function jsonFilter() { + return function(object, spacing) { + if (isUndefined(spacing)) { + spacing = 2; + } + return toJson(object, spacing); + }; +} + + +/** + * @ngdoc filter + * @name lowercase + * @kind function + * @description + * Converts string to lowercase. + * @see angular.lowercase + */ +var lowercaseFilter = valueFn(lowercase); + + +/** + * @ngdoc filter + * @name uppercase + * @kind function + * @description + * Converts string to uppercase. + * @see angular.uppercase + */ +var uppercaseFilter = valueFn(uppercase); + +/** + * @ngdoc filter + * @name limitTo + * @kind function + * + * @description + * Creates a new array or string containing only a specified number of elements. The elements + * are taken from either the beginning or the end of the source array, string or number, as specified by + * the value and sign (positive or negative) of `limit`. If a number is used as input, it is + * converted to a string. + * + * @param {Array|string|number} input Source array, string or number to be limited. + * @param {string|number} limit The length of the returned array or string. If the `limit` number + * is positive, `limit` number of items from the beginning of the source array/string are copied. + * If the number is negative, `limit` number of items from the end of the source array/string + * are copied. The `limit` will be trimmed if it exceeds `array.length`. If `limit` is undefined, + * the input will be returned unchanged. + * @param {(string|number)=} begin Index at which to begin limitation. As a negative index, `begin` + * indicates an offset from the end of `input`. Defaults to `0`. + * @returns {Array|string} A new sub-array or substring of length `limit` or less if input array + * had less than `limit` elements. + * + * @example + + + +
    + +

    Output numbers: {{ numbers | limitTo:numLimit }}

    + +

    Output letters: {{ letters | limitTo:letterLimit }}

    + +

    Output long number: {{ longNumber | limitTo:longNumberLimit }}

    +
    +
    + + var numLimitInput = element(by.model('numLimit')); + var letterLimitInput = element(by.model('letterLimit')); + var longNumberLimitInput = element(by.model('longNumberLimit')); + var limitedNumbers = element(by.binding('numbers | limitTo:numLimit')); + var limitedLetters = element(by.binding('letters | limitTo:letterLimit')); + var limitedLongNumber = element(by.binding('longNumber | limitTo:longNumberLimit')); + + it('should limit the number array to first three items', function() { + expect(numLimitInput.getAttribute('value')).toBe('3'); + expect(letterLimitInput.getAttribute('value')).toBe('3'); + expect(longNumberLimitInput.getAttribute('value')).toBe('3'); + expect(limitedNumbers.getText()).toEqual('Output numbers: [1,2,3]'); + expect(limitedLetters.getText()).toEqual('Output letters: abc'); + expect(limitedLongNumber.getText()).toEqual('Output long number: 234'); + }); + + // There is a bug in safari and protractor that doesn't like the minus key + // it('should update the output when -3 is entered', function() { + // numLimitInput.clear(); + // numLimitInput.sendKeys('-3'); + // letterLimitInput.clear(); + // letterLimitInput.sendKeys('-3'); + // longNumberLimitInput.clear(); + // longNumberLimitInput.sendKeys('-3'); + // expect(limitedNumbers.getText()).toEqual('Output numbers: [7,8,9]'); + // expect(limitedLetters.getText()).toEqual('Output letters: ghi'); + // expect(limitedLongNumber.getText()).toEqual('Output long number: 342'); + // }); + + it('should not exceed the maximum size of input array', function() { + numLimitInput.clear(); + numLimitInput.sendKeys('100'); + letterLimitInput.clear(); + letterLimitInput.sendKeys('100'); + longNumberLimitInput.clear(); + longNumberLimitInput.sendKeys('100'); + expect(limitedNumbers.getText()).toEqual('Output numbers: [1,2,3,4,5,6,7,8,9]'); + expect(limitedLetters.getText()).toEqual('Output letters: abcdefghi'); + expect(limitedLongNumber.getText()).toEqual('Output long number: 2345432342'); + }); + +
    +*/ +function limitToFilter() { + return function(input, limit, begin) { + if (Math.abs(Number(limit)) === Infinity) { + limit = Number(limit); + } else { + limit = toInt(limit); + } + if (isNaN(limit)) return input; + + if (isNumber(input)) input = input.toString(); + if (!isArray(input) && !isString(input)) return input; + + begin = (!begin || isNaN(begin)) ? 0 : toInt(begin); + begin = (begin < 0 && begin >= -input.length) ? input.length + begin : begin; + + if (limit >= 0) { + return input.slice(begin, begin + limit); + } else { + if (begin === 0) { + return input.slice(limit, input.length); + } else { + return input.slice(Math.max(0, begin + limit), begin); + } + } + }; +} + +/** + * @ngdoc filter + * @name orderBy + * @kind function + * + * @description + * Orders a specified `array` by the `expression` predicate. It is ordered alphabetically + * for strings and numerically for numbers. Note: if you notice numbers are not being sorted + * as expected, make sure they are actually being saved as numbers and not strings. + * + * @param {Array} array The array to sort. + * @param {function(*)|string|Array.<(function(*)|string)>=} expression A predicate to be + * used by the comparator to determine the order of elements. + * + * Can be one of: + * + * - `function`: Getter function. The result of this function will be sorted using the + * `<`, `===`, `>` operator. + * - `string`: An Angular expression. The result of this expression is used to compare elements + * (for example `name` to sort by a property called `name` or `name.substr(0, 3)` to sort by + * 3 first characters of a property called `name`). The result of a constant expression + * is interpreted as a property name to be used in comparisons (for example `"special name"` + * to sort object by the value of their `special name` property). An expression can be + * optionally prefixed with `+` or `-` to control ascending or descending sort order + * (for example, `+name` or `-name`). If no property is provided, (e.g. `'+'`) then the array + * element itself is used to compare where sorting. + * - `Array`: An array of function or string predicates. The first predicate in the array + * is used for sorting, but when two items are equivalent, the next predicate is used. + * + * If the predicate is missing or empty then it defaults to `'+'`. + * + * @param {boolean=} reverse Reverse the order of the array. + * @returns {Array} Sorted copy of the source array. + * + * + * @example + * The example below demonstrates a simple ngRepeat, where the data is sorted + * by age in descending order (predicate is set to `'-age'`). + * `reverse` is not set, which means it defaults to `false`. + + + +
    + + + + + + + + + + + +
    NamePhone NumberAge
    {{friend.name}}{{friend.phone}}{{friend.age}}
    +
    +
    +
    + * + * The predicate and reverse parameters can be controlled dynamically through scope properties, + * as shown in the next example. + * @example + + + + +
    +
    Sorting predicate = {{predicate}}; reverse = {{reverse}}
    +
    + [ unsorted ] + + + + + + + + + + + +
    + Name + + + Phone Number + + + Age + +
    {{friend.name}}{{friend.phone}}{{friend.age}}
    +
    +
    +
    + * + * It's also possible to call the orderBy filter manually, by injecting `$filter`, retrieving the + * filter routine with `$filter('orderBy')`, and calling the returned filter routine with the + * desired parameters. + * + * Example: + * + * @example + + +
    + + + + + + + + + + + +
    Name + (^)Phone NumberAge
    {{friend.name}}{{friend.phone}}{{friend.age}}
    +
    +
    + + + angular.module('orderByExample', []) + .controller('ExampleController', ['$scope', '$filter', function($scope, $filter) { + var orderBy = $filter('orderBy'); + $scope.friends = [ + { name: 'John', phone: '555-1212', age: 10 }, + { name: 'Mary', phone: '555-9876', age: 19 }, + { name: 'Mike', phone: '555-4321', age: 21 }, + { name: 'Adam', phone: '555-5678', age: 35 }, + { name: 'Julie', phone: '555-8765', age: 29 } + ]; + $scope.order = function(predicate, reverse) { + $scope.friends = orderBy($scope.friends, predicate, reverse); + }; + $scope.order('-age',false); + }]); + +
    + */ +orderByFilter.$inject = ['$parse']; +function orderByFilter($parse) { + return function(array, sortPredicate, reverseOrder) { + + if (!(isArrayLike(array))) return array; + + if (!isArray(sortPredicate)) { sortPredicate = [sortPredicate]; } + if (sortPredicate.length === 0) { sortPredicate = ['+']; } + + var predicates = processPredicates(sortPredicate, reverseOrder); + + // The next three lines are a version of a Swartzian Transform idiom from Perl + // (sometimes called the Decorate-Sort-Undecorate idiom) + // See https://en.wikipedia.org/wiki/Schwartzian_transform + var compareValues = Array.prototype.map.call(array, getComparisonObject); + compareValues.sort(doComparison); + array = compareValues.map(function(item) { return item.value; }); + + return array; + + function getComparisonObject(value, index) { + return { + value: value, + predicateValues: predicates.map(function(predicate) { + return getPredicateValue(predicate.get(value), index); + }) + }; + } + + function doComparison(v1, v2) { + var result = 0; + for (var index=0, length = predicates.length; index < length; ++index) { + result = compare(v1.predicateValues[index], v2.predicateValues[index]) * predicates[index].descending; + if (result) break; + } + return result; + } + }; + + function processPredicates(sortPredicate, reverseOrder) { + reverseOrder = reverseOrder ? -1 : 1; + return sortPredicate.map(function(predicate) { + var descending = 1, get = identity; + + if (isFunction(predicate)) { + get = predicate; + } else if (isString(predicate)) { + if ((predicate.charAt(0) == '+' || predicate.charAt(0) == '-')) { + descending = predicate.charAt(0) == '-' ? -1 : 1; + predicate = predicate.substring(1); + } + if (predicate !== '') { + get = $parse(predicate); + if (get.constant) { + var key = get(); + get = function(value) { return value[key]; }; + } + } + } + return { get: get, descending: descending * reverseOrder }; + }); + } + + function isPrimitive(value) { + switch (typeof value) { + case 'number': /* falls through */ + case 'boolean': /* falls through */ + case 'string': + return true; + default: + return false; + } + } + + function objectValue(value, index) { + // If `valueOf` is a valid function use that + if (typeof value.valueOf === 'function') { + value = value.valueOf(); + if (isPrimitive(value)) return value; + } + // If `toString` is a valid function and not the one from `Object.prototype` use that + if (hasCustomToString(value)) { + value = value.toString(); + if (isPrimitive(value)) return value; + } + // We have a basic object so we use the position of the object in the collection + return index; + } + + function getPredicateValue(value, index) { + var type = typeof value; + if (value === null) { + type = 'string'; + value = 'null'; + } else if (type === 'string') { + value = value.toLowerCase(); + } else if (type === 'object') { + value = objectValue(value, index); + } + return { value: value, type: type }; + } + + function compare(v1, v2) { + var result = 0; + if (v1.type === v2.type) { + if (v1.value !== v2.value) { + result = v1.value < v2.value ? -1 : 1; + } + } else { + result = v1.type < v2.type ? -1 : 1; + } + return result; + } +} + +function ngDirective(directive) { + if (isFunction(directive)) { + directive = { + link: directive + }; + } + directive.restrict = directive.restrict || 'AC'; + return valueFn(directive); +} + +/** + * @ngdoc directive + * @name a + * @restrict E + * + * @description + * Modifies the default behavior of the html A tag so that the default action is prevented when + * the href attribute is empty. + * + * This change permits the easy creation of action links with the `ngClick` directive + * without changing the location or causing page reloads, e.g.: + * `Add Item` + */ +var htmlAnchorDirective = valueFn({ + restrict: 'E', + compile: function(element, attr) { + if (!attr.href && !attr.xlinkHref) { + return function(scope, element) { + // If the linked element is not an anchor tag anymore, do nothing + if (element[0].nodeName.toLowerCase() !== 'a') return; + + // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute. + var href = toString.call(element.prop('href')) === '[object SVGAnimatedString]' ? + 'xlink:href' : 'href'; + element.on('click', function(event) { + // if we have no href url, then don't navigate anywhere. + if (!element.attr(href)) { + event.preventDefault(); + } + }); + }; + } + } +}); + +/** + * @ngdoc directive + * @name ngHref + * @restrict A + * @priority 99 + * + * @description + * Using Angular markup like `{{hash}}` in an href attribute will + * make the link go to the wrong URL if the user clicks it before + * Angular has a chance to replace the `{{hash}}` markup with its + * value. Until Angular replaces the markup the link will be broken + * and will most likely return a 404 error. The `ngHref` directive + * solves this problem. + * + * The wrong way to write it: + * ```html + * link1 + * ``` + * + * The correct way to write it: + * ```html + * link1 + * ``` + * + * @element A + * @param {template} ngHref any string which can contain `{{}}` markup. + * + * @example + * This example shows various combinations of `href`, `ng-href` and `ng-click` attributes + * in links and their different behaviors: + + +
    + link 1 (link, don't reload)
    + link 2 (link, don't reload)
    + link 3 (link, reload!)
    + anchor (link, don't reload)
    + anchor (no link)
    + link (link, change location) +
    + + it('should execute ng-click but not reload when href without value', function() { + element(by.id('link-1')).click(); + expect(element(by.model('value')).getAttribute('value')).toEqual('1'); + expect(element(by.id('link-1')).getAttribute('href')).toBe(''); + }); + + it('should execute ng-click but not reload when href empty string', function() { + element(by.id('link-2')).click(); + expect(element(by.model('value')).getAttribute('value')).toEqual('2'); + expect(element(by.id('link-2')).getAttribute('href')).toBe(''); + }); + + it('should execute ng-click and change url when ng-href specified', function() { + expect(element(by.id('link-3')).getAttribute('href')).toMatch(/\/123$/); + + element(by.id('link-3')).click(); + + // At this point, we navigate away from an Angular page, so we need + // to use browser.driver to get the base webdriver. + + browser.wait(function() { + return browser.driver.getCurrentUrl().then(function(url) { + return url.match(/\/123$/); + }); + }, 5000, 'page should navigate to /123'); + }); + + it('should execute ng-click but not reload when href empty string and name specified', function() { + element(by.id('link-4')).click(); + expect(element(by.model('value')).getAttribute('value')).toEqual('4'); + expect(element(by.id('link-4')).getAttribute('href')).toBe(''); + }); + + it('should execute ng-click but not reload when no href but name specified', function() { + element(by.id('link-5')).click(); + expect(element(by.model('value')).getAttribute('value')).toEqual('5'); + expect(element(by.id('link-5')).getAttribute('href')).toBe(null); + }); + + it('should only change url when only ng-href', function() { + element(by.model('value')).clear(); + element(by.model('value')).sendKeys('6'); + expect(element(by.id('link-6')).getAttribute('href')).toMatch(/\/6$/); + + element(by.id('link-6')).click(); + + // At this point, we navigate away from an Angular page, so we need + // to use browser.driver to get the base webdriver. + browser.wait(function() { + return browser.driver.getCurrentUrl().then(function(url) { + return url.match(/\/6$/); + }); + }, 5000, 'page should navigate to /6'); + }); + +
    + */ + +/** + * @ngdoc directive + * @name ngSrc + * @restrict A + * @priority 99 + * + * @description + * Using Angular markup like `{{hash}}` in a `src` attribute doesn't + * work right: The browser will fetch from the URL with the literal + * text `{{hash}}` until Angular replaces the expression inside + * `{{hash}}`. The `ngSrc` directive solves this problem. + * + * The buggy way to write it: + * ```html + * Description + * ``` + * + * The correct way to write it: + * ```html + * Description + * ``` + * + * @element IMG + * @param {template} ngSrc any string which can contain `{{}}` markup. + */ + +/** + * @ngdoc directive + * @name ngSrcset + * @restrict A + * @priority 99 + * + * @description + * Using Angular markup like `{{hash}}` in a `srcset` attribute doesn't + * work right: The browser will fetch from the URL with the literal + * text `{{hash}}` until Angular replaces the expression inside + * `{{hash}}`. The `ngSrcset` directive solves this problem. + * + * The buggy way to write it: + * ```html + * Description + * ``` + * + * The correct way to write it: + * ```html + * Description + * ``` + * + * @element IMG + * @param {template} ngSrcset any string which can contain `{{}}` markup. + */ + +/** + * @ngdoc directive + * @name ngDisabled + * @restrict A + * @priority 100 + * + * @description + * + * This directive sets the `disabled` attribute on the element if the + * {@link guide/expression expression} inside `ngDisabled` evaluates to truthy. + * + * A special directive is necessary because we cannot use interpolation inside the `disabled` + * attribute. The following example would make the button enabled on Chrome/Firefox + * but not on older IEs: + * + * ```html + * + *
    + * + *
    + * ``` + * + * This is because the HTML specification does not require browsers to preserve the values of + * boolean attributes such as `disabled` (Their presence means true and their absence means false.) + * If we put an Angular interpolation expression into such an attribute then the + * binding information would be lost when the browser removes the attribute. + * + * @example + + +
    + +
    + + it('should toggle button', function() { + expect(element(by.css('button')).getAttribute('disabled')).toBeFalsy(); + element(by.model('checked')).click(); + expect(element(by.css('button')).getAttribute('disabled')).toBeTruthy(); + }); + +
    + * + * @element INPUT + * @param {expression} ngDisabled If the {@link guide/expression expression} is truthy, + * then the `disabled` attribute will be set on the element + */ + + +/** + * @ngdoc directive + * @name ngChecked + * @restrict A + * @priority 100 + * + * @description + * Sets the `checked` attribute on the element, if the expression inside `ngChecked` is truthy. + * + * Note that this directive should not be used together with {@link ngModel `ngModel`}, + * as this can lead to unexpected behavior. + * + * ### Why do we need `ngChecked`? + * + * The HTML specification does not require browsers to preserve the values of boolean attributes + * such as checked. (Their presence means true and their absence means false.) + * If we put an Angular interpolation expression into such an attribute then the + * binding information would be lost when the browser removes the attribute. + * The `ngChecked` directive solves this problem for the `checked` attribute. + * This complementary directive is not removed by the browser and so provides + * a permanent reliable place to store the binding information. + * @example + + +
    + +
    + + it('should check both checkBoxes', function() { + expect(element(by.id('checkSlave')).getAttribute('checked')).toBeFalsy(); + element(by.model('master')).click(); + expect(element(by.id('checkSlave')).getAttribute('checked')).toBeTruthy(); + }); + +
    + * + * @element INPUT + * @param {expression} ngChecked If the {@link guide/expression expression} is truthy, + * then the `checked` attribute will be set on the element + */ + + +/** + * @ngdoc directive + * @name ngReadonly + * @restrict A + * @priority 100 + * + * @description + * The HTML specification does not require browsers to preserve the values of boolean attributes + * such as readonly. (Their presence means true and their absence means false.) + * If we put an Angular interpolation expression into such an attribute then the + * binding information would be lost when the browser removes the attribute. + * The `ngReadonly` directive solves this problem for the `readonly` attribute. + * This complementary directive is not removed by the browser and so provides + * a permanent reliable place to store the binding information. + * @example + + +
    + +
    + + it('should toggle readonly attr', function() { + expect(element(by.css('[type="text"]')).getAttribute('readonly')).toBeFalsy(); + element(by.model('checked')).click(); + expect(element(by.css('[type="text"]')).getAttribute('readonly')).toBeTruthy(); + }); + +
    + * + * @element INPUT + * @param {expression} ngReadonly If the {@link guide/expression expression} is truthy, + * then special attribute "readonly" will be set on the element + */ + + +/** + * @ngdoc directive + * @name ngSelected + * @restrict A + * @priority 100 + * + * @description + * The HTML specification does not require browsers to preserve the values of boolean attributes + * such as selected. (Their presence means true and their absence means false.) + * If we put an Angular interpolation expression into such an attribute then the + * binding information would be lost when the browser removes the attribute. + * The `ngSelected` directive solves this problem for the `selected` attribute. + * This complementary directive is not removed by the browser and so provides + * a permanent reliable place to store the binding information. + * + * @example + + +
    + +
    + + it('should select Greetings!', function() { + expect(element(by.id('greet')).getAttribute('selected')).toBeFalsy(); + element(by.model('selected')).click(); + expect(element(by.id('greet')).getAttribute('selected')).toBeTruthy(); + }); + +
    + * + * @element OPTION + * @param {expression} ngSelected If the {@link guide/expression expression} is truthy, + * then special attribute "selected" will be set on the element + */ + +/** + * @ngdoc directive + * @name ngOpen + * @restrict A + * @priority 100 + * + * @description + * The HTML specification does not require browsers to preserve the values of boolean attributes + * such as open. (Their presence means true and their absence means false.) + * If we put an Angular interpolation expression into such an attribute then the + * binding information would be lost when the browser removes the attribute. + * The `ngOpen` directive solves this problem for the `open` attribute. + * This complementary directive is not removed by the browser and so provides + * a permanent reliable place to store the binding information. + * @example + + +
    +
    + Show/Hide me +
    +
    + + it('should toggle open', function() { + expect(element(by.id('details')).getAttribute('open')).toBeFalsy(); + element(by.model('open')).click(); + expect(element(by.id('details')).getAttribute('open')).toBeTruthy(); + }); + +
    + * + * @element DETAILS + * @param {expression} ngOpen If the {@link guide/expression expression} is truthy, + * then special attribute "open" will be set on the element + */ + +var ngAttributeAliasDirectives = {}; + +// boolean attrs are evaluated +forEach(BOOLEAN_ATTR, function(propName, attrName) { + // binding to multiple is not supported + if (propName == "multiple") return; + + function defaultLinkFn(scope, element, attr) { + scope.$watch(attr[normalized], function ngBooleanAttrWatchAction(value) { + attr.$set(attrName, !!value); + }); + } + + var normalized = directiveNormalize('ng-' + attrName); + var linkFn = defaultLinkFn; + + if (propName === 'checked') { + linkFn = function(scope, element, attr) { + // ensuring ngChecked doesn't interfere with ngModel when both are set on the same input + if (attr.ngModel !== attr[normalized]) { + defaultLinkFn(scope, element, attr); + } + }; + } + + ngAttributeAliasDirectives[normalized] = function() { + return { + restrict: 'A', + priority: 100, + link: linkFn + }; + }; +}); + +// aliased input attrs are evaluated +forEach(ALIASED_ATTR, function(htmlAttr, ngAttr) { + ngAttributeAliasDirectives[ngAttr] = function() { + return { + priority: 100, + link: function(scope, element, attr) { + //special case ngPattern when a literal regular expression value + //is used as the expression (this way we don't have to watch anything). + if (ngAttr === "ngPattern" && attr.ngPattern.charAt(0) == "/") { + var match = attr.ngPattern.match(REGEX_STRING_REGEXP); + if (match) { + attr.$set("ngPattern", new RegExp(match[1], match[2])); + return; + } + } + + scope.$watch(attr[ngAttr], function ngAttrAliasWatchAction(value) { + attr.$set(ngAttr, value); + }); + } + }; + }; +}); + +// ng-src, ng-srcset, ng-href are interpolated +forEach(['src', 'srcset', 'href'], function(attrName) { + var normalized = directiveNormalize('ng-' + attrName); + ngAttributeAliasDirectives[normalized] = function() { + return { + priority: 99, // it needs to run after the attributes are interpolated + link: function(scope, element, attr) { + var propName = attrName, + name = attrName; + + if (attrName === 'href' && + toString.call(element.prop('href')) === '[object SVGAnimatedString]') { + name = 'xlinkHref'; + attr.$attr[name] = 'xlink:href'; + propName = null; + } + + attr.$observe(normalized, function(value) { + if (!value) { + if (attrName === 'href') { + attr.$set(name, null); + } + return; + } + + attr.$set(name, value); + + // on IE, if "ng:src" directive declaration is used and "src" attribute doesn't exist + // then calling element.setAttribute('src', 'foo') doesn't do anything, so we need + // to set the property as well to achieve the desired effect. + // we use attr[attrName] value since $set can sanitize the url. + if (msie && propName) element.prop(propName, attr[name]); + }); + } + }; + }; +}); + +/* global -nullFormCtrl, -SUBMITTED_CLASS, addSetValidityMethod: true + */ +var nullFormCtrl = { + $addControl: noop, + $$renameControl: nullFormRenameControl, + $removeControl: noop, + $setValidity: noop, + $setDirty: noop, + $setPristine: noop, + $setSubmitted: noop +}, +SUBMITTED_CLASS = 'ng-submitted'; + +function nullFormRenameControl(control, name) { + control.$name = name; +} + +/** + * @ngdoc type + * @name form.FormController + * + * @property {boolean} $pristine True if user has not interacted with the form yet. + * @property {boolean} $dirty True if user has already interacted with the form. + * @property {boolean} $valid True if all of the containing forms and controls are valid. + * @property {boolean} $invalid True if at least one containing control or form is invalid. + * @property {boolean} $submitted True if user has submitted the form even if its invalid. + * + * @property {Object} $error Is an object hash, containing references to controls or + * forms with failing validators, where: + * + * - keys are validation tokens (error names), + * - values are arrays of controls or forms that have a failing validator for given error name. + * + * Built-in validation tokens: + * + * - `email` + * - `max` + * - `maxlength` + * - `min` + * - `minlength` + * - `number` + * - `pattern` + * - `required` + * - `url` + * - `date` + * - `datetimelocal` + * - `time` + * - `week` + * - `month` + * + * @description + * `FormController` keeps track of all its controls and nested forms as well as the state of them, + * such as being valid/invalid or dirty/pristine. + * + * Each {@link ng.directive:form form} directive creates an instance + * of `FormController`. + * + */ +//asks for $scope to fool the BC controller module +FormController.$inject = ['$element', '$attrs', '$scope', '$animate', '$interpolate']; +function FormController(element, attrs, $scope, $animate, $interpolate) { + var form = this, + controls = []; + + var parentForm = form.$$parentForm = element.parent().controller('form') || nullFormCtrl; + + // init state + form.$error = {}; + form.$$success = {}; + form.$pending = undefined; + form.$name = $interpolate(attrs.name || attrs.ngForm || '')($scope); + form.$dirty = false; + form.$pristine = true; + form.$valid = true; + form.$invalid = false; + form.$submitted = false; + + parentForm.$addControl(form); + + /** + * @ngdoc method + * @name form.FormController#$rollbackViewValue + * + * @description + * Rollback all form controls pending updates to the `$modelValue`. + * + * Updates may be pending by a debounced event or because the input is waiting for a some future + * event defined in `ng-model-options`. This method is typically needed by the reset button of + * a form that uses `ng-model-options` to pend updates. + */ + form.$rollbackViewValue = function() { + forEach(controls, function(control) { + control.$rollbackViewValue(); + }); + }; + + /** + * @ngdoc method + * @name form.FormController#$commitViewValue + * + * @description + * Commit all form controls pending updates to the `$modelValue`. + * + * Updates may be pending by a debounced event or because the input is waiting for a some future + * event defined in `ng-model-options`. This method is rarely needed as `NgModelController` + * usually handles calling this in response to input events. + */ + form.$commitViewValue = function() { + forEach(controls, function(control) { + control.$commitViewValue(); + }); + }; + + /** + * @ngdoc method + * @name form.FormController#$addControl + * + * @description + * Register a control with the form. + * + * Input elements using ngModelController do this automatically when they are linked. + */ + form.$addControl = function(control) { + // Breaking change - before, inputs whose name was "hasOwnProperty" were quietly ignored + // and not added to the scope. Now we throw an error. + assertNotHasOwnProperty(control.$name, 'input'); + controls.push(control); + + if (control.$name) { + form[control.$name] = control; + } + }; + + // Private API: rename a form control + form.$$renameControl = function(control, newName) { + var oldName = control.$name; + + if (form[oldName] === control) { + delete form[oldName]; + } + form[newName] = control; + control.$name = newName; + }; + + /** + * @ngdoc method + * @name form.FormController#$removeControl + * + * @description + * Deregister a control from the form. + * + * Input elements using ngModelController do this automatically when they are destroyed. + */ + form.$removeControl = function(control) { + if (control.$name && form[control.$name] === control) { + delete form[control.$name]; + } + forEach(form.$pending, function(value, name) { + form.$setValidity(name, null, control); + }); + forEach(form.$error, function(value, name) { + form.$setValidity(name, null, control); + }); + forEach(form.$$success, function(value, name) { + form.$setValidity(name, null, control); + }); + + arrayRemove(controls, control); + }; + + + /** + * @ngdoc method + * @name form.FormController#$setValidity + * + * @description + * Sets the validity of a form control. + * + * This method will also propagate to parent forms. + */ + addSetValidityMethod({ + ctrl: this, + $element: element, + set: function(object, property, controller) { + var list = object[property]; + if (!list) { + object[property] = [controller]; + } else { + var index = list.indexOf(controller); + if (index === -1) { + list.push(controller); + } + } + }, + unset: function(object, property, controller) { + var list = object[property]; + if (!list) { + return; + } + arrayRemove(list, controller); + if (list.length === 0) { + delete object[property]; + } + }, + parentForm: parentForm, + $animate: $animate + }); + + /** + * @ngdoc method + * @name form.FormController#$setDirty + * + * @description + * Sets the form to a dirty state. + * + * This method can be called to add the 'ng-dirty' class and set the form to a dirty + * state (ng-dirty class). This method will also propagate to parent forms. + */ + form.$setDirty = function() { + $animate.removeClass(element, PRISTINE_CLASS); + $animate.addClass(element, DIRTY_CLASS); + form.$dirty = true; + form.$pristine = false; + parentForm.$setDirty(); + }; + + /** + * @ngdoc method + * @name form.FormController#$setPristine + * + * @description + * Sets the form to its pristine state. + * + * This method can be called to remove the 'ng-dirty' class and set the form to its pristine + * state (ng-pristine class). This method will also propagate to all the controls contained + * in this form. + * + * Setting a form back to a pristine state is often useful when we want to 'reuse' a form after + * saving or resetting it. + */ + form.$setPristine = function() { + $animate.setClass(element, PRISTINE_CLASS, DIRTY_CLASS + ' ' + SUBMITTED_CLASS); + form.$dirty = false; + form.$pristine = true; + form.$submitted = false; + forEach(controls, function(control) { + control.$setPristine(); + }); + }; + + /** + * @ngdoc method + * @name form.FormController#$setUntouched + * + * @description + * Sets the form to its untouched state. + * + * This method can be called to remove the 'ng-touched' class and set the form controls to their + * untouched state (ng-untouched class). + * + * Setting a form controls back to their untouched state is often useful when setting the form + * back to its pristine state. + */ + form.$setUntouched = function() { + forEach(controls, function(control) { + control.$setUntouched(); + }); + }; + + /** + * @ngdoc method + * @name form.FormController#$setSubmitted + * + * @description + * Sets the form to its submitted state. + */ + form.$setSubmitted = function() { + $animate.addClass(element, SUBMITTED_CLASS); + form.$submitted = true; + parentForm.$setSubmitted(); + }; +} + +/** + * @ngdoc directive + * @name ngForm + * @restrict EAC + * + * @description + * Nestable alias of {@link ng.directive:form `form`} directive. HTML + * does not allow nesting of form elements. It is useful to nest forms, for example if the validity of a + * sub-group of controls needs to be determined. + * + * Note: the purpose of `ngForm` is to group controls, + * but not to be a replacement for the `
    ` tag with all of its capabilities + * (e.g. posting to the server, ...). + * + * @param {string=} ngForm|name Name of the form. If specified, the form controller will be published into + * related scope, under this name. + * + */ + + /** + * @ngdoc directive + * @name form + * @restrict E + * + * @description + * Directive that instantiates + * {@link form.FormController FormController}. + * + * If the `name` attribute is specified, the form controller is published onto the current scope under + * this name. + * + * # Alias: {@link ng.directive:ngForm `ngForm`} + * + * In Angular, forms can be nested. This means that the outer form is valid when all of the child + * forms are valid as well. However, browsers do not allow nesting of `` elements, so + * Angular provides the {@link ng.directive:ngForm `ngForm`} directive which behaves identically to + * `` but can be nested. This allows you to have nested forms, which is very useful when + * using Angular validation directives in forms that are dynamically generated using the + * {@link ng.directive:ngRepeat `ngRepeat`} directive. Since you cannot dynamically generate the `name` + * attribute of input elements using interpolation, you have to wrap each set of repeated inputs in an + * `ngForm` directive and nest these in an outer `form` element. + * + * + * # CSS classes + * - `ng-valid` is set if the form is valid. + * - `ng-invalid` is set if the form is invalid. + * - `ng-pristine` is set if the form is pristine. + * - `ng-dirty` is set if the form is dirty. + * - `ng-submitted` is set if the form was submitted. + * + * Keep in mind that ngAnimate can detect each of these classes when added and removed. + * + * + * # Submitting a form and preventing the default action + * + * Since the role of forms in client-side Angular applications is different than in classical + * roundtrip apps, it is desirable for the browser not to translate the form submission into a full + * page reload that sends the data to the server. Instead some javascript logic should be triggered + * to handle the form submission in an application-specific way. + * + * For this reason, Angular prevents the default action (form submission to the server) unless the + * `` element has an `action` attribute specified. + * + * You can use one of the following two ways to specify what javascript method should be called when + * a form is submitted: + * + * - {@link ng.directive:ngSubmit ngSubmit} directive on the form element + * - {@link ng.directive:ngClick ngClick} directive on the first + * button or input field of type submit (input[type=submit]) + * + * To prevent double execution of the handler, use only one of the {@link ng.directive:ngSubmit ngSubmit} + * or {@link ng.directive:ngClick ngClick} directives. + * This is because of the following form submission rules in the HTML specification: + * + * - If a form has only one input field then hitting enter in this field triggers form submit + * (`ngSubmit`) + * - if a form has 2+ input fields and no buttons or input[type=submit] then hitting enter + * doesn't trigger submit + * - if a form has one or more input fields and one or more buttons or input[type=submit] then + * hitting enter in any of the input fields will trigger the click handler on the *first* button or + * input[type=submit] (`ngClick`) *and* a submit handler on the enclosing form (`ngSubmit`) + * + * Any pending `ngModelOptions` changes will take place immediately when an enclosing form is + * submitted. Note that `ngClick` events will occur before the model is updated. Use `ngSubmit` + * to have access to the updated model. + * + * ## Animation Hooks + * + * Animations in ngForm are triggered when any of the associated CSS classes are added and removed. + * These classes are: `.ng-pristine`, `.ng-dirty`, `.ng-invalid` and `.ng-valid` as well as any + * other validations that are performed within the form. Animations in ngForm are similar to how + * they work in ngClass and animations can be hooked into using CSS transitions, keyframes as well + * as JS animations. + * + * The following example shows a simple way to utilize CSS transitions to style a form element + * that has been rendered as invalid after it has been validated: + * + *
    + * //be sure to include ngAnimate as a module to hook into more
    + * //advanced animations
    + * .my-form {
    + *   transition:0.5s linear all;
    + *   background: white;
    + * }
    + * .my-form.ng-invalid {
    + *   background: red;
    + *   color:white;
    + * }
    + * 
    + * + * @example + + + + + + userType: + Required!
    + userType = {{userType}}
    + myForm.input.$valid = {{myForm.input.$valid}}
    + myForm.input.$error = {{myForm.input.$error}}
    + myForm.$valid = {{myForm.$valid}}
    + myForm.$error.required = {{!!myForm.$error.required}}
    + +
    + + it('should initialize to model', function() { + var userType = element(by.binding('userType')); + var valid = element(by.binding('myForm.input.$valid')); + + expect(userType.getText()).toContain('guest'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + var userType = element(by.binding('userType')); + var valid = element(by.binding('myForm.input.$valid')); + var userInput = element(by.model('userType')); + + userInput.clear(); + userInput.sendKeys(''); + + expect(userType.getText()).toEqual('userType ='); + expect(valid.getText()).toContain('false'); + }); + +
    + * + * @param {string=} name Name of the form. If specified, the form controller will be published into + * related scope, under this name. + */ +var formDirectiveFactory = function(isNgForm) { + return ['$timeout', function($timeout) { + var formDirective = { + name: 'form', + restrict: isNgForm ? 'EAC' : 'E', + controller: FormController, + compile: function ngFormCompile(formElement, attr) { + // Setup initial state of the control + formElement.addClass(PRISTINE_CLASS).addClass(VALID_CLASS); + + var nameAttr = attr.name ? 'name' : (isNgForm && attr.ngForm ? 'ngForm' : false); + + return { + pre: function ngFormPreLink(scope, formElement, attr, controller) { + // if `action` attr is not present on the form, prevent the default action (submission) + if (!('action' in attr)) { + // we can't use jq events because if a form is destroyed during submission the default + // action is not prevented. see #1238 + // + // IE 9 is not affected because it doesn't fire a submit event and try to do a full + // page reload if the form was destroyed by submission of the form via a click handler + // on a button in the form. Looks like an IE9 specific bug. + var handleFormSubmission = function(event) { + scope.$apply(function() { + controller.$commitViewValue(); + controller.$setSubmitted(); + }); + + event.preventDefault(); + }; + + addEventListenerFn(formElement[0], 'submit', handleFormSubmission); + + // unregister the preventDefault listener so that we don't not leak memory but in a + // way that will achieve the prevention of the default action. + formElement.on('$destroy', function() { + $timeout(function() { + removeEventListenerFn(formElement[0], 'submit', handleFormSubmission); + }, 0, false); + }); + } + + var parentFormCtrl = controller.$$parentForm; + + if (nameAttr) { + setter(scope, controller.$name, controller, controller.$name); + attr.$observe(nameAttr, function(newValue) { + if (controller.$name === newValue) return; + setter(scope, controller.$name, undefined, controller.$name); + parentFormCtrl.$$renameControl(controller, newValue); + setter(scope, controller.$name, controller, controller.$name); + }); + } + formElement.on('$destroy', function() { + parentFormCtrl.$removeControl(controller); + if (nameAttr) { + setter(scope, attr[nameAttr], undefined, controller.$name); + } + extend(controller, nullFormCtrl); //stop propagating child destruction handlers upwards + }); + } + }; + } + }; + + return formDirective; + }]; +}; + +var formDirective = formDirectiveFactory(); +var ngFormDirective = formDirectiveFactory(true); + +/* global VALID_CLASS: false, + INVALID_CLASS: false, + PRISTINE_CLASS: false, + DIRTY_CLASS: false, + UNTOUCHED_CLASS: false, + TOUCHED_CLASS: false, + $ngModelMinErr: false, +*/ + +// Regex code is obtained from SO: https://stackoverflow.com/questions/3143070/javascript-regex-iso-datetime#answer-3143231 +var ISO_DATE_REGEXP = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/; +var URL_REGEXP = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/; +var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i; +var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/; +var DATE_REGEXP = /^(\d{4})-(\d{2})-(\d{2})$/; +var DATETIMELOCAL_REGEXP = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/; +var WEEK_REGEXP = /^(\d{4})-W(\d\d)$/; +var MONTH_REGEXP = /^(\d{4})-(\d\d)$/; +var TIME_REGEXP = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/; + +var inputType = { + + /** + * @ngdoc input + * @name input[text] + * + * @description + * Standard HTML text input with angular data binding, inherited by most of the `input` elements. + * + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Adds `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of + * any length. + * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string + * that contains the regular expression body that will be converted to a regular expression + * as in the ngPattern directive. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
    + * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. + * This parameter is ignored for input[type=password] controls, which will never trim the + * input. + * + * @example + + + +
    + +
    + + Required! + + Single word only! +
    + text = {{example.text}}
    + myForm.input.$valid = {{myForm.input.$valid}}
    + myForm.input.$error = {{myForm.input.$error}}
    + myForm.$valid = {{myForm.$valid}}
    + myForm.$error.required = {{!!myForm.$error.required}}
    +
    +
    + + var text = element(by.binding('example.text')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.text')); + + it('should initialize to model', function() { + expect(text.getText()).toContain('guest'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + input.clear(); + input.sendKeys(''); + + expect(text.getText()).toEqual('text ='); + expect(valid.getText()).toContain('false'); + }); + + it('should be invalid if multi word', function() { + input.clear(); + input.sendKeys('hello world'); + + expect(valid.getText()).toContain('false'); + }); + +
    + */ + 'text': textInputType, + + /** + * @ngdoc input + * @name input[date] + * + * @description + * Input with date validation and transformation. In browsers that do not yet support + * the HTML5 date input, a text element will be used. In that case, text must be entered in a valid ISO-8601 + * date format (yyyy-MM-dd), for example: `2009-01-06`. Since many + * modern browsers do not yet support this input type, it is important to provide cues to users on the + * expected input format via a placeholder or label. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a + * valid ISO date string (yyyy-MM-dd). + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be + * a valid ISO date string (yyyy-MM-dd). + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
    + + +
    + + Required! + + Not a valid date! +
    + value = {{example.value | date: "yyyy-MM-dd"}}
    + myForm.input.$valid = {{myForm.input.$valid}}
    + myForm.input.$error = {{myForm.input.$error}}
    + myForm.$valid = {{myForm.$valid}}
    + myForm.$error.required = {{!!myForm.$error.required}}
    +
    +
    + + var value = element(by.binding('example.value | date: "yyyy-MM-dd"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (see https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('2013-10-22'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('2015-01-01'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
    + */ + 'date': createDateInputType('date', DATE_REGEXP, + createDateParser(DATE_REGEXP, ['yyyy', 'MM', 'dd']), + 'yyyy-MM-dd'), + + /** + * @ngdoc input + * @name input[datetime-local] + * + * @description + * Input with datetime validation and transformation. In browsers that do not yet support + * the HTML5 date input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * local datetime format (yyyy-MM-ddTHH:mm:ss), for example: `2010-12-28T14:57:00`. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a + * valid ISO datetime format (yyyy-MM-ddTHH:mm:ss). + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be + * a valid ISO datetime format (yyyy-MM-ddTHH:mm:ss). + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
    + + +
    + + Required! + + Not a valid date! +
    + value = {{example.value | date: "yyyy-MM-ddTHH:mm:ss"}}
    + myForm.input.$valid = {{myForm.input.$valid}}
    + myForm.input.$error = {{myForm.input.$error}}
    + myForm.$valid = {{myForm.$valid}}
    + myForm.$error.required = {{!!myForm.$error.required}}
    +
    +
    + + var value = element(by.binding('example.value | date: "yyyy-MM-ddTHH:mm:ss"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('2010-12-28T14:57:00'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('2015-01-01T23:59:00'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
    + */ + 'datetime-local': createDateInputType('datetimelocal', DATETIMELOCAL_REGEXP, + createDateParser(DATETIMELOCAL_REGEXP, ['yyyy', 'MM', 'dd', 'HH', 'mm', 'ss', 'sss']), + 'yyyy-MM-ddTHH:mm:ss.sss'), + + /** + * @ngdoc input + * @name input[time] + * + * @description + * Input with time validation and transformation. In browsers that do not yet support + * the HTML5 date input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * local time format (HH:mm:ss), for example: `14:57:00`. Model must be a Date object. This binding will always output a + * Date object to the model of January 1, 1970, or local date `new Date(1970, 0, 1, HH, mm, ss)`. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a + * valid ISO time format (HH:mm:ss). + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be a + * valid ISO time format (HH:mm:ss). + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
    + + +
    + + Required! + + Not a valid date! +
    + value = {{example.value | date: "HH:mm:ss"}}
    + myForm.input.$valid = {{myForm.input.$valid}}
    + myForm.input.$error = {{myForm.input.$error}}
    + myForm.$valid = {{myForm.$valid}}
    + myForm.$error.required = {{!!myForm.$error.required}}
    +
    +
    + + var value = element(by.binding('example.value | date: "HH:mm:ss"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('14:57:00'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('23:59:00'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
    + */ + 'time': createDateInputType('time', TIME_REGEXP, + createDateParser(TIME_REGEXP, ['HH', 'mm', 'ss', 'sss']), + 'HH:mm:ss.sss'), + + /** + * @ngdoc input + * @name input[week] + * + * @description + * Input with week-of-the-year validation and transformation to Date. In browsers that do not yet support + * the HTML5 week input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * week format (yyyy-W##), for example: `2013-W02`. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a + * valid ISO week format (yyyy-W##). + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be + * a valid ISO week format (yyyy-W##). + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
    + +
    + + Required! + + Not a valid date! +
    + value = {{example.value | date: "yyyy-Www"}}
    + myForm.input.$valid = {{myForm.input.$valid}}
    + myForm.input.$error = {{myForm.input.$error}}
    + myForm.$valid = {{myForm.$valid}}
    + myForm.$error.required = {{!!myForm.$error.required}}
    +
    +
    + + var value = element(by.binding('example.value | date: "yyyy-Www"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('2013-W01'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('2015-W01'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
    + */ + 'week': createDateInputType('week', WEEK_REGEXP, weekParser, 'yyyy-Www'), + + /** + * @ngdoc input + * @name input[month] + * + * @description + * Input with month validation and transformation. In browsers that do not yet support + * the HTML5 month input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * month format (yyyy-MM), for example: `2009-01`. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * If the model is not set to the first of the month, the next view to model update will set it + * to the first of the month. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be + * a valid ISO month format (yyyy-MM). + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must + * be a valid ISO month format (yyyy-MM). + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
    + + +
    + + Required! + + Not a valid month! +
    + value = {{example.value | date: "yyyy-MM"}}
    + myForm.input.$valid = {{myForm.input.$valid}}
    + myForm.input.$error = {{myForm.input.$error}}
    + myForm.$valid = {{myForm.$valid}}
    + myForm.$error.required = {{!!myForm.$error.required}}
    +
    +
    + + var value = element(by.binding('example.value | date: "yyyy-MM"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('2013-10'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('2015-01'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
    + */ + 'month': createDateInputType('month', MONTH_REGEXP, + createDateParser(MONTH_REGEXP, ['yyyy', 'MM']), + 'yyyy-MM'), + + /** + * @ngdoc input + * @name input[number] + * + * @description + * Text input with number validation and transformation. Sets the `number` validation + * error if not a valid number. + * + *
    + * The model must always be of type `number` otherwise Angular will throw an error. + * Be aware that a string containing a number is not enough. See the {@link ngModel:numfmt} + * error docs for more information and an example of how to convert your model if necessary. + *
    + * + * ## Issues with HTML5 constraint validation + * + * In browsers that follow the + * [HTML5 specification](https://html.spec.whatwg.org/multipage/forms.html#number-state-%28type=number%29), + * `input[number]` does not work as expected with {@link ngModelOptions `ngModelOptions.allowInvalid`}. + * If a non-number is entered in the input, the browser will report the value as an empty string, + * which means the view / model values in `ngModel` and subsequently the scope value + * will also be an empty string. + * + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of + * any length. + * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string + * that contains the regular expression body that will be converted to a regular expression + * as in the ngPattern directive. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
    + * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
    + +
    + + Required! + + Not valid number! +
    + value = {{example.value}}
    + myForm.input.$valid = {{myForm.input.$valid}}
    + myForm.input.$error = {{myForm.input.$error}}
    + myForm.$valid = {{myForm.$valid}}
    + myForm.$error.required = {{!!myForm.$error.required}}
    +
    +
    + + var value = element(by.binding('example.value')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + it('should initialize to model', function() { + expect(value.getText()).toContain('12'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + input.clear(); + input.sendKeys(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('false'); + }); + + it('should be invalid if over max', function() { + input.clear(); + input.sendKeys('123'); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('false'); + }); + +
    + */ + 'number': numberInputType, + + + /** + * @ngdoc input + * @name input[url] + * + * @description + * Text input with URL validation. Sets the `url` validation error key if the content is not a + * valid URL. + * + *
    + * **Note:** `input[url]` uses a regex to validate urls that is derived from the regex + * used in Chromium. If you need stricter validation, you can use `ng-pattern` or modify + * the built-in validators (see the {@link guide/forms Forms guide}) + *
    + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of + * any length. + * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string + * that contains the regular expression body that will be converted to a regular expression + * as in the ngPattern directive. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
    + * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
    +
    + + var text = element(by.binding('url.text')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('url.text')); + + it('should initialize to model', function() { + expect(text.getText()).toContain('http://google.com'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + input.clear(); + input.sendKeys(''); + + expect(text.getText()).toEqual('text ='); + expect(valid.getText()).toContain('false'); + }); + + it('should be invalid if not url', function() { + input.clear(); + input.sendKeys('box'); + + expect(valid.getText()).toContain('false'); + }); + +
    + */ + 'url': urlInputType, + + + /** + * @ngdoc input + * @name input[email] + * + * @description + * Text input with email validation. Sets the `email` validation error key if not a valid email + * address. + * + *
    + * **Note:** `input[email]` uses a regex to validate email addresses that is derived from the regex + * used in Chromium. If you need stricter validation (e.g. requiring a top-level domain), you can + * use `ng-pattern` or modify the built-in validators (see the {@link guide/forms Forms guide}) + *
    + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of + * any length. + * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string + * that contains the regular expression body that will be converted to a regular expression + * as in the ngPattern directive. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
    + * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
    + +
    + + Required! + + Not valid email! +
    + text = {{email.text}}
    + myForm.input.$valid = {{myForm.input.$valid}}
    + myForm.input.$error = {{myForm.input.$error}}
    + myForm.$valid = {{myForm.$valid}}
    + myForm.$error.required = {{!!myForm.$error.required}}
    + myForm.$error.email = {{!!myForm.$error.email}}
    +
    +
    + + var text = element(by.binding('email.text')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('email.text')); + + it('should initialize to model', function() { + expect(text.getText()).toContain('me@example.com'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + input.clear(); + input.sendKeys(''); + expect(text.getText()).toEqual('text ='); + expect(valid.getText()).toContain('false'); + }); + + it('should be invalid if not email', function() { + input.clear(); + input.sendKeys('xxx'); + + expect(valid.getText()).toContain('false'); + }); + +
    + */ + 'email': emailInputType, + + + /** + * @ngdoc input + * @name input[radio] + * + * @description + * HTML radio button. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string} value The value to which the `ngModel` expression should be set when selected. + * Note that `value` only supports `string` values, i.e. the scope model needs to be a string, + * too. Use `ngValue` if you need complex models (`number`, `object`, ...). + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * @param {string} ngValue Angular expression to which `ngModel` will be be set when the radio + * is selected. Should be used instead of the `value` attribute if you need + * a non-string `ngModel` (`boolean`, `array`, ...). + * + * @example + + + +
    +
    +
    +
    + color = {{color.name | json}}
    +
    + Note that `ng-value="specialValue"` sets radio item's value to be the value of `$scope.specialValue`. +
    + + it('should change state', function() { + var color = element(by.binding('color.name')); + + expect(color.getText()).toContain('blue'); + + element.all(by.model('color.name')).get(0).click(); + + expect(color.getText()).toContain('red'); + }); + +
    + */ + 'radio': radioInputType, + + + /** + * @ngdoc input + * @name input[checkbox] + * + * @description + * HTML checkbox. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {expression=} ngTrueValue The value to which the expression should be set when selected. + * @param {expression=} ngFalseValue The value to which the expression should be set when not selected. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
    +
    +
    + value1 = {{checkboxModel.value1}}
    + value2 = {{checkboxModel.value2}}
    +
    +
    + + it('should change state', function() { + var value1 = element(by.binding('checkboxModel.value1')); + var value2 = element(by.binding('checkboxModel.value2')); + + expect(value1.getText()).toContain('true'); + expect(value2.getText()).toContain('YES'); + + element(by.model('checkboxModel.value1')).click(); + element(by.model('checkboxModel.value2')).click(); + + expect(value1.getText()).toContain('false'); + expect(value2.getText()).toContain('NO'); + }); + +
    + */ + 'checkbox': checkboxInputType, + + 'hidden': noop, + 'button': noop, + 'submit': noop, + 'reset': noop, + 'file': noop +}; + +function stringBasedInputType(ctrl) { + ctrl.$formatters.push(function(value) { + return ctrl.$isEmpty(value) ? value : value.toString(); + }); +} + +function textInputType(scope, element, attr, ctrl, $sniffer, $browser) { + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + stringBasedInputType(ctrl); +} + +function baseInputType(scope, element, attr, ctrl, $sniffer, $browser) { + var type = lowercase(element[0].type); + + // In composition mode, users are still inputing intermediate text buffer, + // hold the listener until composition is done. + // More about composition events: https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent + if (!$sniffer.android) { + var composing = false; + + element.on('compositionstart', function(data) { + composing = true; + }); + + element.on('compositionend', function() { + composing = false; + listener(); + }); + } + + var listener = function(ev) { + if (timeout) { + $browser.defer.cancel(timeout); + timeout = null; + } + if (composing) return; + var value = element.val(), + event = ev && ev.type; + + // By default we will trim the value + // If the attribute ng-trim exists we will avoid trimming + // If input type is 'password', the value is never trimmed + if (type !== 'password' && (!attr.ngTrim || attr.ngTrim !== 'false')) { + value = trim(value); + } + + // If a control is suffering from bad input (due to native validators), browsers discard its + // value, so it may be necessary to revalidate (by calling $setViewValue again) even if the + // control's value is the same empty value twice in a row. + if (ctrl.$viewValue !== value || (value === '' && ctrl.$$hasNativeValidators)) { + ctrl.$setViewValue(value, event); + } + }; + + // if the browser does support "input" event, we are fine - except on IE9 which doesn't fire the + // input event on backspace, delete or cut + if ($sniffer.hasEvent('input')) { + element.on('input', listener); + } else { + var timeout; + + var deferListener = function(ev, input, origValue) { + if (!timeout) { + timeout = $browser.defer(function() { + timeout = null; + if (!input || input.value !== origValue) { + listener(ev); + } + }); + } + }; + + element.on('keydown', function(event) { + var key = event.keyCode; + + // ignore + // command modifiers arrows + if (key === 91 || (15 < key && key < 19) || (37 <= key && key <= 40)) return; + + deferListener(event, this, this.value); + }); + + // if user modifies input value using context menu in IE, we need "paste" and "cut" events to catch it + if ($sniffer.hasEvent('paste')) { + element.on('paste cut', deferListener); + } + } + + // if user paste into input using mouse on older browser + // or form autocomplete on newer browser, we need "change" event to catch it + element.on('change', listener); + + ctrl.$render = function() { + element.val(ctrl.$isEmpty(ctrl.$viewValue) ? '' : ctrl.$viewValue); + }; +} + +function weekParser(isoWeek, existingDate) { + if (isDate(isoWeek)) { + return isoWeek; + } + + if (isString(isoWeek)) { + WEEK_REGEXP.lastIndex = 0; + var parts = WEEK_REGEXP.exec(isoWeek); + if (parts) { + var year = +parts[1], + week = +parts[2], + hours = 0, + minutes = 0, + seconds = 0, + milliseconds = 0, + firstThurs = getFirstThursdayOfYear(year), + addDays = (week - 1) * 7; + + if (existingDate) { + hours = existingDate.getHours(); + minutes = existingDate.getMinutes(); + seconds = existingDate.getSeconds(); + milliseconds = existingDate.getMilliseconds(); + } + + return new Date(year, 0, firstThurs.getDate() + addDays, hours, minutes, seconds, milliseconds); + } + } + + return NaN; +} + +function createDateParser(regexp, mapping) { + return function(iso, date) { + var parts, map; + + if (isDate(iso)) { + return iso; + } + + if (isString(iso)) { + // When a date is JSON'ified to wraps itself inside of an extra + // set of double quotes. This makes the date parsing code unable + // to match the date string and parse it as a date. + if (iso.charAt(0) == '"' && iso.charAt(iso.length - 1) == '"') { + iso = iso.substring(1, iso.length - 1); + } + if (ISO_DATE_REGEXP.test(iso)) { + return new Date(iso); + } + regexp.lastIndex = 0; + parts = regexp.exec(iso); + + if (parts) { + parts.shift(); + if (date) { + map = { + yyyy: date.getFullYear(), + MM: date.getMonth() + 1, + dd: date.getDate(), + HH: date.getHours(), + mm: date.getMinutes(), + ss: date.getSeconds(), + sss: date.getMilliseconds() / 1000 + }; + } else { + map = { yyyy: 1970, MM: 1, dd: 1, HH: 0, mm: 0, ss: 0, sss: 0 }; + } + + forEach(parts, function(part, index) { + if (index < mapping.length) { + map[mapping[index]] = +part; + } + }); + return new Date(map.yyyy, map.MM - 1, map.dd, map.HH, map.mm, map.ss || 0, map.sss * 1000 || 0); + } + } + + return NaN; + }; +} + +function createDateInputType(type, regexp, parseDate, format) { + return function dynamicDateInputType(scope, element, attr, ctrl, $sniffer, $browser, $filter) { + badInputChecker(scope, element, attr, ctrl); + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + var timezone = ctrl && ctrl.$options && ctrl.$options.timezone; + var previousDate; + + ctrl.$$parserName = type; + ctrl.$parsers.push(function(value) { + if (ctrl.$isEmpty(value)) return null; + if (regexp.test(value)) { + // Note: We cannot read ctrl.$modelValue, as there might be a different + // parser/formatter in the processing chain so that the model + // contains some different data format! + var parsedDate = parseDate(value, previousDate); + if (timezone) { + parsedDate = convertTimezoneToLocal(parsedDate, timezone); + } + return parsedDate; + } + return undefined; + }); + + ctrl.$formatters.push(function(value) { + if (value && !isDate(value)) { + throw $ngModelMinErr('datefmt', 'Expected `{0}` to be a date', value); + } + if (isValidDate(value)) { + previousDate = value; + if (previousDate && timezone) { + previousDate = convertTimezoneToLocal(previousDate, timezone, true); + } + return $filter('date')(value, format, timezone); + } else { + previousDate = null; + return ''; + } + }); + + if (isDefined(attr.min) || attr.ngMin) { + var minVal; + ctrl.$validators.min = function(value) { + return !isValidDate(value) || isUndefined(minVal) || parseDate(value) >= minVal; + }; + attr.$observe('min', function(val) { + minVal = parseObservedDateValue(val); + ctrl.$validate(); + }); + } + + if (isDefined(attr.max) || attr.ngMax) { + var maxVal; + ctrl.$validators.max = function(value) { + return !isValidDate(value) || isUndefined(maxVal) || parseDate(value) <= maxVal; + }; + attr.$observe('max', function(val) { + maxVal = parseObservedDateValue(val); + ctrl.$validate(); + }); + } + + function isValidDate(value) { + // Invalid Date: getTime() returns NaN + return value && !(value.getTime && value.getTime() !== value.getTime()); + } + + function parseObservedDateValue(val) { + return isDefined(val) ? (isDate(val) ? val : parseDate(val)) : undefined; + } + }; +} + +function badInputChecker(scope, element, attr, ctrl) { + var node = element[0]; + var nativeValidation = ctrl.$$hasNativeValidators = isObject(node.validity); + if (nativeValidation) { + ctrl.$parsers.push(function(value) { + var validity = element.prop(VALIDITY_STATE_PROPERTY) || {}; + // Detect bug in FF35 for input[email] (https://bugzilla.mozilla.org/show_bug.cgi?id=1064430): + // - also sets validity.badInput (should only be validity.typeMismatch). + // - see http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#e-mail-state-(type=email) + // - can ignore this case as we can still read out the erroneous email... + return validity.badInput && !validity.typeMismatch ? undefined : value; + }); + } +} + +function numberInputType(scope, element, attr, ctrl, $sniffer, $browser) { + badInputChecker(scope, element, attr, ctrl); + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + + ctrl.$$parserName = 'number'; + ctrl.$parsers.push(function(value) { + if (ctrl.$isEmpty(value)) return null; + if (NUMBER_REGEXP.test(value)) return parseFloat(value); + return undefined; + }); + + ctrl.$formatters.push(function(value) { + if (!ctrl.$isEmpty(value)) { + if (!isNumber(value)) { + throw $ngModelMinErr('numfmt', 'Expected `{0}` to be a number', value); + } + value = value.toString(); + } + return value; + }); + + if (isDefined(attr.min) || attr.ngMin) { + var minVal; + ctrl.$validators.min = function(value) { + return ctrl.$isEmpty(value) || isUndefined(minVal) || value >= minVal; + }; + + attr.$observe('min', function(val) { + if (isDefined(val) && !isNumber(val)) { + val = parseFloat(val, 10); + } + minVal = isNumber(val) && !isNaN(val) ? val : undefined; + // TODO(matsko): implement validateLater to reduce number of validations + ctrl.$validate(); + }); + } + + if (isDefined(attr.max) || attr.ngMax) { + var maxVal; + ctrl.$validators.max = function(value) { + return ctrl.$isEmpty(value) || isUndefined(maxVal) || value <= maxVal; + }; + + attr.$observe('max', function(val) { + if (isDefined(val) && !isNumber(val)) { + val = parseFloat(val, 10); + } + maxVal = isNumber(val) && !isNaN(val) ? val : undefined; + // TODO(matsko): implement validateLater to reduce number of validations + ctrl.$validate(); + }); + } +} + +function urlInputType(scope, element, attr, ctrl, $sniffer, $browser) { + // Note: no badInputChecker here by purpose as `url` is only a validation + // in browsers, i.e. we can always read out input.value even if it is not valid! + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + stringBasedInputType(ctrl); + + ctrl.$$parserName = 'url'; + ctrl.$validators.url = function(modelValue, viewValue) { + var value = modelValue || viewValue; + return ctrl.$isEmpty(value) || URL_REGEXP.test(value); + }; +} + +function emailInputType(scope, element, attr, ctrl, $sniffer, $browser) { + // Note: no badInputChecker here by purpose as `url` is only a validation + // in browsers, i.e. we can always read out input.value even if it is not valid! + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + stringBasedInputType(ctrl); + + ctrl.$$parserName = 'email'; + ctrl.$validators.email = function(modelValue, viewValue) { + var value = modelValue || viewValue; + return ctrl.$isEmpty(value) || EMAIL_REGEXP.test(value); + }; +} + +function radioInputType(scope, element, attr, ctrl) { + // make the name unique, if not defined + if (isUndefined(attr.name)) { + element.attr('name', nextUid()); + } + + var listener = function(ev) { + if (element[0].checked) { + ctrl.$setViewValue(attr.value, ev && ev.type); + } + }; + + element.on('click', listener); + + ctrl.$render = function() { + var value = attr.value; + element[0].checked = (value == ctrl.$viewValue); + }; + + attr.$observe('value', ctrl.$render); +} + +function parseConstantExpr($parse, context, name, expression, fallback) { + var parseFn; + if (isDefined(expression)) { + parseFn = $parse(expression); + if (!parseFn.constant) { + throw minErr('ngModel')('constexpr', 'Expected constant expression for `{0}`, but saw ' + + '`{1}`.', name, expression); + } + return parseFn(context); + } + return fallback; +} + +function checkboxInputType(scope, element, attr, ctrl, $sniffer, $browser, $filter, $parse) { + var trueValue = parseConstantExpr($parse, scope, 'ngTrueValue', attr.ngTrueValue, true); + var falseValue = parseConstantExpr($parse, scope, 'ngFalseValue', attr.ngFalseValue, false); + + var listener = function(ev) { + ctrl.$setViewValue(element[0].checked, ev && ev.type); + }; + + element.on('click', listener); + + ctrl.$render = function() { + element[0].checked = ctrl.$viewValue; + }; + + // Override the standard `$isEmpty` because the $viewValue of an empty checkbox is always set to `false` + // This is because of the parser below, which compares the `$modelValue` with `trueValue` to convert + // it to a boolean. + ctrl.$isEmpty = function(value) { + return value === false; + }; + + ctrl.$formatters.push(function(value) { + return equals(value, trueValue); + }); + + ctrl.$parsers.push(function(value) { + return value ? trueValue : falseValue; + }); +} + + +/** + * @ngdoc directive + * @name textarea + * @restrict E + * + * @description + * HTML textarea element control with angular data-binding. The data-binding and validation + * properties of this element are exactly the same as those of the + * {@link ng.directive:input input element}. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any + * length. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
    + * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. + */ + + +/** + * @ngdoc directive + * @name input + * @restrict E + * + * @description + * HTML input element control. When used together with {@link ngModel `ngModel`}, it provides data-binding, + * input state control, and validation. + * Input control follows HTML5 input types and polyfills the HTML5 validation behavior for older browsers. + * + *
    + * **Note:** Not every feature offered is available for all input types. + * Specifically, data binding and event handling via `ng-model` is unsupported for `input[file]`. + *
    + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {boolean=} ngRequired Sets `required` attribute if set to true + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any + * length. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
    + * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. + * This parameter is ignored for input[type=password] controls, which will never trim the + * input. + * + * @example + + + +
    +
    + +
    + + Required! +
    + +
    + + Too short! + + Too long! +
    +
    +
    + user = {{user}}
    + myForm.userName.$valid = {{myForm.userName.$valid}}
    + myForm.userName.$error = {{myForm.userName.$error}}
    + myForm.lastName.$valid = {{myForm.lastName.$valid}}
    + myForm.lastName.$error = {{myForm.lastName.$error}}
    + myForm.$valid = {{myForm.$valid}}
    + myForm.$error.required = {{!!myForm.$error.required}}
    + myForm.$error.minlength = {{!!myForm.$error.minlength}}
    + myForm.$error.maxlength = {{!!myForm.$error.maxlength}}
    +
    +
    + + var user = element(by.exactBinding('user')); + var userNameValid = element(by.binding('myForm.userName.$valid')); + var lastNameValid = element(by.binding('myForm.lastName.$valid')); + var lastNameError = element(by.binding('myForm.lastName.$error')); + var formValid = element(by.binding('myForm.$valid')); + var userNameInput = element(by.model('user.name')); + var userLastInput = element(by.model('user.last')); + + it('should initialize to model', function() { + expect(user.getText()).toContain('{"name":"guest","last":"visitor"}'); + expect(userNameValid.getText()).toContain('true'); + expect(formValid.getText()).toContain('true'); + }); + + it('should be invalid if empty when required', function() { + userNameInput.clear(); + userNameInput.sendKeys(''); + + expect(user.getText()).toContain('{"last":"visitor"}'); + expect(userNameValid.getText()).toContain('false'); + expect(formValid.getText()).toContain('false'); + }); + + it('should be valid if empty when min length is set', function() { + userLastInput.clear(); + userLastInput.sendKeys(''); + + expect(user.getText()).toContain('{"name":"guest","last":""}'); + expect(lastNameValid.getText()).toContain('true'); + expect(formValid.getText()).toContain('true'); + }); + + it('should be invalid if less than required min length', function() { + userLastInput.clear(); + userLastInput.sendKeys('xx'); + + expect(user.getText()).toContain('{"name":"guest"}'); + expect(lastNameValid.getText()).toContain('false'); + expect(lastNameError.getText()).toContain('minlength'); + expect(formValid.getText()).toContain('false'); + }); + + it('should be invalid if longer than max length', function() { + userLastInput.clear(); + userLastInput.sendKeys('some ridiculously long name'); + + expect(user.getText()).toContain('{"name":"guest"}'); + expect(lastNameValid.getText()).toContain('false'); + expect(lastNameError.getText()).toContain('maxlength'); + expect(formValid.getText()).toContain('false'); + }); + +
    + */ +var inputDirective = ['$browser', '$sniffer', '$filter', '$parse', + function($browser, $sniffer, $filter, $parse) { + return { + restrict: 'E', + require: ['?ngModel'], + link: { + pre: function(scope, element, attr, ctrls) { + if (ctrls[0]) { + (inputType[lowercase(attr.type)] || inputType.text)(scope, element, attr, ctrls[0], $sniffer, + $browser, $filter, $parse); + } + } + } + }; +}]; + + + +var CONSTANT_VALUE_REGEXP = /^(true|false|\d+)$/; +/** + * @ngdoc directive + * @name ngValue + * + * @description + * Binds the given expression to the value of `
    + + it('should check ng-options', function() { + expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('red'); + element.all(by.model('myColor')).first().click(); + element.all(by.css('select[ng-model="myColor"] option')).first().click(); + expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('black'); + element(by.css('.nullable select[ng-model="myColor"]')).click(); + element.all(by.css('.nullable select[ng-model="myColor"] option')).first().click(); + expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('null'); + }); + + + */ + +// jshint maxlen: false +// //00001111111111000000000002222222222000000000000000000000333333333300000000000000000000000004444444444400000000000005555555555555550000000006666666666666660000000777777777777777000000000000000888888888800000000000000000009999999999 +var NG_OPTIONS_REGEXP = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/; + // 1: value expression (valueFn) + // 2: label expression (displayFn) + // 3: group by expression (groupByFn) + // 4: disable when expression (disableWhenFn) + // 5: array item variable name + // 6: object item key variable name + // 7: object item value variable name + // 8: collection expression + // 9: track by expression +// jshint maxlen: 100 + + +var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) { + + function parseOptionsExpression(optionsExp, selectElement, scope) { + + var match = optionsExp.match(NG_OPTIONS_REGEXP); + if (!(match)) { + throw ngOptionsMinErr('iexp', + "Expected expression in form of " + + "'_select_ (as _label_)? for (_key_,)?_value_ in _collection_'" + + " but got '{0}'. Element: {1}", + optionsExp, startingTag(selectElement)); + } + + // Extract the parts from the ngOptions expression + + // The variable name for the value of the item in the collection + var valueName = match[5] || match[7]; + // The variable name for the key of the item in the collection + var keyName = match[6]; + + // An expression that generates the viewValue for an option if there is a label expression + var selectAs = / as /.test(match[0]) && match[1]; + // An expression that is used to track the id of each object in the options collection + var trackBy = match[9]; + // An expression that generates the viewValue for an option if there is no label expression + var valueFn = $parse(match[2] ? match[1] : valueName); + var selectAsFn = selectAs && $parse(selectAs); + var viewValueFn = selectAsFn || valueFn; + var trackByFn = trackBy && $parse(trackBy); + + // Get the value by which we are going to track the option + // if we have a trackFn then use that (passing scope and locals) + // otherwise just hash the given viewValue + var getTrackByValueFn = trackBy ? + function(value, locals) { return trackByFn(scope, locals); } : + function getHashOfValue(value) { return hashKey(value); }; + var getTrackByValue = function(value, key) { + return getTrackByValueFn(value, getLocals(value, key)); + }; + + var displayFn = $parse(match[2] || match[1]); + var groupByFn = $parse(match[3] || ''); + var disableWhenFn = $parse(match[4] || ''); + var valuesFn = $parse(match[8]); + + var locals = {}; + var getLocals = keyName ? function(value, key) { + locals[keyName] = key; + locals[valueName] = value; + return locals; + } : function(value) { + locals[valueName] = value; + return locals; + }; + + + function Option(selectValue, viewValue, label, group, disabled) { + this.selectValue = selectValue; + this.viewValue = viewValue; + this.label = label; + this.group = group; + this.disabled = disabled; + } + + function getOptionValuesKeys(optionValues) { + var optionValuesKeys; + + if (!keyName && isArrayLike(optionValues)) { + optionValuesKeys = optionValues; + } else { + // if object, extract keys, in enumeration order, unsorted + optionValuesKeys = []; + for (var itemKey in optionValues) { + if (optionValues.hasOwnProperty(itemKey) && itemKey.charAt(0) !== '$') { + optionValuesKeys.push(itemKey); + } + } + } + return optionValuesKeys; + } + + return { + trackBy: trackBy, + getTrackByValue: getTrackByValue, + getWatchables: $parse(valuesFn, function(optionValues) { + // Create a collection of things that we would like to watch (watchedArray) + // so that they can all be watched using a single $watchCollection + // that only runs the handler once if anything changes + var watchedArray = []; + optionValues = optionValues || []; + + var optionValuesKeys = getOptionValuesKeys(optionValues); + var optionValuesLength = optionValuesKeys.length; + for (var index = 0; index < optionValuesLength; index++) { + var key = (optionValues === optionValuesKeys) ? index : optionValuesKeys[index]; + var value = optionValues[key]; + + var locals = getLocals(optionValues[key], key); + var selectValue = getTrackByValueFn(optionValues[key], locals); + watchedArray.push(selectValue); + + // Only need to watch the displayFn if there is a specific label expression + if (match[2] || match[1]) { + var label = displayFn(scope, locals); + watchedArray.push(label); + } + + // Only need to watch the disableWhenFn if there is a specific disable expression + if (match[4]) { + var disableWhen = disableWhenFn(scope, locals); + watchedArray.push(disableWhen); + } + } + return watchedArray; + }), + + getOptions: function() { + + var optionItems = []; + var selectValueMap = {}; + + // The option values were already computed in the `getWatchables` fn, + // which must have been called to trigger `getOptions` + var optionValues = valuesFn(scope) || []; + var optionValuesKeys = getOptionValuesKeys(optionValues); + var optionValuesLength = optionValuesKeys.length; + + for (var index = 0; index < optionValuesLength; index++) { + var key = (optionValues === optionValuesKeys) ? index : optionValuesKeys[index]; + var value = optionValues[key]; + var locals = getLocals(value, key); + var viewValue = viewValueFn(scope, locals); + var selectValue = getTrackByValueFn(viewValue, locals); + var label = displayFn(scope, locals); + var group = groupByFn(scope, locals); + var disabled = disableWhenFn(scope, locals); + var optionItem = new Option(selectValue, viewValue, label, group, disabled); + + optionItems.push(optionItem); + selectValueMap[selectValue] = optionItem; + } + + return { + items: optionItems, + selectValueMap: selectValueMap, + getOptionFromViewValue: function(value) { + return selectValueMap[getTrackByValue(value)]; + }, + getViewValueFromOption: function(option) { + // If the viewValue could be an object that may be mutated by the application, + // we need to make a copy and not return the reference to the value on the option. + return trackBy ? angular.copy(option.viewValue) : option.viewValue; + } + }; + } + }; + } + + + // we can't just jqLite(' + * + * + * + * {{ model }} + * + * + * angular.module('nonStringSelect', []) + * .run(function($rootScope) { + * $rootScope.model = { id: 2 }; + * }) + * .directive('convertToNumber', function() { + * return { + * require: 'ngModel', + * link: function(scope, element, attrs, ngModel) { + * ngModel.$parsers.push(function(val) { + * return parseInt(val, 10); + * }); + * ngModel.$formatters.push(function(val) { + * return '' + val; + * }); + * } + * }; + * }); + * + * + * it('should initialize to model', function() { + * var select = element(by.css('select')); + * expect(element(by.model('model.id')).$('option:checked').getText()).toEqual('Two'); + * }); + * + * + * + */ +var selectDirective = function() { + + return { + restrict: 'E', + require: ['select', '?ngModel'], + controller: SelectController, + link: function(scope, element, attr, ctrls) { + + // if ngModel is not defined, we don't need to do anything + var ngModelCtrl = ctrls[1]; + if (!ngModelCtrl) return; + + var selectCtrl = ctrls[0]; + + selectCtrl.ngModelCtrl = ngModelCtrl; + + // We delegate rendering to the `writeValue` method, which can be changed + // if the select can have multiple selected values or if the options are being + // generated by `ngOptions` + ngModelCtrl.$render = function() { + selectCtrl.writeValue(ngModelCtrl.$viewValue); + }; + + // When the selected item(s) changes we delegate getting the value of the select control + // to the `readValue` method, which can be changed if the select can have multiple + // selected values or if the options are being generated by `ngOptions` + element.on('change', function() { + scope.$apply(function() { + ngModelCtrl.$setViewValue(selectCtrl.readValue()); + }); + }); + + // If the select allows multiple values then we need to modify how we read and write + // values from and to the control; also what it means for the value to be empty and + // we have to add an extra watch since ngModel doesn't work well with arrays - it + // doesn't trigger rendering if only an item in the array changes. + if (attr.multiple) { + + // Read value now needs to check each option to see if it is selected + selectCtrl.readValue = function readMultipleValue() { + var array = []; + forEach(element.find('option'), function(option) { + if (option.selected) { + array.push(option.value); + } + }); + return array; + }; + + // Write value now needs to set the selected property of each matching option + selectCtrl.writeValue = function writeMultipleValue(value) { + var items = new HashMap(value); + forEach(element.find('option'), function(option) { + option.selected = isDefined(items.get(option.value)); + }); + }; + + // we have to do it on each watch since ngModel watches reference, but + // we need to work of an array, so we need to see if anything was inserted/removed + var lastView, lastViewRef = NaN; + scope.$watch(function selectMultipleWatch() { + if (lastViewRef === ngModelCtrl.$viewValue && !equals(lastView, ngModelCtrl.$viewValue)) { + lastView = shallowCopy(ngModelCtrl.$viewValue); + ngModelCtrl.$render(); + } + lastViewRef = ngModelCtrl.$viewValue; + }); + + // If we are a multiple select then value is now a collection + // so the meaning of $isEmpty changes + ngModelCtrl.$isEmpty = function(value) { + return !value || value.length === 0; + }; + + } + } + }; +}; + + +// The option directive is purely designed to communicate the existence (or lack of) +// of dynamically created (and destroyed) option elements to their containing select +// directive via its controller. +var optionDirective = ['$interpolate', function($interpolate) { + + function chromeHack(optionElement) { + // Workaround for https://code.google.com/p/chromium/issues/detail?id=381459 + // Adding an
  • q{4;ktRliV%a3nZ@i@WEx-6KC4pWy0PB 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 ~h4u$rks*Arylq)BXCV!?{15( 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ß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%0AtCixm4k-$PEZglXJ`7$ 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