From dffc77227ae3575c58a7d88a49e468f0bae7cd9e Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sat, 3 Dec 2016 15:24:31 -0800 Subject: [PATCH 01/21] Started on new options page --- options.css | 173 ++++++++++++++++++++++++++++++++++----------------- options.html | 88 +++++++++++++++++++------- 2 files changed, 181 insertions(+), 80 deletions(-) diff --git a/options.css b/options.css index 4095dcd..69804f0 100644 --- a/options.css +++ b/options.css @@ -1,57 +1,118 @@ * { - padding: none; - margin: none; - -moz-user-select: -moz-none; - -khtml-user-select: none; - -webkit-user-select: none; - user-select: none; -} -.panel { - margin-left: auto; - margin-right: auto; - width: 500px; - position: relative; - top: 100px; - box-shadow: 0 0 7px rgba(0,0,0,0.5); -} -.panel-body { - width: 200px; -} -.list-group-item { - width: 200px; -} -.list-group-item img { - position: relative; - top: -20px; - left: -20px; -} -h4 { - border-bottom: 2px solid black; - padding-bottom: 5px; -} - -#options { - display: inline; - float: left; - width: 200px; - -} -#sortable { - list-style-type: none; - margin: 0; - padding: 0; - width: 60%; -} -#sortable li { - margin: 0 3px 3px 3px; - padding: 1.4em; - padding-left: 1.5em; - font-size: 1.4em; - height: 25px; -} -#auto { - display: inline; - float: right; - width: 200px; - margin-left: auto; -} \ No newline at end of file + padding: 0; + margin: 0; + -moz-user-select: -moz-none; + -khtml-user-select: none; + -webkit-user-select: none; + user-select: none; +} + +#flex-group { + display: flex; + flex-direction: column; + justify-content: center; + min-height: 300px; + width: 600px; + + margin-left: auto; + margin-right: auto; + margin-top: 50px; + border-radius: 15px; + background-color: greenyellow; +} +#context-menu { + order: 1; + flex-grow: 1; + + background-color: teal; +} +.input-group { + background-color: lightyellow; + height: 10px; + margin: 0 3px 3px 3px; + padding: 1.4em; +} +.input-group-addon { + padding: 0.4em; + background-color: brown; +} + +#browser-action { + display: flex; + flex-direction: row; + order: 2; +} +#left { + flex-direction: row; + width: 200px; + flex-grow: 1; + order: 1; + + background-color: orange; +} +#right { + flex-direction: row; + width: 200px; + flex-grow: 1; + order: 2; + background-color: orangered; +} + + +.input-group { + align-items: center; +} + +h3 { + text-align: center; +} + +/*.panel {*/ + /*margin-left: auto;*/ + /*margin-right: auto;*/ + /*width: 500px;*/ + /*position: relative;*/ + /*top: 100px;*/ + /*box-shadow: 0 0 7px rgba(0,0,0,0.5);*/ +/*}*/ +/*.panel-body {*/ + /*width: 200px;*/ +/*}*/ +/*.list-group-item {*/ + /*width: 200px;*/ +/*}*/ +/*.list-group-item img {*/ + /*position: relative;*/ + /*top: -20px;*/ + /*left: -20px;*/ +/*}*/ +/*h4 {*/ + /*border-bottom: 2px solid black;*/ + /*padding-bottom: 5px;*/ +/*}*/ + +/*#options {*/ + /*display: inline;*/ + /*float: left;*/ + /*width: 200px;*/ + /**/ +/*}*/ +/*#sortable {*/ + /*list-style-type: none;*/ + /*margin: 0;*/ + /*padding: 0;*/ + /*width: 60%;*/ +/*}*/ +/*#sortable li {*/ + /*margin: 0 3px 3px 3px;*/ + /*padding: 1.4em;*/ + /*padding-left: 1.5em;*/ + /*font-size: 1.4em;*/ + /*height: 25px;*/ +/*}*/ +/*#auto {*/ + /*display: inline;*/ + /*float: right;*/ + /*width: 200px;*/ + /*margin-left: auto;*/ +/*}*/ \ No newline at end of file diff --git a/options.html b/options.html index 2f70b8b..fab7365 100644 --- a/options.html +++ b/options.html @@ -5,7 +5,7 @@ - + @@ -14,29 +14,69 @@ -
-
-

List your preferable cache databases by dragging

-
-
-
-
    -
  • -
  • -
  • -
-
-
-
-

Detect down webpage

-
-
- - - - -
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Appear in right click menu

+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+
+
+

List your preferable cache databases by dragging

+

Left stuff

+
+ +
From 416ddd2a994528927eee8f84f18611f7966f39e8 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sun, 4 Dec 2016 18:40:34 -0800 Subject: [PATCH 02/21] Added more html/css and fixed issues --- options.css | 143 +++++++++++++++++++++++++++------------------------ options.html | 85 +++++++++++++----------------- 2 files changed, 114 insertions(+), 114 deletions(-) diff --git a/options.css b/options.css index 69804f0..a1f1c46 100644 --- a/options.css +++ b/options.css @@ -5,6 +5,8 @@ -khtml-user-select: none; -webkit-user-select: none; user-select: none; + font-family: "Helvetica Neue", "Lucida Grande", sans-serif; + font-weight: 500; } #flex-group { @@ -20,21 +22,38 @@ border-radius: 15px; background-color: greenyellow; } -#context-menu { - order: 1; +.settings-wrapper { + display: flex; + flex-direction: row; flex-grow: 1; + border-radius: 10px; background-color: teal; } -.input-group { +#context-caches-wrapper { + display: flex; + flex-direction: column; + justify-content: center; + order: 1; +} +#context-menu-definition { + display: flex; + order: 1; + align-items: center; +} +.context-cache { + display: flex; background-color: lightyellow; - height: 10px; margin: 0 3px 3px 3px; - padding: 1.4em; + justify-content: flex-start; } -.input-group-addon { - padding: 0.4em; - background-color: brown; +.context-cache:nth-child(2) { + margin-top: 10px; + margin-bottom: 10px; +} +.context-cache .checkbox-wrapper { + display: flex; + align-items: center; } #browser-action { @@ -42,74 +61,66 @@ flex-direction: row; order: 2; } -#left { - flex-direction: row; - width: 200px; - flex-grow: 1; - order: 1; +/*#left {*/ + /*flex-direction: row;*/ + /*width: 200px;*/ + /*flex-grow: 1;*/ + /*order: 1;*/ - background-color: orange; -} -#right { - flex-direction: row; - width: 200px; - flex-grow: 1; - order: 2; - background-color: orangered; -} + /*background-color: orange;*/ +/*}*/ +/*#right {*/ + /*flex-direction: row;*/ + /*width: 200px;*/ + /*flex-grow: 1;*/ + /*order: 2;*/ + /*background-color: orangered;*/ +/*}*/ -.input-group { - align-items: center; +/*.input-group {*/ + /*align-items: center;*/ +/*}*/ + +.title { + background-color: #bce8f1; + color: #31708f; + border-top-left-radius: 10px; + border-top-right-radius: 10px; } h3 { text-align: center; + border-bottom-color: rgba(188,232,230,1); + border-bottom-width: 3px; } -/*.panel {*/ - /*margin-left: auto;*/ - /*margin-right: auto;*/ - /*width: 500px;*/ - /*position: relative;*/ - /*top: 100px;*/ - /*box-shadow: 0 0 7px rgba(0,0,0,0.5);*/ -/*}*/ -/*.panel-body {*/ - /*width: 200px;*/ -/*}*/ -/*.list-group-item {*/ - /*width: 200px;*/ -/*}*/ -/*.list-group-item img {*/ - /*position: relative;*/ - /*top: -20px;*/ - /*left: -20px;*/ -/*}*/ -/*h4 {*/ - /*border-bottom: 2px solid black;*/ - /*padding-bottom: 5px;*/ -/*}*/ -/*#options {*/ - /*display: inline;*/ - /*float: left;*/ - /*width: 200px;*/ - /**/ -/*}*/ -/*#sortable {*/ - /*list-style-type: none;*/ - /*margin: 0;*/ - /*padding: 0;*/ - /*width: 60%;*/ -/*}*/ -/*#sortable li {*/ - /*margin: 0 3px 3px 3px;*/ - /*padding: 1.4em;*/ - /*padding-left: 1.5em;*/ - /*font-size: 1.4em;*/ - /*height: 25px;*/ -/*}*/ + + + + +.list-group-item { + width: 200px; +} +.list-group-item img { + position: relative; + top: -20px; + left: -20px; +} +#sortable { + list-style-type: none; + margin: 0; + padding: 0; + width: 60%; +} +#sortable li { + margin: 0 3px 3px 3px; + padding: 1.4em; + padding-left: 1.5em; + font-size: 1.4em; + height: 25px; +} /*#auto {*/ /*display: inline;*/ /*float: right;*/ diff --git a/options.html b/options.html index fab7365..f2920cf 100644 --- a/options.html +++ b/options.html @@ -14,57 +14,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Appear in right click menu

-
- - - - +

Webcache Options

+
+
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
-
- - - - +
+

Select the checkboxes to add these caches to the right click context menu

+
+
+
+
+
    +
  • +
  • +
  • +
-
- - - - +
+

Please drag these caches in preferential order. When you click the Webcache button, + it will cycle through these caches until finding the current webpage.

From 4ad3e31158c707f9dd276c119a4c27c0e3cde9cb Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Mon, 5 Dec 2016 21:03:03 -0800 Subject: [PATCH 03/21] Added more styling --- options.css | 122 +++++++++++++++++++++++++++------------------------ options.html | 44 +++++++++++-------- 2 files changed, 89 insertions(+), 77 deletions(-) diff --git a/options.css b/options.css index a1f1c46..ce91167 100644 --- a/options.css +++ b/options.css @@ -19,71 +19,96 @@ margin-left: auto; margin-right: auto; margin-top: 50px; + + border: 1px solid #bce8f1; border-radius: 15px; - background-color: greenyellow; + box-shadow: 0 0 7px rgba(0,0,0,0.5); } + .settings-wrapper { display: flex; flex-direction: row; flex-grow: 1; - border-radius: 10px; - background-color: teal; + /*border-bottom: 1px;*/ + /*border-bottom-style: solid;*/ + /*border-bottom-color: #bce8f1;*/ + margin-bottom: 10px; + padding-bottom: 10px; + padding-top: 10px; } -#context-caches-wrapper { + +/*.settings-wrapper:last-child {*/ + /*border: none;*/ +/*}*/ + +.setting { display: flex; flex-direction: column; justify-content: center; order: 1; + min-width: 33%; } -#context-menu-definition { + +#setting-row { display: flex; + justify-content: center; order: 1; + min-width: 33%; + flex-direction: row; +} + +.setting-definition { + display: flex; + order: 2; align-items: center; + + border-left-style: solid; + border-left-color: #bce8f1; + border-left-width: 1px; + margin-left: 5px; + padding-left: 10px; } + .context-cache { display: flex; - background-color: lightyellow; margin: 0 3px 3px 3px; justify-content: flex-start; } + .context-cache:nth-child(2) { margin-top: 10px; margin-bottom: 10px; } + .context-cache .checkbox-wrapper { display: flex; align-items: center; } -#browser-action { - display: flex; - flex-direction: row; - order: 2; +.list-item { + background-color: white; + height: 15px; + margin: 3px 3px 3px 3px; + padding: 1.4em; + padding-left: 1.5em; + border: 1px solid #ddd; } -/*#left {*/ - /*flex-direction: row;*/ - /*width: 200px;*/ - /*flex-grow: 1;*/ - /*order: 1;*/ - - /*background-color: orange;*/ -/*}*/ -/*#right {*/ - /*flex-direction: row;*/ - /*width: 200px;*/ - /*flex-grow: 1;*/ - /*order: 2;*/ - /*background-color: orangered;*/ -/*}*/ +.list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} -/*.input-group {*/ - /*align-items: center;*/ -/*}*/ +.list-item:last-child { + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} .title { - background-color: #bce8f1; + background-color: #d9edf7; + padding-top: 5px; + padding-bottom: 5px; color: #31708f; border-top-left-radius: 10px; border-top-right-radius: 10px; @@ -95,35 +120,16 @@ h3 { border-bottom-width: 3px; } - - - - - -.list-group-item { - width: 200px; -} -.list-group-item img { - position: relative; - top: -20px; - left: -20px; +p { + padding-right: 10px; } + #sortable { list-style-type: none; - margin: 0; - padding: 0; - width: 60%; -} -#sortable li { - margin: 0 3px 3px 3px; - padding: 1.4em; - padding-left: 1.5em; - font-size: 1.4em; - height: 25px; -} -/*#auto {*/ - /*display: inline;*/ - /*float: right;*/ - /*width: 200px;*/ - /*margin-left: auto;*/ -/*}*/ \ No newline at end of file + margin: 0px; + padding: 0px; +} + +span { + padding-left: 10px; +} \ No newline at end of file diff --git a/options.html b/options.html index f2920cf..564fc3f 100644 --- a/options.html +++ b/options.html @@ -15,9 +15,9 @@
-

Webcache Options

+

WebCache Options

-
+
@@ -39,31 +39,37 @@

Webcache Options

-
+

Select the checkboxes to add these caches to the right click context menu

-
-
-
    -
  • -
  • -
  • +
    +
    +
      +
    • +
    • +
    -
    -

    Please drag these caches in preferential order. When you click the Webcache button, - it will cycle through these caches until finding the current webpage.

    +
    +

    Drag these caches in preferential order. When you click the WebCache button, + it will cycle through these caches until finding the current web page.

    -
    -
    -

    List your preferable cache databases by dragging

    -

    Left stuff

    +
    +
    + + + + + + + +
    -
    From 787f4b6779a5fbad01504724934964812ca499a2 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Tue, 6 Dec 2016 21:49:26 -0800 Subject: [PATCH 04/21] Fixed spacing --- bootstrap.min.css | 5 ----- options.css | 34 ++++++++++++++++++++++------------ options.html | 17 +++++++---------- 3 files changed, 29 insertions(+), 27 deletions(-) delete mode 100644 bootstrap.min.css diff --git a/bootstrap.min.css b/bootstrap.min.css deleted file mode 100644 index 4af8905..0000000 --- a/bootstrap.min.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Bootstrap v3.3.0 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}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}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:before,:after{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,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;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}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}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px;line-height:1.42857143 \0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px;line-height:1.5 \0}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px;line-height:1.33 \0}_:-ms-fullscreen,:root input[type=date],_:-ms-fullscreen,:root input[type=time],_:-ms-fullscreen,:root input[type=datetime-local],_:-ms-fullscreen,:root input[type=month]{line-height:1.42857143}_:-ms-fullscreen.input-sm,:root input[type=date].input-sm,_:-ms-fullscreen.input-sm,:root input[type=time].input-sm,_:-ms-fullscreen.input-sm,:root input[type=datetime-local].input-sm,_:-ms-fullscreen.input-sm,:root input[type=month].input-sm{line-height:1.5}_:-ms-fullscreen.input-lg,:root input[type=date].input-lg,_:-ms-fullscreen.input-lg,:root input[type=time].input-lg,_:-ms-fullscreen.input-lg,:root input[type=datetime-local].input-lg,_:-ms-fullscreen.input-lg,:root input[type=month].input-lg{line-height:1.33}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,select.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,textarea.form-group-sm .form-control,select[multiple].input-sm,select[multiple].form-group-sm .form-control{height:auto}.input-lg,.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,select.form-group-lg .form-control{height:46px;line-height:46px}textarea.input-lg,textarea.form-group-lg .form-control,select[multiple].input-lg,select[multiple].form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#428bca;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;visibility:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#428bca;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-right:15px;padding-left:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/options.css b/options.css index ce91167..1e4f41c 100644 --- a/options.css +++ b/options.css @@ -30,17 +30,14 @@ flex-direction: row; flex-grow: 1; - /*border-bottom: 1px;*/ - /*border-bottom-style: solid;*/ - /*border-bottom-color: #bce8f1;*/ margin-bottom: 10px; padding-bottom: 10px; padding-top: 10px; } -/*.settings-wrapper:last-child {*/ - /*border: none;*/ -/*}*/ +.settings-wrapper:last-child { + padding-bottom: 20px; +} .setting { display: flex; @@ -48,14 +45,20 @@ justify-content: center; order: 1; min-width: 33%; + padding-left: 20px; + padding-right: 20px; } #setting-row { display: flex; + flex-direction: row; justify-content: center; + align-items: center; order: 1; + min-width: 33%; - flex-direction: row; + padding-left: 20px; + padding-right: 20px; } .setting-definition { @@ -67,7 +70,8 @@ border-left-color: #bce8f1; border-left-width: 1px; margin-left: 5px; - padding-left: 10px; + padding-left: 25px; + padding-right: 20px; } .context-cache { @@ -88,10 +92,11 @@ .list-item { background-color: white; - height: 15px; + /*height: 15px;*/ margin: 3px 3px 3px 3px; - padding: 1.4em; - padding-left: 1.5em; + /*padding: 1.4em;*/ + /*padding-left: 1.5em;*/ + padding: 10px; border: 1px solid #ddd; } @@ -105,6 +110,10 @@ border-bottom-left-radius: 4px; } +.list-item img { + min-width: 165px; +} + .title { background-color: #d9edf7; padding-top: 5px; @@ -130,6 +139,7 @@ p { padding: 0px; } -span { +.radio-wrapper { padding-left: 10px; + height: 20px; } \ No newline at end of file diff --git a/options.html b/options.html index 564fc3f..6ccd549 100644 --- a/options.html +++ b/options.html @@ -3,9 +3,6 @@ WebCache Options - - - @@ -46,9 +43,9 @@

    WebCache Options

      -
    • -
    • -
    • +
    • +
    • +
    @@ -58,14 +55,14 @@

    WebCache Options

    - +
    - - +
    +
    - +

    Would you like for WebCache to automatically detect when a web page is down and From 1f151a57830968e101a0551f1b8742a23a1da1db Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Wed, 7 Dec 2016 22:16:36 -0800 Subject: [PATCH 05/21] On off toggle instead of radio buttons --- options.css | 67 +++++++++++++++++++++++++++++++++++++++++++++++++--- options.html | 13 +++++----- 2 files changed, 70 insertions(+), 10 deletions(-) diff --git a/options.css b/options.css index 1e4f41c..4b48773 100644 --- a/options.css +++ b/options.css @@ -78,6 +78,7 @@ display: flex; margin: 0 3px 3px 3px; justify-content: flex-start; + cursor: hand; } .context-cache:nth-child(2) { @@ -90,14 +91,20 @@ align-items: center; } +.checkbox { + cursor: hand; +} + .list-item { background-color: white; - /*height: 15px;*/ margin: 3px 3px 3px 3px; - /*padding: 1.4em;*/ - /*padding-left: 1.5em;*/ padding: 10px; border: 1px solid #ddd; + cursor: hand; +} + +.list-item:active { + cursor: -webkit-grabbing; } .list-item:first-child { @@ -142,4 +149,58 @@ p { .radio-wrapper { padding-left: 10px; height: 20px; +} + +.checkbox { + height: 24px; + width: 24px; +} + +/* TOGGLE CSS */ +/*---------------------------*/ + +.onoffswitch { + position: relative; width: 88px; + -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none; +} +.onoffswitch-checkbox { + display: none; +} +.onoffswitch-label { + display: block; overflow: hidden; cursor: pointer; + border: 2px solid #A1A1A1; border-radius: 22px; +} +.onoffswitch-inner { + display: block; width: 200%; margin-left: -100%; + transition: margin 0.3s ease-in 0s; +} +.onoffswitch-inner:before, .onoffswitch-inner:after { + display: block; float: left; width: 50%; height: 36px; padding: 0; line-height: 36px; + font-size: 16px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold; + box-sizing: border-box; +} +.onoffswitch-inner:before { + content: "ON"; + padding-left: 10px; + background-color: #31708F; color: #D9EDF7; +} +.onoffswitch-inner:after { + content: "OFF"; + padding-right: 10px; + background-color: #D9EDF7; color: #31708F; + text-align: right; +} +.onoffswitch-switch { + display: block; width: 36px; margin: 0px; + background: #FFFFFF; + position: absolute; top: 0; bottom: 0; + right: 48px; + border: 2px solid #A1A1A1; border-radius: 22px; + transition: all 0.3s ease-in 0s; +} +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { + margin-left: 0; +} +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { + right: 0px; } \ No newline at end of file diff --git a/options.html b/options.html index 6ccd549..d7defb2 100644 --- a/options.html +++ b/options.html @@ -55,13 +55,12 @@

    WebCache Options

    -
    - - -
    -
    - - +
    + +
    From b59ae11e7e0e925cbaa2faa9a6bfeb5d9f5700a6 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Thu, 8 Dec 2016 17:01:53 -0800 Subject: [PATCH 06/21] New javascript for new toggle --- options.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/options.js b/options.js index c43eae2..09fafc7 100644 --- a/options.js +++ b/options.js @@ -38,8 +38,11 @@ $("#sortable").sortable({ } }); -$(":radio").click(function(button) { - chrome.storage.sync.set({'auto-detect': button.target.id}, function() { console.log("Saved Auto-Detect Preferences"); }); +$("#myonoffswitch").click(function(button) { // Save auto-detect settings + chrome.storage.sync.set({'auto-detect': button.target.id}, function() { + console.log("Saved Auto-Detect Preferences"); + }); +}); }); $("#sortable").disableSelection(); From 794844a305b7343f3919fe23f9a65eff61a27cb4 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sat, 10 Dec 2016 17:33:18 -0800 Subject: [PATCH 07/21] Created checkbox buttons Improved selectable New color scheme --- options.css | 69 +++++++++++++++++++++++++++++----------------------- options.html | 24 +++++++----------- 2 files changed, 48 insertions(+), 45 deletions(-) diff --git a/options.css b/options.css index 4b48773..b66adbe 100644 --- a/options.css +++ b/options.css @@ -20,7 +20,7 @@ margin-right: auto; margin-top: 50px; - border: 1px solid #bce8f1; + border: 1px solid #979C9C; border-radius: 15px; box-shadow: 0 0 7px rgba(0,0,0,0.5); } @@ -66,8 +66,9 @@ order: 2; align-items: center; + color: #DA727E; border-left-style: solid; - border-left-color: #bce8f1; + border-left-color: #FFBC67; border-left-width: 1px; margin-left: 5px; padding-left: 25px; @@ -76,67 +77,75 @@ .context-cache { display: flex; - margin: 0 3px 3px 3px; + /*margin: 0 3px 3px 3px;*/ justify-content: flex-start; cursor: hand; } -.context-cache:nth-child(2) { - margin-top: 10px; - margin-bottom: 10px; -} - .context-cache .checkbox-wrapper { display: flex; align-items: center; } -.checkbox { +.context-menu-label { + background-color: white; + margin: 3px 3px 3px 3px; + padding: 10px; + border: 1px solid #ddd; + border-radius: 22px; + text-align: center; + color: #455C7B; + width: 100%; cursor: hand; + + transition: all 0.3s ease-in 0s; +} + +input:checked + .context-menu-label { + background-color: #455C7B; + color: white; +} + +.checkbox { + display: none; } .list-item { - background-color: white; + background-color: #455C7B; margin: 3px 3px 3px 3px; padding: 10px; border: 1px solid #ddd; cursor: hand; + border-radius: 22px; + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2); } .list-item:active { cursor: -webkit-grabbing; } -.list-item:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} - -.list-item:last-child { - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} - -.list-item img { - min-width: 165px; +.list-item p { + text-align: center; + color: #DA727E; } .title { - background-color: #d9edf7; + background-color: #685C79; padding-top: 5px; padding-bottom: 5px; - color: #31708f; + color: white; border-top-left-radius: 10px; border-top-right-radius: 10px; } h3 { text-align: center; - border-bottom-color: rgba(188,232,230,1); + border-bottom-color: #343642; border-bottom-width: 3px; } -p { +.setting-definition p { + color: #685C79; padding-right: 10px; } @@ -168,7 +177,7 @@ p { } .onoffswitch-label { display: block; overflow: hidden; cursor: pointer; - border: 2px solid #A1A1A1; border-radius: 22px; + border: 2px solid #685C79; border-radius: 22px; } .onoffswitch-inner { display: block; width: 200%; margin-left: -100%; @@ -182,12 +191,12 @@ p { .onoffswitch-inner:before { content: "ON"; padding-left: 10px; - background-color: #31708F; color: #D9EDF7; + background-color: #FFBC67; color: #DA727E; } .onoffswitch-inner:after { content: "OFF"; padding-right: 10px; - background-color: #D9EDF7; color: #31708F; + background-color: #DA727E; color: #FFBC67; text-align: right; } .onoffswitch-switch { @@ -195,7 +204,7 @@ p { background: #FFFFFF; position: absolute; top: 0; bottom: 0; right: 48px; - border: 2px solid #A1A1A1; border-radius: 22px; + border: 2px solid #685C79; border-radius: 22px; transition: all 0.3s ease-in 0s; } .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { diff --git a/options.html b/options.html index d7defb2..768492d 100644 --- a/options.html +++ b/options.html @@ -16,24 +16,18 @@

    WebCache Options

    -
    - -
    - + +
    -
    - -
    - + +
    -
    - -
    - + +
    @@ -43,9 +37,9 @@

    WebCache Options

      -
    • -
    • -
    • +
    • Google Cache

    • +
    • Wayback Machine

    • +
    • Coral CDN

    From 8ef3c173109a64c9aea584a5cb1f31f2dd13ae0f Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sun, 11 Dec 2016 21:29:23 -0800 Subject: [PATCH 08/21] Better sortable grabbing Minor ui tweaks --- jQuery/jquery-ui-1.12.1.custom/jquery-ui.js | 3692 +++++++++++++++++ .../jquery-ui-1.12.1.custom/jquery-ui.min.css | 7 + .../jquery-ui-1.12.1.custom/jquery-ui.min.js | 7 + jQuery/ui-icons_455C7B_256x240.png | Bin 0 -> 4549 bytes jQuery/ui-icons_DA727E_256x240.png | Bin 0 -> 4549 bytes jQuery/ui-icons_ffffff_256x240.png | Bin 0 -> 6299 bytes options.css | 31 +- options.html | 25 +- 8 files changed, 3747 insertions(+), 15 deletions(-) create mode 100644 jQuery/jquery-ui-1.12.1.custom/jquery-ui.js create mode 100644 jQuery/jquery-ui-1.12.1.custom/jquery-ui.min.css create mode 100644 jQuery/jquery-ui-1.12.1.custom/jquery-ui.min.js create mode 100644 jQuery/ui-icons_455C7B_256x240.png create mode 100644 jQuery/ui-icons_DA727E_256x240.png create mode 100644 jQuery/ui-icons_ffffff_256x240.png diff --git a/jQuery/jquery-ui-1.12.1.custom/jquery-ui.js b/jQuery/jquery-ui-1.12.1.custom/jquery-ui.js new file mode 100644 index 0000000..67de798 --- /dev/null +++ b/jQuery/jquery-ui-1.12.1.custom/jquery-ui.js @@ -0,0 +1,3692 @@ +/*! jQuery UI - v1.12.1 - 2016-12-12 +* http://jqueryui.com +* Includes: widget.js, data.js, disable-selection.js, form-reset-mixin.js, keycode.js, labels.js, scroll-parent.js, widgets/sortable.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/mouse.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "jquery" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}(function( $ ) { + +$.ui = $.ui || {}; + +var version = $.ui.version = "1.12.1"; + + +/*! + * jQuery UI Widget 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Widget +//>>group: Core +//>>description: Provides a factory for creating stateful widgets with a common API. +//>>docs: http://api.jqueryui.com/jQuery.widget/ +//>>demos: http://jqueryui.com/widget/ + + + +var widgetUuid = 0; +var widgetSlice = Array.prototype.slice; + +$.cleanData = ( function( orig ) { + return function( elems ) { + var events, elem, i; + for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) { + try { + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + + // Http://bugs.jquery.com/ticket/8235 + } catch ( e ) {} + } + orig( elems ); + }; +} )( $.cleanData ); + +$.widget = function( name, base, prototype ) { + var existingConstructor, constructor, basePrototype; + + // ProxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + var proxiedPrototype = {}; + + var namespace = name.split( "." )[ 0 ]; + name = name.split( "." )[ 1 ]; + var fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + if ( $.isArray( prototype ) ) { + prototype = $.extend.apply( null, [ {} ].concat( prototype ) ); + } + + // Create selector for plugin + $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + + // Allow instantiation without "new" keyword + if ( !this._createWidget ) { + return new constructor( options, element ); + } + + // Allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + + // Extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + + // Copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + + // Track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + } ); + + basePrototype = new base(); + + // We need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( !$.isFunction( value ) ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = ( function() { + function _super() { + return base.prototype[ prop ].apply( this, arguments ); + } + + function _superApply( args ) { + return base.prototype[ prop ].apply( this, args ); + } + + return function() { + var __super = this._super; + var __superApply = this._superApply; + var returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + } )(); + } ); + constructor.prototype = $.widget.extend( basePrototype, { + + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + } ); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // Redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, + child._proto ); + } ); + + // Remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); + + return constructor; +}; + +$.widget.extend = function( target ) { + var input = widgetSlice.call( arguments, 1 ); + var inputIndex = 0; + var inputLength = input.length; + var key; + var value; + + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string"; + var args = widgetSlice.call( arguments, 1 ); + var returnValue = this; + + if ( isMethodCall ) { + + // If this is an empty collection, we need to have the instance method + // return undefined instead of the jQuery instance + if ( !this.length && options === "instance" ) { + returnValue = undefined; + } else { + this.each( function() { + var methodValue; + var instance = $.data( this, fullName ); + + if ( options === "instance" ) { + returnValue = instance; + return false; + } + + if ( !instance ) { + return $.error( "cannot call methods on " + name + + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + + if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + + " widget instance" ); + } + + methodValue = instance[ options ].apply( instance, args ); + + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + } ); + } + } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat( args ) ); + } + + this.each( function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } + } else { + $.data( this, fullName, new object( options, this ) ); + } + } ); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "
    ", + + options: { + classes: {}, + disabled: false, + + // Callbacks + create: null + }, + + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = widgetUuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + this.classesElementLookup = {}; + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + } ); + this.document = $( element.style ? + + // Element within the document + element.ownerDocument : + + // Element is window or document + element.document || element ); + this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow ); + } + + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this._create(); + + if ( this.options.disabled ) { + this._setOptionDisabled( this.options.disabled ); + } + + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + + _getCreateOptions: function() { + return {}; + }, + + _getCreateEventData: $.noop, + + _create: $.noop, + + _init: $.noop, + + destroy: function() { + var that = this; + + this._destroy(); + $.each( this.classesElementLookup, function( key, value ) { + that._removeClass( value, key ); + } ); + + // We can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .off( this.eventNamespace ) + .removeData( this.widgetFullName ); + this.widget() + .off( this.eventNamespace ) + .removeAttr( "aria-disabled" ); + + // Clean up events and states + this.bindings.off( this.eventNamespace ); + }, + + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key; + var parts; + var curOption; + var i; + + if ( arguments.length === 0 ) { + + // Don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + + // Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + + _setOption: function( key, value ) { + if ( key === "classes" ) { + this._setOptionClasses( value ); + } + + this.options[ key ] = value; + + if ( key === "disabled" ) { + this._setOptionDisabled( value ); + } + + return this; + }, + + _setOptionClasses: function( value ) { + var classKey, elements, currentElements; + + for ( classKey in value ) { + currentElements = this.classesElementLookup[ classKey ]; + if ( value[ classKey ] === this.options.classes[ classKey ] || + !currentElements || + !currentElements.length ) { + continue; + } + + // We are doing this to create a new jQuery object because the _removeClass() call + // on the next line is going to destroy the reference to the current elements being + // tracked. We need to save a copy of this collection so that we can add the new classes + // below. + elements = $( currentElements.get() ); + this._removeClass( currentElements, classKey ); + + // We don't use _addClass() here, because that uses this.options.classes + // for generating the string of classes. We want to use the value passed in from + // _setOption(), this is the new value of the classes option which was passed to + // _setOption(). We pass this value directly to _classes(). + elements.addClass( this._classes( { + element: elements, + keys: classKey, + classes: value, + add: true + } ) ); + } + }, + + _setOptionDisabled: function( value ) { + this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value ); + + // If the widget is becoming disabled, then nothing is interactive + if ( value ) { + this._removeClass( this.hoverable, null, "ui-state-hover" ); + this._removeClass( this.focusable, null, "ui-state-focus" ); + } + }, + + enable: function() { + return this._setOptions( { disabled: false } ); + }, + + disable: function() { + return this._setOptions( { disabled: true } ); + }, + + _classes: function( options ) { + var full = []; + var that = this; + + options = $.extend( { + element: this.element, + classes: this.options.classes || {} + }, options ); + + function processClassString( classes, checkOption ) { + var current, i; + for ( i = 0; i < classes.length; i++ ) { + current = that.classesElementLookup[ classes[ i ] ] || $(); + if ( options.add ) { + current = $( $.unique( current.get().concat( options.element.get() ) ) ); + } else { + current = $( current.not( options.element ).get() ); + } + that.classesElementLookup[ classes[ i ] ] = current; + full.push( classes[ i ] ); + if ( checkOption && options.classes[ classes[ i ] ] ) { + full.push( options.classes[ classes[ i ] ] ); + } + } + } + + this._on( options.element, { + "remove": "_untrackClassesElement" + } ); + + if ( options.keys ) { + processClassString( options.keys.match( /\S+/g ) || [], true ); + } + if ( options.extra ) { + processClassString( options.extra.match( /\S+/g ) || [] ); + } + + return full.join( " " ); + }, + + _untrackClassesElement: function( event ) { + var that = this; + $.each( that.classesElementLookup, function( key, value ) { + if ( $.inArray( event.target, value ) !== -1 ) { + that.classesElementLookup[ key ] = $( value.not( event.target ).get() ); + } + } ); + }, + + _removeClass: function( element, keys, extra ) { + return this._toggleClass( element, keys, extra, false ); + }, + + _addClass: function( element, keys, extra ) { + return this._toggleClass( element, keys, extra, true ); + }, + + _toggleClass: function( element, keys, extra, add ) { + add = ( typeof add === "boolean" ) ? add : extra; + var shift = ( typeof element === "string" || element === null ), + options = { + extra: shift ? keys : extra, + keys: shift ? element : keys, + element: shift ? this.element : element, + add: add + }; + options.element.toggleClass( this._classes( options ), add ); + return this; + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement; + var instance = this; + + // No suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // No element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + + // Allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // Copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^([\w:-]*)\s*(.*)$/ ); + var eventName = match[ 1 ] + instance.eventNamespace; + var selector = match[ 2 ]; + + if ( selector ) { + delegateElement.on( eventName, selector, handlerProxy ); + } else { + element.on( eventName, handlerProxy ); + } + } ); + }, + + _off: function( element, eventName ) { + eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; + element.off( eventName ).off( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + this._addClass( $( event.currentTarget ), null, "ui-state-hover" ); + }, + mouseleave: function( event ) { + this._removeClass( $( event.currentTarget ), null, "ui-state-hover" ); + } + } ); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + this._addClass( $( event.currentTarget ), null, "ui-state-focus" ); + }, + focusout: function( event ) { + this._removeClass( $( event.currentTarget ), null, "ui-state-focus" ); + } + } ); + }, + + _trigger: function( type, event, data ) { + var prop, orig; + var callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + + // The original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // Copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( $.isFunction( callback ) && + callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + + var hasOptions; + var effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } + + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + + if ( options.delay ) { + element.delay( options.delay ); + } + + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue( function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + } ); + } + }; +} ); + +var widget = $.widget; + + +/*! + * jQuery UI :data 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: :data Selector +//>>group: Core +//>>description: Selects elements which have data stored under the specified key. +//>>docs: http://api.jqueryui.com/data-selector/ + + +var data = $.extend( $.expr[ ":" ], { + data: $.expr.createPseudo ? + $.expr.createPseudo( function( dataName ) { + return function( elem ) { + return !!$.data( elem, dataName ); + }; + } ) : + + // Support: jQuery <1.8 + function( elem, i, match ) { + return !!$.data( elem, match[ 3 ] ); + } +} ); + +/*! + * jQuery UI Disable Selection 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: disableSelection +//>>group: Core +//>>description: Disable selection of text content within the set of matched elements. +//>>docs: http://api.jqueryui.com/disableSelection/ + +// This file is deprecated + + +var disableSelection = $.fn.extend( { + disableSelection: ( function() { + var eventType = "onselectstart" in document.createElement( "div" ) ? + "selectstart" : + "mousedown"; + + return function() { + return this.on( eventType + ".ui-disableSelection", function( event ) { + event.preventDefault(); + } ); + }; + } )(), + + enableSelection: function() { + return this.off( ".ui-disableSelection" ); + } +} ); + + + + +// Support: IE8 Only +// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop +// with a string, so we need to find the proper form. +var form = $.fn.form = function() { + return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form ); +}; + + +/*! + * jQuery UI Form Reset Mixin 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Form Reset Mixin +//>>group: Core +//>>description: Refresh input widgets when their form is reset +//>>docs: http://api.jqueryui.com/form-reset-mixin/ + + + +var formResetMixin = $.ui.formResetMixin = { + _formResetHandler: function() { + var form = $( this ); + + // Wait for the form reset to actually happen before refreshing + setTimeout( function() { + var instances = form.data( "ui-form-reset-instances" ); + $.each( instances, function() { + this.refresh(); + } ); + } ); + }, + + _bindFormResetHandler: function() { + this.form = this.element.form(); + if ( !this.form.length ) { + return; + } + + var instances = this.form.data( "ui-form-reset-instances" ) || []; + if ( !instances.length ) { + + // We don't use _on() here because we use a single event handler per form + this.form.on( "reset.ui-form-reset", this._formResetHandler ); + } + instances.push( this ); + this.form.data( "ui-form-reset-instances", instances ); + }, + + _unbindFormResetHandler: function() { + if ( !this.form.length ) { + return; + } + + var instances = this.form.data( "ui-form-reset-instances" ); + instances.splice( $.inArray( this, instances ), 1 ); + if ( instances.length ) { + this.form.data( "ui-form-reset-instances", instances ); + } else { + this.form + .removeData( "ui-form-reset-instances" ) + .off( "reset.ui-form-reset" ); + } + } +}; + + +/*! + * jQuery UI Keycode 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Keycode +//>>group: Core +//>>description: Provide keycodes as keynames +//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/ + + +var keycode = $.ui.keyCode = { + BACKSPACE: 8, + COMMA: 188, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + LEFT: 37, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SPACE: 32, + TAB: 9, + UP: 38 +}; + + + + +// Internal use only +var escapeSelector = $.ui.escapeSelector = ( function() { + var selectorEscape = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g; + return function( selector ) { + return selector.replace( selectorEscape, "\\$1" ); + }; +} )(); + + +/*! + * jQuery UI Labels 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: labels +//>>group: Core +//>>description: Find all the labels associated with a given input +//>>docs: http://api.jqueryui.com/labels/ + + + +var labels = $.fn.labels = function() { + var ancestor, selector, id, labels, ancestors; + + // Check control.labels first + if ( this[ 0 ].labels && this[ 0 ].labels.length ) { + return this.pushStack( this[ 0 ].labels ); + } + + // Support: IE <= 11, FF <= 37, Android <= 2.3 only + // Above browsers do not support control.labels. Everything below is to support them + // as well as document fragments. control.labels does not work on document fragments + labels = this.eq( 0 ).parents( "label" ); + + // Look for the label based on the id + id = this.attr( "id" ); + if ( id ) { + + // We don't search against the document in case the element + // is disconnected from the DOM + ancestor = this.eq( 0 ).parents().last(); + + // Get a full set of top level ancestors + ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() ); + + // Create a selector for the label based on the id + selector = "label[for='" + $.ui.escapeSelector( id ) + "']"; + + labels = labels.add( ancestors.find( selector ).addBack( selector ) ); + + } + + // Return whatever we have found for labels + return this.pushStack( labels ); +}; + + +/*! + * jQuery UI Scroll Parent 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: scrollParent +//>>group: Core +//>>description: Get the closest ancestor element that is scrollable. +//>>docs: http://api.jqueryui.com/scrollParent/ + + + +var scrollParent = $.fn.scrollParent = function( includeHidden ) { + var position = this.css( "position" ), + excludeStaticParent = position === "absolute", + overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/, + scrollParent = this.parents().filter( function() { + var parent = $( this ); + if ( excludeStaticParent && parent.css( "position" ) === "static" ) { + return false; + } + return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + + parent.css( "overflow-x" ) ); + } ).eq( 0 ); + + return position === "fixed" || !scrollParent.length ? + $( this[ 0 ].ownerDocument || document ) : + scrollParent; +}; + + + + +// This file is deprecated +var ie = $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); + +/*! + * jQuery UI Mouse 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Mouse +//>>group: Widgets +//>>description: Abstracts mouse-based interactions to assist in creating certain widgets. +//>>docs: http://api.jqueryui.com/mouse/ + + + +var mouseHandled = false; +$( document ).on( "mouseup", function() { + mouseHandled = false; +} ); + +var widgetsMouse = $.widget( "ui.mouse", { + version: "1.12.1", + options: { + cancel: "input, textarea, button, select, option", + distance: 1, + delay: 0 + }, + _mouseInit: function() { + var that = this; + + this.element + .on( "mousedown." + this.widgetName, function( event ) { + return that._mouseDown( event ); + } ) + .on( "click." + this.widgetName, function( event ) { + if ( true === $.data( event.target, that.widgetName + ".preventClickEvent" ) ) { + $.removeData( event.target, that.widgetName + ".preventClickEvent" ); + event.stopImmediatePropagation(); + return false; + } + } ); + + this.started = false; + }, + + // TODO: make sure destroying one instance of mouse doesn't mess with + // other instances of mouse + _mouseDestroy: function() { + this.element.off( "." + this.widgetName ); + if ( this._mouseMoveDelegate ) { + this.document + .off( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .off( "mouseup." + this.widgetName, this._mouseUpDelegate ); + } + }, + + _mouseDown: function( event ) { + + // don't let more than one widget handle mouseStart + if ( mouseHandled ) { + return; + } + + this._mouseMoved = false; + + // We may have missed mouseup (out of window) + ( this._mouseStarted && this._mouseUp( event ) ); + + this._mouseDownEvent = event; + + var that = this, + btnIsLeft = ( event.which === 1 ), + + // event.target.nodeName works around a bug in IE 8 with + // disabled inputs (#7620) + elIsCancel = ( typeof this.options.cancel === "string" && event.target.nodeName ? + $( event.target ).closest( this.options.cancel ).length : false ); + if ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) { + return true; + } + + this.mouseDelayMet = !this.options.delay; + if ( !this.mouseDelayMet ) { + this._mouseDelayTimer = setTimeout( function() { + that.mouseDelayMet = true; + }, this.options.delay ); + } + + if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) { + this._mouseStarted = ( this._mouseStart( event ) !== false ); + if ( !this._mouseStarted ) { + event.preventDefault(); + return true; + } + } + + // Click event may never have fired (Gecko & Opera) + if ( true === $.data( event.target, this.widgetName + ".preventClickEvent" ) ) { + $.removeData( event.target, this.widgetName + ".preventClickEvent" ); + } + + // These delegates are required to keep context + this._mouseMoveDelegate = function( event ) { + return that._mouseMove( event ); + }; + this._mouseUpDelegate = function( event ) { + return that._mouseUp( event ); + }; + + this.document + .on( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .on( "mouseup." + this.widgetName, this._mouseUpDelegate ); + + event.preventDefault(); + + mouseHandled = true; + return true; + }, + + _mouseMove: function( event ) { + + // Only check for mouseups outside the document if you've moved inside the document + // at least once. This prevents the firing of mouseup in the case of IE<9, which will + // fire a mousemove event if content is placed under the cursor. See #7778 + // Support: IE <9 + if ( this._mouseMoved ) { + + // IE mouseup check - mouseup happened when mouse was out of window + if ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && + !event.button ) { + return this._mouseUp( event ); + + // Iframe mouseup check - mouseup occurred in another document + } else if ( !event.which ) { + + // Support: Safari <=8 - 9 + // Safari sets which to 0 if you press any of the following keys + // during a drag (#14461) + if ( event.originalEvent.altKey || event.originalEvent.ctrlKey || + event.originalEvent.metaKey || event.originalEvent.shiftKey ) { + this.ignoreMissingWhich = true; + } else if ( !this.ignoreMissingWhich ) { + return this._mouseUp( event ); + } + } + } + + if ( event.which || event.button ) { + this._mouseMoved = true; + } + + if ( this._mouseStarted ) { + this._mouseDrag( event ); + return event.preventDefault(); + } + + if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) { + this._mouseStarted = + ( this._mouseStart( this._mouseDownEvent, event ) !== false ); + ( this._mouseStarted ? this._mouseDrag( event ) : this._mouseUp( event ) ); + } + + return !this._mouseStarted; + }, + + _mouseUp: function( event ) { + this.document + .off( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .off( "mouseup." + this.widgetName, this._mouseUpDelegate ); + + if ( this._mouseStarted ) { + this._mouseStarted = false; + + if ( event.target === this._mouseDownEvent.target ) { + $.data( event.target, this.widgetName + ".preventClickEvent", true ); + } + + this._mouseStop( event ); + } + + if ( this._mouseDelayTimer ) { + clearTimeout( this._mouseDelayTimer ); + delete this._mouseDelayTimer; + } + + this.ignoreMissingWhich = false; + mouseHandled = false; + event.preventDefault(); + }, + + _mouseDistanceMet: function( event ) { + return ( Math.max( + Math.abs( this._mouseDownEvent.pageX - event.pageX ), + Math.abs( this._mouseDownEvent.pageY - event.pageY ) + ) >= this.options.distance + ); + }, + + _mouseDelayMet: function( /* event */ ) { + return this.mouseDelayMet; + }, + + // These are placeholder methods, to be overriden by extending plugin + _mouseStart: function( /* event */ ) {}, + _mouseDrag: function( /* event */ ) {}, + _mouseStop: function( /* event */ ) {}, + _mouseCapture: function( /* event */ ) { return true; } +} ); + + +/*! + * jQuery UI Sortable 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Sortable +//>>group: Interactions +//>>description: Enables items in a list to be sorted using the mouse. +//>>docs: http://api.jqueryui.com/sortable/ +//>>demos: http://jqueryui.com/sortable/ +//>>css.structure: ../../themes/base/sortable.css + + + +var widgetsSortable = $.widget( "ui.sortable", $.ui.mouse, { + version: "1.12.1", + widgetEventPrefix: "sort", + ready: false, + options: { + appendTo: "parent", + axis: false, + connectWith: false, + containment: false, + cursor: "auto", + cursorAt: false, + dropOnEmpty: true, + forcePlaceholderSize: false, + forceHelperSize: false, + grid: false, + handle: false, + helper: "original", + items: "> *", + opacity: false, + placeholder: false, + revert: false, + scroll: true, + scrollSensitivity: 20, + scrollSpeed: 20, + scope: "default", + tolerance: "intersect", + zIndex: 1000, + + // Callbacks + activate: null, + beforeStop: null, + change: null, + deactivate: null, + out: null, + over: null, + receive: null, + remove: null, + sort: null, + start: null, + stop: null, + update: null + }, + + _isOverAxis: function( x, reference, size ) { + return ( x >= reference ) && ( x < ( reference + size ) ); + }, + + _isFloating: function( item ) { + return ( /left|right/ ).test( item.css( "float" ) ) || + ( /inline|table-cell/ ).test( item.css( "display" ) ); + }, + + _create: function() { + this.containerCache = {}; + this._addClass( "ui-sortable" ); + + //Get the items + this.refresh(); + + //Let's determine the parent's offset + this.offset = this.element.offset(); + + //Initialize mouse events for interaction + this._mouseInit(); + + this._setHandleClassName(); + + //We're ready to go + this.ready = true; + + }, + + _setOption: function( key, value ) { + this._super( key, value ); + + if ( key === "handle" ) { + this._setHandleClassName(); + } + }, + + _setHandleClassName: function() { + var that = this; + this._removeClass( this.element.find( ".ui-sortable-handle" ), "ui-sortable-handle" ); + $.each( this.items, function() { + that._addClass( + this.instance.options.handle ? + this.item.find( this.instance.options.handle ) : + this.item, + "ui-sortable-handle" + ); + } ); + }, + + _destroy: function() { + this._mouseDestroy(); + + for ( var i = this.items.length - 1; i >= 0; i-- ) { + this.items[ i ].item.removeData( this.widgetName + "-item" ); + } + + return this; + }, + + _mouseCapture: function( event, overrideHandle ) { + var currentItem = null, + validHandle = false, + that = this; + + if ( this.reverting ) { + return false; + } + + if ( this.options.disabled || this.options.type === "static" ) { + return false; + } + + //We have to refresh the items data once first + this._refreshItems( event ); + + //Find out if the clicked node (or one of its parents) is a actual item in this.items + $( event.target ).parents().each( function() { + if ( $.data( this, that.widgetName + "-item" ) === that ) { + currentItem = $( this ); + return false; + } + } ); + if ( $.data( event.target, that.widgetName + "-item" ) === that ) { + currentItem = $( event.target ); + } + + if ( !currentItem ) { + return false; + } + if ( this.options.handle && !overrideHandle ) { + $( this.options.handle, currentItem ).find( "*" ).addBack().each( function() { + if ( this === event.target ) { + validHandle = true; + } + } ); + if ( !validHandle ) { + return false; + } + } + + this.currentItem = currentItem; + this._removeCurrentsFromItems(); + return true; + + }, + + _mouseStart: function( event, overrideHandle, noActivation ) { + + var i, body, + o = this.options; + + this.currentContainer = this; + + //We only need to call refreshPositions, because the refreshItems call has been moved to + // mouseCapture + this.refreshPositions(); + + //Create and append the visible helper + this.helper = this._createHelper( event ); + + //Cache the helper size + this._cacheHelperProportions(); + + /* + * - Position generation - + * This block generates everything position related - it's the core of draggables. + */ + + //Cache the margins of the original element + this._cacheMargins(); + + //Get the next scrolling parent + this.scrollParent = this.helper.scrollParent(); + + //The element's absolute position on the page minus margins + this.offset = this.currentItem.offset(); + this.offset = { + top: this.offset.top - this.margins.top, + left: this.offset.left - this.margins.left + }; + + $.extend( this.offset, { + click: { //Where the click happened, relative to the element + left: event.pageX - this.offset.left, + top: event.pageY - this.offset.top + }, + parent: this._getParentOffset(), + + // This is a relative to absolute position minus the actual position calculation - + // only used for relative positioned helper + relative: this._getRelativeOffset() + } ); + + // Only after we got the offset, we can change the helper's position to absolute + // TODO: Still need to figure out a way to make relative sorting possible + this.helper.css( "position", "absolute" ); + this.cssPosition = this.helper.css( "position" ); + + //Generate the original position + this.originalPosition = this._generatePosition( event ); + this.originalPageX = event.pageX; + this.originalPageY = event.pageY; + + //Adjust the mouse offset relative to the helper if "cursorAt" is supplied + ( o.cursorAt && this._adjustOffsetFromHelper( o.cursorAt ) ); + + //Cache the former DOM position + this.domPosition = { + prev: this.currentItem.prev()[ 0 ], + parent: this.currentItem.parent()[ 0 ] + }; + + // If the helper is not the original, hide the original so it's not playing any role during + // the drag, won't cause anything bad this way + if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) { + this.currentItem.hide(); + } + + //Create the placeholder + this._createPlaceholder(); + + //Set a containment if given in the options + if ( o.containment ) { + this._setContainment(); + } + + if ( o.cursor && o.cursor !== "auto" ) { // cursor option + body = this.document.find( "body" ); + + // Support: IE + this.storedCursor = body.css( "cursor" ); + body.css( "cursor", o.cursor ); + + this.storedStylesheet = + $( "" ).appendTo( body ); + } + + if ( o.opacity ) { // opacity option + if ( this.helper.css( "opacity" ) ) { + this._storedOpacity = this.helper.css( "opacity" ); + } + this.helper.css( "opacity", o.opacity ); + } + + if ( o.zIndex ) { // zIndex option + if ( this.helper.css( "zIndex" ) ) { + this._storedZIndex = this.helper.css( "zIndex" ); + } + this.helper.css( "zIndex", o.zIndex ); + } + + //Prepare scrolling + if ( this.scrollParent[ 0 ] !== this.document[ 0 ] && + this.scrollParent[ 0 ].tagName !== "HTML" ) { + this.overflowOffset = this.scrollParent.offset(); + } + + //Call callbacks + this._trigger( "start", event, this._uiHash() ); + + //Recache the helper size + if ( !this._preserveHelperProportions ) { + this._cacheHelperProportions(); + } + + //Post "activate" events to possible containers + if ( !noActivation ) { + for ( i = this.containers.length - 1; i >= 0; i-- ) { + this.containers[ i ]._trigger( "activate", event, this._uiHash( this ) ); + } + } + + //Prepare possible droppables + if ( $.ui.ddmanager ) { + $.ui.ddmanager.current = this; + } + + if ( $.ui.ddmanager && !o.dropBehaviour ) { + $.ui.ddmanager.prepareOffsets( this, event ); + } + + this.dragging = true; + + this._addClass( this.helper, "ui-sortable-helper" ); + + // Execute the drag once - this causes the helper not to be visiblebefore getting its + // correct position + this._mouseDrag( event ); + return true; + + }, + + _mouseDrag: function( event ) { + var i, item, itemElement, intersection, + o = this.options, + scrolled = false; + + //Compute the helpers position + this.position = this._generatePosition( event ); + this.positionAbs = this._convertPositionTo( "absolute" ); + + if ( !this.lastPositionAbs ) { + this.lastPositionAbs = this.positionAbs; + } + + //Do scrolling + if ( this.options.scroll ) { + if ( this.scrollParent[ 0 ] !== this.document[ 0 ] && + this.scrollParent[ 0 ].tagName !== "HTML" ) { + + if ( ( this.overflowOffset.top + this.scrollParent[ 0 ].offsetHeight ) - + event.pageY < o.scrollSensitivity ) { + this.scrollParent[ 0 ].scrollTop = + scrolled = this.scrollParent[ 0 ].scrollTop + o.scrollSpeed; + } else if ( event.pageY - this.overflowOffset.top < o.scrollSensitivity ) { + this.scrollParent[ 0 ].scrollTop = + scrolled = this.scrollParent[ 0 ].scrollTop - o.scrollSpeed; + } + + if ( ( this.overflowOffset.left + this.scrollParent[ 0 ].offsetWidth ) - + event.pageX < o.scrollSensitivity ) { + this.scrollParent[ 0 ].scrollLeft = scrolled = + this.scrollParent[ 0 ].scrollLeft + o.scrollSpeed; + } else if ( event.pageX - this.overflowOffset.left < o.scrollSensitivity ) { + this.scrollParent[ 0 ].scrollLeft = scrolled = + this.scrollParent[ 0 ].scrollLeft - o.scrollSpeed; + } + + } else { + + if ( event.pageY - this.document.scrollTop() < o.scrollSensitivity ) { + scrolled = this.document.scrollTop( this.document.scrollTop() - o.scrollSpeed ); + } else if ( this.window.height() - ( event.pageY - this.document.scrollTop() ) < + o.scrollSensitivity ) { + scrolled = this.document.scrollTop( this.document.scrollTop() + o.scrollSpeed ); + } + + if ( event.pageX - this.document.scrollLeft() < o.scrollSensitivity ) { + scrolled = this.document.scrollLeft( + this.document.scrollLeft() - o.scrollSpeed + ); + } else if ( this.window.width() - ( event.pageX - this.document.scrollLeft() ) < + o.scrollSensitivity ) { + scrolled = this.document.scrollLeft( + this.document.scrollLeft() + o.scrollSpeed + ); + } + + } + + if ( scrolled !== false && $.ui.ddmanager && !o.dropBehaviour ) { + $.ui.ddmanager.prepareOffsets( this, event ); + } + } + + //Regenerate the absolute position used for position checks + this.positionAbs = this._convertPositionTo( "absolute" ); + + //Set the helper position + if ( !this.options.axis || this.options.axis !== "y" ) { + this.helper[ 0 ].style.left = this.position.left + "px"; + } + if ( !this.options.axis || this.options.axis !== "x" ) { + this.helper[ 0 ].style.top = this.position.top + "px"; + } + + //Rearrange + for ( i = this.items.length - 1; i >= 0; i-- ) { + + //Cache variables and intersection, continue if no intersection + item = this.items[ i ]; + itemElement = item.item[ 0 ]; + intersection = this._intersectsWithPointer( item ); + if ( !intersection ) { + continue; + } + + // Only put the placeholder inside the current Container, skip all + // items from other containers. This works because when moving + // an item from one container to another the + // currentContainer is switched before the placeholder is moved. + // + // Without this, moving items in "sub-sortables" can cause + // the placeholder to jitter between the outer and inner container. + if ( item.instance !== this.currentContainer ) { + continue; + } + + // Cannot intersect with itself + // no useless actions that have been done before + // no action if the item moved is the parent of the item checked + if ( itemElement !== this.currentItem[ 0 ] && + this.placeholder[ intersection === 1 ? "next" : "prev" ]()[ 0 ] !== itemElement && + !$.contains( this.placeholder[ 0 ], itemElement ) && + ( this.options.type === "semi-dynamic" ? + !$.contains( this.element[ 0 ], itemElement ) : + true + ) + ) { + + this.direction = intersection === 1 ? "down" : "up"; + + if ( this.options.tolerance === "pointer" || this._intersectsWithSides( item ) ) { + this._rearrange( event, item ); + } else { + break; + } + + this._trigger( "change", event, this._uiHash() ); + break; + } + } + + //Post events to containers + this._contactContainers( event ); + + //Interconnect with droppables + if ( $.ui.ddmanager ) { + $.ui.ddmanager.drag( this, event ); + } + + //Call callbacks + this._trigger( "sort", event, this._uiHash() ); + + this.lastPositionAbs = this.positionAbs; + return false; + + }, + + _mouseStop: function( event, noPropagation ) { + + if ( !event ) { + return; + } + + //If we are using droppables, inform the manager about the drop + if ( $.ui.ddmanager && !this.options.dropBehaviour ) { + $.ui.ddmanager.drop( this, event ); + } + + if ( this.options.revert ) { + var that = this, + cur = this.placeholder.offset(), + axis = this.options.axis, + animation = {}; + + if ( !axis || axis === "x" ) { + animation.left = cur.left - this.offset.parent.left - this.margins.left + + ( this.offsetParent[ 0 ] === this.document[ 0 ].body ? + 0 : + this.offsetParent[ 0 ].scrollLeft + ); + } + if ( !axis || axis === "y" ) { + animation.top = cur.top - this.offset.parent.top - this.margins.top + + ( this.offsetParent[ 0 ] === this.document[ 0 ].body ? + 0 : + this.offsetParent[ 0 ].scrollTop + ); + } + this.reverting = true; + $( this.helper ).animate( + animation, + parseInt( this.options.revert, 10 ) || 500, + function() { + that._clear( event ); + } + ); + } else { + this._clear( event, noPropagation ); + } + + return false; + + }, + + cancel: function() { + + if ( this.dragging ) { + + this._mouseUp( new $.Event( "mouseup", { target: null } ) ); + + if ( this.options.helper === "original" ) { + this.currentItem.css( this._storedCSS ); + this._removeClass( this.currentItem, "ui-sortable-helper" ); + } else { + this.currentItem.show(); + } + + //Post deactivating events to containers + for ( var i = this.containers.length - 1; i >= 0; i-- ) { + this.containers[ i ]._trigger( "deactivate", null, this._uiHash( this ) ); + if ( this.containers[ i ].containerCache.over ) { + this.containers[ i ]._trigger( "out", null, this._uiHash( this ) ); + this.containers[ i ].containerCache.over = 0; + } + } + + } + + if ( this.placeholder ) { + + //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, + // it unbinds ALL events from the original node! + if ( this.placeholder[ 0 ].parentNode ) { + this.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] ); + } + if ( this.options.helper !== "original" && this.helper && + this.helper[ 0 ].parentNode ) { + this.helper.remove(); + } + + $.extend( this, { + helper: null, + dragging: false, + reverting: false, + _noFinalSort: null + } ); + + if ( this.domPosition.prev ) { + $( this.domPosition.prev ).after( this.currentItem ); + } else { + $( this.domPosition.parent ).prepend( this.currentItem ); + } + } + + return this; + + }, + + serialize: function( o ) { + + var items = this._getItemsAsjQuery( o && o.connected ), + str = []; + o = o || {}; + + $( items ).each( function() { + var res = ( $( o.item || this ).attr( o.attribute || "id" ) || "" ) + .match( o.expression || ( /(.+)[\-=_](.+)/ ) ); + if ( res ) { + str.push( + ( o.key || res[ 1 ] + "[]" ) + + "=" + ( o.key && o.expression ? res[ 1 ] : res[ 2 ] ) ); + } + } ); + + if ( !str.length && o.key ) { + str.push( o.key + "=" ); + } + + return str.join( "&" ); + + }, + + toArray: function( o ) { + + var items = this._getItemsAsjQuery( o && o.connected ), + ret = []; + + o = o || {}; + + items.each( function() { + ret.push( $( o.item || this ).attr( o.attribute || "id" ) || "" ); + } ); + return ret; + + }, + + /* Be careful with the following core functions */ + _intersectsWith: function( item ) { + + var x1 = this.positionAbs.left, + x2 = x1 + this.helperProportions.width, + y1 = this.positionAbs.top, + y2 = y1 + this.helperProportions.height, + l = item.left, + r = l + item.width, + t = item.top, + b = t + item.height, + dyClick = this.offset.click.top, + dxClick = this.offset.click.left, + isOverElementHeight = ( this.options.axis === "x" ) || ( ( y1 + dyClick ) > t && + ( y1 + dyClick ) < b ), + isOverElementWidth = ( this.options.axis === "y" ) || ( ( x1 + dxClick ) > l && + ( x1 + dxClick ) < r ), + isOverElement = isOverElementHeight && isOverElementWidth; + + if ( this.options.tolerance === "pointer" || + this.options.forcePointerForContainers || + ( this.options.tolerance !== "pointer" && + this.helperProportions[ this.floating ? "width" : "height" ] > + item[ this.floating ? "width" : "height" ] ) + ) { + return isOverElement; + } else { + + return ( l < x1 + ( this.helperProportions.width / 2 ) && // Right Half + x2 - ( this.helperProportions.width / 2 ) < r && // Left Half + t < y1 + ( this.helperProportions.height / 2 ) && // Bottom Half + y2 - ( this.helperProportions.height / 2 ) < b ); // Top Half + + } + }, + + _intersectsWithPointer: function( item ) { + var verticalDirection, horizontalDirection, + isOverElementHeight = ( this.options.axis === "x" ) || + this._isOverAxis( + this.positionAbs.top + this.offset.click.top, item.top, item.height ), + isOverElementWidth = ( this.options.axis === "y" ) || + this._isOverAxis( + this.positionAbs.left + this.offset.click.left, item.left, item.width ), + isOverElement = isOverElementHeight && isOverElementWidth; + + if ( !isOverElement ) { + return false; + } + + verticalDirection = this._getDragVerticalDirection(); + horizontalDirection = this._getDragHorizontalDirection(); + + return this.floating ? + ( ( horizontalDirection === "right" || verticalDirection === "down" ) ? 2 : 1 ) + : ( verticalDirection && ( verticalDirection === "down" ? 2 : 1 ) ); + + }, + + _intersectsWithSides: function( item ) { + + var isOverBottomHalf = this._isOverAxis( this.positionAbs.top + + this.offset.click.top, item.top + ( item.height / 2 ), item.height ), + isOverRightHalf = this._isOverAxis( this.positionAbs.left + + this.offset.click.left, item.left + ( item.width / 2 ), item.width ), + verticalDirection = this._getDragVerticalDirection(), + horizontalDirection = this._getDragHorizontalDirection(); + + if ( this.floating && horizontalDirection ) { + return ( ( horizontalDirection === "right" && isOverRightHalf ) || + ( horizontalDirection === "left" && !isOverRightHalf ) ); + } else { + return verticalDirection && ( ( verticalDirection === "down" && isOverBottomHalf ) || + ( verticalDirection === "up" && !isOverBottomHalf ) ); + } + + }, + + _getDragVerticalDirection: function() { + var delta = this.positionAbs.top - this.lastPositionAbs.top; + return delta !== 0 && ( delta > 0 ? "down" : "up" ); + }, + + _getDragHorizontalDirection: function() { + var delta = this.positionAbs.left - this.lastPositionAbs.left; + return delta !== 0 && ( delta > 0 ? "right" : "left" ); + }, + + refresh: function( event ) { + this._refreshItems( event ); + this._setHandleClassName(); + this.refreshPositions(); + return this; + }, + + _connectWith: function() { + var options = this.options; + return options.connectWith.constructor === String ? + [ options.connectWith ] : + options.connectWith; + }, + + _getItemsAsjQuery: function( connected ) { + + var i, j, cur, inst, + items = [], + queries = [], + connectWith = this._connectWith(); + + if ( connectWith && connected ) { + for ( i = connectWith.length - 1; i >= 0; i-- ) { + cur = $( connectWith[ i ], this.document[ 0 ] ); + for ( j = cur.length - 1; j >= 0; j-- ) { + inst = $.data( cur[ j ], this.widgetFullName ); + if ( inst && inst !== this && !inst.options.disabled ) { + queries.push( [ $.isFunction( inst.options.items ) ? + inst.options.items.call( inst.element ) : + $( inst.options.items, inst.element ) + .not( ".ui-sortable-helper" ) + .not( ".ui-sortable-placeholder" ), inst ] ); + } + } + } + } + + queries.push( [ $.isFunction( this.options.items ) ? + this.options.items + .call( this.element, null, { options: this.options, item: this.currentItem } ) : + $( this.options.items, this.element ) + .not( ".ui-sortable-helper" ) + .not( ".ui-sortable-placeholder" ), this ] ); + + function addItems() { + items.push( this ); + } + for ( i = queries.length - 1; i >= 0; i-- ) { + queries[ i ][ 0 ].each( addItems ); + } + + return $( items ); + + }, + + _removeCurrentsFromItems: function() { + + var list = this.currentItem.find( ":data(" + this.widgetName + "-item)" ); + + this.items = $.grep( this.items, function( item ) { + for ( var j = 0; j < list.length; j++ ) { + if ( list[ j ] === item.item[ 0 ] ) { + return false; + } + } + return true; + } ); + + }, + + _refreshItems: function( event ) { + + this.items = []; + this.containers = [ this ]; + + var i, j, cur, inst, targetData, _queries, item, queriesLength, + items = this.items, + queries = [ [ $.isFunction( this.options.items ) ? + this.options.items.call( this.element[ 0 ], event, { item: this.currentItem } ) : + $( this.options.items, this.element ), this ] ], + connectWith = this._connectWith(); + + //Shouldn't be run the first time through due to massive slow-down + if ( connectWith && this.ready ) { + for ( i = connectWith.length - 1; i >= 0; i-- ) { + cur = $( connectWith[ i ], this.document[ 0 ] ); + for ( j = cur.length - 1; j >= 0; j-- ) { + inst = $.data( cur[ j ], this.widgetFullName ); + if ( inst && inst !== this && !inst.options.disabled ) { + queries.push( [ $.isFunction( inst.options.items ) ? + inst.options.items + .call( inst.element[ 0 ], event, { item: this.currentItem } ) : + $( inst.options.items, inst.element ), inst ] ); + this.containers.push( inst ); + } + } + } + } + + for ( i = queries.length - 1; i >= 0; i-- ) { + targetData = queries[ i ][ 1 ]; + _queries = queries[ i ][ 0 ]; + + for ( j = 0, queriesLength = _queries.length; j < queriesLength; j++ ) { + item = $( _queries[ j ] ); + + // Data for target checking (mouse manager) + item.data( this.widgetName + "-item", targetData ); + + items.push( { + item: item, + instance: targetData, + width: 0, height: 0, + left: 0, top: 0 + } ); + } + } + + }, + + refreshPositions: function( fast ) { + + // Determine whether items are being displayed horizontally + this.floating = this.items.length ? + this.options.axis === "x" || this._isFloating( this.items[ 0 ].item ) : + false; + + //This has to be redone because due to the item being moved out/into the offsetParent, + // the offsetParent's position will change + if ( this.offsetParent && this.helper ) { + this.offset.parent = this._getParentOffset(); + } + + var i, item, t, p; + + for ( i = this.items.length - 1; i >= 0; i-- ) { + item = this.items[ i ]; + + //We ignore calculating positions of all connected containers when we're not over them + if ( item.instance !== this.currentContainer && this.currentContainer && + item.item[ 0 ] !== this.currentItem[ 0 ] ) { + continue; + } + + t = this.options.toleranceElement ? + $( this.options.toleranceElement, item.item ) : + item.item; + + if ( !fast ) { + item.width = t.outerWidth(); + item.height = t.outerHeight(); + } + + p = t.offset(); + item.left = p.left; + item.top = p.top; + } + + if ( this.options.custom && this.options.custom.refreshContainers ) { + this.options.custom.refreshContainers.call( this ); + } else { + for ( i = this.containers.length - 1; i >= 0; i-- ) { + p = this.containers[ i ].element.offset(); + this.containers[ i ].containerCache.left = p.left; + this.containers[ i ].containerCache.top = p.top; + this.containers[ i ].containerCache.width = + this.containers[ i ].element.outerWidth(); + this.containers[ i ].containerCache.height = + this.containers[ i ].element.outerHeight(); + } + } + + return this; + }, + + _createPlaceholder: function( that ) { + that = that || this; + var className, + o = that.options; + + if ( !o.placeholder || o.placeholder.constructor === String ) { + className = o.placeholder; + o.placeholder = { + element: function() { + + var nodeName = that.currentItem[ 0 ].nodeName.toLowerCase(), + element = $( "<" + nodeName + ">", that.document[ 0 ] ); + + that._addClass( element, "ui-sortable-placeholder", + className || that.currentItem[ 0 ].className ) + ._removeClass( element, "ui-sortable-helper" ); + + if ( nodeName === "tbody" ) { + that._createTrPlaceholder( + that.currentItem.find( "tr" ).eq( 0 ), + $( "", that.document[ 0 ] ).appendTo( element ) + ); + } else if ( nodeName === "tr" ) { + that._createTrPlaceholder( that.currentItem, element ); + } else if ( nodeName === "img" ) { + element.attr( "src", that.currentItem.attr( "src" ) ); + } + + if ( !className ) { + element.css( "visibility", "hidden" ); + } + + return element; + }, + update: function( container, p ) { + + // 1. If a className is set as 'placeholder option, we don't force sizes - + // the class is responsible for that + // 2. The option 'forcePlaceholderSize can be enabled to force it even if a + // class name is specified + if ( className && !o.forcePlaceholderSize ) { + return; + } + + //If the element doesn't have a actual height by itself (without styles coming + // from a stylesheet), it receives the inline height from the dragged item + if ( !p.height() ) { + p.height( + that.currentItem.innerHeight() - + parseInt( that.currentItem.css( "paddingTop" ) || 0, 10 ) - + parseInt( that.currentItem.css( "paddingBottom" ) || 0, 10 ) ); + } + if ( !p.width() ) { + p.width( + that.currentItem.innerWidth() - + parseInt( that.currentItem.css( "paddingLeft" ) || 0, 10 ) - + parseInt( that.currentItem.css( "paddingRight" ) || 0, 10 ) ); + } + } + }; + } + + //Create the placeholder + that.placeholder = $( o.placeholder.element.call( that.element, that.currentItem ) ); + + //Append it after the actual current item + that.currentItem.after( that.placeholder ); + + //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317) + o.placeholder.update( that, that.placeholder ); + + }, + + _createTrPlaceholder: function( sourceTr, targetTr ) { + var that = this; + + sourceTr.children().each( function() { + $( " ", that.document[ 0 ] ) + .attr( "colspan", $( this ).attr( "colspan" ) || 1 ) + .appendTo( targetTr ); + } ); + }, + + _contactContainers: function( event ) { + var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom, + floating, axis, + innermostContainer = null, + innermostIndex = null; + + // Get innermost container that intersects with item + for ( i = this.containers.length - 1; i >= 0; i-- ) { + + // Never consider a container that's located within the item itself + if ( $.contains( this.currentItem[ 0 ], this.containers[ i ].element[ 0 ] ) ) { + continue; + } + + if ( this._intersectsWith( this.containers[ i ].containerCache ) ) { + + // If we've already found a container and it's more "inner" than this, then continue + if ( innermostContainer && + $.contains( + this.containers[ i ].element[ 0 ], + innermostContainer.element[ 0 ] ) ) { + continue; + } + + innermostContainer = this.containers[ i ]; + innermostIndex = i; + + } else { + + // container doesn't intersect. trigger "out" event if necessary + if ( this.containers[ i ].containerCache.over ) { + this.containers[ i ]._trigger( "out", event, this._uiHash( this ) ); + this.containers[ i ].containerCache.over = 0; + } + } + + } + + // If no intersecting containers found, return + if ( !innermostContainer ) { + return; + } + + // Move the item into the container if it's not there already + if ( this.containers.length === 1 ) { + if ( !this.containers[ innermostIndex ].containerCache.over ) { + this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash( this ) ); + this.containers[ innermostIndex ].containerCache.over = 1; + } + } else { + + // When entering a new container, we will find the item with the least distance and + // append our item near it + dist = 10000; + itemWithLeastDistance = null; + floating = innermostContainer.floating || this._isFloating( this.currentItem ); + posProperty = floating ? "left" : "top"; + sizeProperty = floating ? "width" : "height"; + axis = floating ? "pageX" : "pageY"; + + for ( j = this.items.length - 1; j >= 0; j-- ) { + if ( !$.contains( + this.containers[ innermostIndex ].element[ 0 ], this.items[ j ].item[ 0 ] ) + ) { + continue; + } + if ( this.items[ j ].item[ 0 ] === this.currentItem[ 0 ] ) { + continue; + } + + cur = this.items[ j ].item.offset()[ posProperty ]; + nearBottom = false; + if ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) { + nearBottom = true; + } + + if ( Math.abs( event[ axis ] - cur ) < dist ) { + dist = Math.abs( event[ axis ] - cur ); + itemWithLeastDistance = this.items[ j ]; + this.direction = nearBottom ? "up" : "down"; + } + } + + //Check if dropOnEmpty is enabled + if ( !itemWithLeastDistance && !this.options.dropOnEmpty ) { + return; + } + + if ( this.currentContainer === this.containers[ innermostIndex ] ) { + if ( !this.currentContainer.containerCache.over ) { + this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash() ); + this.currentContainer.containerCache.over = 1; + } + return; + } + + itemWithLeastDistance ? + this._rearrange( event, itemWithLeastDistance, null, true ) : + this._rearrange( event, null, this.containers[ innermostIndex ].element, true ); + this._trigger( "change", event, this._uiHash() ); + this.containers[ innermostIndex ]._trigger( "change", event, this._uiHash( this ) ); + this.currentContainer = this.containers[ innermostIndex ]; + + //Update the placeholder + this.options.placeholder.update( this.currentContainer, this.placeholder ); + + this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash( this ) ); + this.containers[ innermostIndex ].containerCache.over = 1; + } + + }, + + _createHelper: function( event ) { + + var o = this.options, + helper = $.isFunction( o.helper ) ? + $( o.helper.apply( this.element[ 0 ], [ event, this.currentItem ] ) ) : + ( o.helper === "clone" ? this.currentItem.clone() : this.currentItem ); + + //Add the helper to the DOM if that didn't happen already + if ( !helper.parents( "body" ).length ) { + $( o.appendTo !== "parent" ? + o.appendTo : + this.currentItem[ 0 ].parentNode )[ 0 ].appendChild( helper[ 0 ] ); + } + + if ( helper[ 0 ] === this.currentItem[ 0 ] ) { + this._storedCSS = { + width: this.currentItem[ 0 ].style.width, + height: this.currentItem[ 0 ].style.height, + position: this.currentItem.css( "position" ), + top: this.currentItem.css( "top" ), + left: this.currentItem.css( "left" ) + }; + } + + if ( !helper[ 0 ].style.width || o.forceHelperSize ) { + helper.width( this.currentItem.width() ); + } + if ( !helper[ 0 ].style.height || o.forceHelperSize ) { + helper.height( this.currentItem.height() ); + } + + return helper; + + }, + + _adjustOffsetFromHelper: function( obj ) { + if ( typeof obj === "string" ) { + obj = obj.split( " " ); + } + if ( $.isArray( obj ) ) { + obj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 }; + } + if ( "left" in obj ) { + this.offset.click.left = obj.left + this.margins.left; + } + if ( "right" in obj ) { + this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; + } + if ( "top" in obj ) { + this.offset.click.top = obj.top + this.margins.top; + } + if ( "bottom" in obj ) { + this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; + } + }, + + _getParentOffset: function() { + + //Get the offsetParent and cache its position + this.offsetParent = this.helper.offsetParent(); + var po = this.offsetParent.offset(); + + // This is a special case where we need to modify a offset calculated on start, since the + // following happened: + // 1. The position of the helper is absolute, so it's position is calculated based on the + // next positioned parent + // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't + // the document, which means that the scroll is included in the initial calculation of the + // offset of the parent, and never recalculated upon drag + if ( this.cssPosition === "absolute" && this.scrollParent[ 0 ] !== this.document[ 0 ] && + $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) { + po.left += this.scrollParent.scrollLeft(); + po.top += this.scrollParent.scrollTop(); + } + + // This needs to be actually done for all browsers, since pageX/pageY includes this + // information with an ugly IE fix + if ( this.offsetParent[ 0 ] === this.document[ 0 ].body || + ( this.offsetParent[ 0 ].tagName && + this.offsetParent[ 0 ].tagName.toLowerCase() === "html" && $.ui.ie ) ) { + po = { top: 0, left: 0 }; + } + + return { + top: po.top + ( parseInt( this.offsetParent.css( "borderTopWidth" ), 10 ) || 0 ), + left: po.left + ( parseInt( this.offsetParent.css( "borderLeftWidth" ), 10 ) || 0 ) + }; + + }, + + _getRelativeOffset: function() { + + if ( this.cssPosition === "relative" ) { + var p = this.currentItem.position(); + return { + top: p.top - ( parseInt( this.helper.css( "top" ), 10 ) || 0 ) + + this.scrollParent.scrollTop(), + left: p.left - ( parseInt( this.helper.css( "left" ), 10 ) || 0 ) + + this.scrollParent.scrollLeft() + }; + } else { + return { top: 0, left: 0 }; + } + + }, + + _cacheMargins: function() { + this.margins = { + left: ( parseInt( this.currentItem.css( "marginLeft" ), 10 ) || 0 ), + top: ( parseInt( this.currentItem.css( "marginTop" ), 10 ) || 0 ) + }; + }, + + _cacheHelperProportions: function() { + this.helperProportions = { + width: this.helper.outerWidth(), + height: this.helper.outerHeight() + }; + }, + + _setContainment: function() { + + var ce, co, over, + o = this.options; + if ( o.containment === "parent" ) { + o.containment = this.helper[ 0 ].parentNode; + } + if ( o.containment === "document" || o.containment === "window" ) { + this.containment = [ + 0 - this.offset.relative.left - this.offset.parent.left, + 0 - this.offset.relative.top - this.offset.parent.top, + o.containment === "document" ? + this.document.width() : + this.window.width() - this.helperProportions.width - this.margins.left, + ( o.containment === "document" ? + ( this.document.height() || document.body.parentNode.scrollHeight ) : + this.window.height() || this.document[ 0 ].body.parentNode.scrollHeight + ) - this.helperProportions.height - this.margins.top + ]; + } + + if ( !( /^(document|window|parent)$/ ).test( o.containment ) ) { + ce = $( o.containment )[ 0 ]; + co = $( o.containment ).offset(); + over = ( $( ce ).css( "overflow" ) !== "hidden" ); + + this.containment = [ + co.left + ( parseInt( $( ce ).css( "borderLeftWidth" ), 10 ) || 0 ) + + ( parseInt( $( ce ).css( "paddingLeft" ), 10 ) || 0 ) - this.margins.left, + co.top + ( parseInt( $( ce ).css( "borderTopWidth" ), 10 ) || 0 ) + + ( parseInt( $( ce ).css( "paddingTop" ), 10 ) || 0 ) - this.margins.top, + co.left + ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - + ( parseInt( $( ce ).css( "borderLeftWidth" ), 10 ) || 0 ) - + ( parseInt( $( ce ).css( "paddingRight" ), 10 ) || 0 ) - + this.helperProportions.width - this.margins.left, + co.top + ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - + ( parseInt( $( ce ).css( "borderTopWidth" ), 10 ) || 0 ) - + ( parseInt( $( ce ).css( "paddingBottom" ), 10 ) || 0 ) - + this.helperProportions.height - this.margins.top + ]; + } + + }, + + _convertPositionTo: function( d, pos ) { + + if ( !pos ) { + pos = this.position; + } + var mod = d === "absolute" ? 1 : -1, + scroll = this.cssPosition === "absolute" && + !( this.scrollParent[ 0 ] !== this.document[ 0 ] && + $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ? + this.offsetParent : + this.scrollParent, + scrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName ); + + return { + top: ( + + // The absolute mouse position + pos.top + + + // Only for relative positioned nodes: Relative offset from element to offset parent + this.offset.relative.top * mod + + + // The offsetParent's offset without borders (offset + border) + this.offset.parent.top * mod - + ( ( this.cssPosition === "fixed" ? + -this.scrollParent.scrollTop() : + ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod ) + ), + left: ( + + // The absolute mouse position + pos.left + + + // Only for relative positioned nodes: Relative offset from element to offset parent + this.offset.relative.left * mod + + + // The offsetParent's offset without borders (offset + border) + this.offset.parent.left * mod - + ( ( this.cssPosition === "fixed" ? + -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : + scroll.scrollLeft() ) * mod ) + ) + }; + + }, + + _generatePosition: function( event ) { + + var top, left, + o = this.options, + pageX = event.pageX, + pageY = event.pageY, + scroll = this.cssPosition === "absolute" && + !( this.scrollParent[ 0 ] !== this.document[ 0 ] && + $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ? + this.offsetParent : + this.scrollParent, + scrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName ); + + // This is another very weird special case that only happens for relative elements: + // 1. If the css position is relative + // 2. and the scroll parent is the document or similar to the offset parent + // we have to refresh the relative offset during the scroll so there are no jumps + if ( this.cssPosition === "relative" && !( this.scrollParent[ 0 ] !== this.document[ 0 ] && + this.scrollParent[ 0 ] !== this.offsetParent[ 0 ] ) ) { + this.offset.relative = this._getRelativeOffset(); + } + + /* + * - Position constraining - + * Constrain the position to a mix of grid, containment. + */ + + if ( this.originalPosition ) { //If we are not dragging yet, we won't check for options + + if ( this.containment ) { + if ( event.pageX - this.offset.click.left < this.containment[ 0 ] ) { + pageX = this.containment[ 0 ] + this.offset.click.left; + } + if ( event.pageY - this.offset.click.top < this.containment[ 1 ] ) { + pageY = this.containment[ 1 ] + this.offset.click.top; + } + if ( event.pageX - this.offset.click.left > this.containment[ 2 ] ) { + pageX = this.containment[ 2 ] + this.offset.click.left; + } + if ( event.pageY - this.offset.click.top > this.containment[ 3 ] ) { + pageY = this.containment[ 3 ] + this.offset.click.top; + } + } + + if ( o.grid ) { + top = this.originalPageY + Math.round( ( pageY - this.originalPageY ) / + o.grid[ 1 ] ) * o.grid[ 1 ]; + pageY = this.containment ? + ( ( top - this.offset.click.top >= this.containment[ 1 ] && + top - this.offset.click.top <= this.containment[ 3 ] ) ? + top : + ( ( top - this.offset.click.top >= this.containment[ 1 ] ) ? + top - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) : + top; + + left = this.originalPageX + Math.round( ( pageX - this.originalPageX ) / + o.grid[ 0 ] ) * o.grid[ 0 ]; + pageX = this.containment ? + ( ( left - this.offset.click.left >= this.containment[ 0 ] && + left - this.offset.click.left <= this.containment[ 2 ] ) ? + left : + ( ( left - this.offset.click.left >= this.containment[ 0 ] ) ? + left - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) : + left; + } + + } + + return { + top: ( + + // The absolute mouse position + pageY - + + // Click offset (relative to the element) + this.offset.click.top - + + // Only for relative positioned nodes: Relative offset from element to offset parent + this.offset.relative.top - + + // The offsetParent's offset without borders (offset + border) + this.offset.parent.top + + ( ( this.cssPosition === "fixed" ? + -this.scrollParent.scrollTop() : + ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) ) + ), + left: ( + + // The absolute mouse position + pageX - + + // Click offset (relative to the element) + this.offset.click.left - + + // Only for relative positioned nodes: Relative offset from element to offset parent + this.offset.relative.left - + + // The offsetParent's offset without borders (offset + border) + this.offset.parent.left + + ( ( this.cssPosition === "fixed" ? + -this.scrollParent.scrollLeft() : + scrollIsRootNode ? 0 : scroll.scrollLeft() ) ) + ) + }; + + }, + + _rearrange: function( event, i, a, hardRefresh ) { + + a ? a[ 0 ].appendChild( this.placeholder[ 0 ] ) : + i.item[ 0 ].parentNode.insertBefore( this.placeholder[ 0 ], + ( this.direction === "down" ? i.item[ 0 ] : i.item[ 0 ].nextSibling ) ); + + //Various things done here to improve the performance: + // 1. we create a setTimeout, that calls refreshPositions + // 2. on the instance, we have a counter variable, that get's higher after every append + // 3. on the local scope, we copy the counter variable, and check in the timeout, + // if it's still the same + // 4. this lets only the last addition to the timeout stack through + this.counter = this.counter ? ++this.counter : 1; + var counter = this.counter; + + this._delay( function() { + if ( counter === this.counter ) { + + //Precompute after each DOM insertion, NOT on mousemove + this.refreshPositions( !hardRefresh ); + } + } ); + + }, + + _clear: function( event, noPropagation ) { + + this.reverting = false; + + // We delay all events that have to be triggered to after the point where the placeholder + // has been removed and everything else normalized again + var i, + delayedTriggers = []; + + // We first have to update the dom position of the actual currentItem + // Note: don't do it if the current item is already removed (by a user), or it gets + // reappended (see #4088) + if ( !this._noFinalSort && this.currentItem.parent().length ) { + this.placeholder.before( this.currentItem ); + } + this._noFinalSort = null; + + if ( this.helper[ 0 ] === this.currentItem[ 0 ] ) { + for ( i in this._storedCSS ) { + if ( this._storedCSS[ i ] === "auto" || this._storedCSS[ i ] === "static" ) { + this._storedCSS[ i ] = ""; + } + } + this.currentItem.css( this._storedCSS ); + this._removeClass( this.currentItem, "ui-sortable-helper" ); + } else { + this.currentItem.show(); + } + + if ( this.fromOutside && !noPropagation ) { + delayedTriggers.push( function( event ) { + this._trigger( "receive", event, this._uiHash( this.fromOutside ) ); + } ); + } + if ( ( this.fromOutside || + this.domPosition.prev !== + this.currentItem.prev().not( ".ui-sortable-helper" )[ 0 ] || + this.domPosition.parent !== this.currentItem.parent()[ 0 ] ) && !noPropagation ) { + + // Trigger update callback if the DOM position has changed + delayedTriggers.push( function( event ) { + this._trigger( "update", event, this._uiHash() ); + } ); + } + + // Check if the items Container has Changed and trigger appropriate + // events. + if ( this !== this.currentContainer ) { + if ( !noPropagation ) { + delayedTriggers.push( function( event ) { + this._trigger( "remove", event, this._uiHash() ); + } ); + delayedTriggers.push( ( function( c ) { + return function( event ) { + c._trigger( "receive", event, this._uiHash( this ) ); + }; + } ).call( this, this.currentContainer ) ); + delayedTriggers.push( ( function( c ) { + return function( event ) { + c._trigger( "update", event, this._uiHash( this ) ); + }; + } ).call( this, this.currentContainer ) ); + } + } + + //Post events to containers + function delayEvent( type, instance, container ) { + return function( event ) { + container._trigger( type, event, instance._uiHash( instance ) ); + }; + } + for ( i = this.containers.length - 1; i >= 0; i-- ) { + if ( !noPropagation ) { + delayedTriggers.push( delayEvent( "deactivate", this, this.containers[ i ] ) ); + } + if ( this.containers[ i ].containerCache.over ) { + delayedTriggers.push( delayEvent( "out", this, this.containers[ i ] ) ); + this.containers[ i ].containerCache.over = 0; + } + } + + //Do what was originally in plugins + if ( this.storedCursor ) { + this.document.find( "body" ).css( "cursor", this.storedCursor ); + this.storedStylesheet.remove(); + } + if ( this._storedOpacity ) { + this.helper.css( "opacity", this._storedOpacity ); + } + if ( this._storedZIndex ) { + this.helper.css( "zIndex", this._storedZIndex === "auto" ? "" : this._storedZIndex ); + } + + this.dragging = false; + + if ( !noPropagation ) { + this._trigger( "beforeStop", event, this._uiHash() ); + } + + //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, + // it unbinds ALL events from the original node! + this.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] ); + + if ( !this.cancelHelperRemoval ) { + if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) { + this.helper.remove(); + } + this.helper = null; + } + + if ( !noPropagation ) { + for ( i = 0; i < delayedTriggers.length; i++ ) { + + // Trigger all delayed events + delayedTriggers[ i ].call( this, event ); + } + this._trigger( "stop", event, this._uiHash() ); + } + + this.fromOutside = false; + return !this.cancelHelperRemoval; + + }, + + _trigger: function() { + if ( $.Widget.prototype._trigger.apply( this, arguments ) === false ) { + this.cancel(); + } + }, + + _uiHash: function( _inst ) { + var inst = _inst || this; + return { + helper: inst.helper, + placeholder: inst.placeholder || $( [] ), + position: inst.position, + originalPosition: inst.originalPosition, + offset: inst.positionAbs, + item: inst.currentItem, + sender: _inst ? _inst.element : null + }; + } + +} ); + + +/*! + * jQuery UI Controlgroup 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Controlgroup +//>>group: Widgets +//>>description: Visually groups form control widgets +//>>docs: http://api.jqueryui.com/controlgroup/ +//>>demos: http://jqueryui.com/controlgroup/ +//>>css.structure: ../../themes/base/core.css +//>>css.structure: ../../themes/base/controlgroup.css +//>>css.theme: ../../themes/base/theme.css + + +var controlgroupCornerRegex = /ui-corner-([a-z]){2,6}/g; + +var widgetsControlgroup = $.widget( "ui.controlgroup", { + version: "1.12.1", + defaultElement: "
    ", + options: { + direction: "horizontal", + disabled: null, + onlyVisible: true, + items: { + "button": "input[type=button], input[type=submit], input[type=reset], button, a", + "controlgroupLabel": ".ui-controlgroup-label", + "checkboxradio": "input[type='checkbox'], input[type='radio']", + "selectmenu": "select", + "spinner": ".ui-spinner-input" + } + }, + + _create: function() { + this._enhance(); + }, + + // To support the enhanced option in jQuery Mobile, we isolate DOM manipulation + _enhance: function() { + this.element.attr( "role", "toolbar" ); + this.refresh(); + }, + + _destroy: function() { + this._callChildMethod( "destroy" ); + this.childWidgets.removeData( "ui-controlgroup-data" ); + this.element.removeAttr( "role" ); + if ( this.options.items.controlgroupLabel ) { + this.element + .find( this.options.items.controlgroupLabel ) + .find( ".ui-controlgroup-label-contents" ) + .contents().unwrap(); + } + }, + + _initWidgets: function() { + var that = this, + childWidgets = []; + + // First we iterate over each of the items options + $.each( this.options.items, function( widget, selector ) { + var labels; + var options = {}; + + // Make sure the widget has a selector set + if ( !selector ) { + return; + } + + if ( widget === "controlgroupLabel" ) { + labels = that.element.find( selector ); + labels.each( function() { + var element = $( this ); + + if ( element.children( ".ui-controlgroup-label-contents" ).length ) { + return; + } + element.contents() + .wrapAll( "" ); + } ); + that._addClass( labels, null, "ui-widget ui-widget-content ui-state-default" ); + childWidgets = childWidgets.concat( labels.get() ); + return; + } + + // Make sure the widget actually exists + if ( !$.fn[ widget ] ) { + return; + } + + // We assume everything is in the middle to start because we can't determine + // first / last elements until all enhancments are done. + if ( that[ "_" + widget + "Options" ] ) { + options = that[ "_" + widget + "Options" ]( "middle" ); + } else { + options = { classes: {} }; + } + + // Find instances of this widget inside controlgroup and init them + that.element + .find( selector ) + .each( function() { + var element = $( this ); + var instance = element[ widget ]( "instance" ); + + // We need to clone the default options for this type of widget to avoid + // polluting the variable options which has a wider scope than a single widget. + var instanceOptions = $.widget.extend( {}, options ); + + // If the button is the child of a spinner ignore it + // TODO: Find a more generic solution + if ( widget === "button" && element.parent( ".ui-spinner" ).length ) { + return; + } + + // Create the widget if it doesn't exist + if ( !instance ) { + instance = element[ widget ]()[ widget ]( "instance" ); + } + if ( instance ) { + instanceOptions.classes = + that._resolveClassesValues( instanceOptions.classes, instance ); + } + element[ widget ]( instanceOptions ); + + // Store an instance of the controlgroup to be able to reference + // from the outermost element for changing options and refresh + var widgetElement = element[ widget ]( "widget" ); + $.data( widgetElement[ 0 ], "ui-controlgroup-data", + instance ? instance : element[ widget ]( "instance" ) ); + + childWidgets.push( widgetElement[ 0 ] ); + } ); + } ); + + this.childWidgets = $( $.unique( childWidgets ) ); + this._addClass( this.childWidgets, "ui-controlgroup-item" ); + }, + + _callChildMethod: function( method ) { + this.childWidgets.each( function() { + var element = $( this ), + data = element.data( "ui-controlgroup-data" ); + if ( data && data[ method ] ) { + data[ method ](); + } + } ); + }, + + _updateCornerClass: function( element, position ) { + var remove = "ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"; + var add = this._buildSimpleOptions( position, "label" ).classes.label; + + this._removeClass( element, null, remove ); + this._addClass( element, null, add ); + }, + + _buildSimpleOptions: function( position, key ) { + var direction = this.options.direction === "vertical"; + var result = { + classes: {} + }; + result.classes[ key ] = { + "middle": "", + "first": "ui-corner-" + ( direction ? "top" : "left" ), + "last": "ui-corner-" + ( direction ? "bottom" : "right" ), + "only": "ui-corner-all" + }[ position ]; + + return result; + }, + + _spinnerOptions: function( position ) { + var options = this._buildSimpleOptions( position, "ui-spinner" ); + + options.classes[ "ui-spinner-up" ] = ""; + options.classes[ "ui-spinner-down" ] = ""; + + return options; + }, + + _buttonOptions: function( position ) { + return this._buildSimpleOptions( position, "ui-button" ); + }, + + _checkboxradioOptions: function( position ) { + return this._buildSimpleOptions( position, "ui-checkboxradio-label" ); + }, + + _selectmenuOptions: function( position ) { + var direction = this.options.direction === "vertical"; + return { + width: direction ? "auto" : false, + classes: { + middle: { + "ui-selectmenu-button-open": "", + "ui-selectmenu-button-closed": "" + }, + first: { + "ui-selectmenu-button-open": "ui-corner-" + ( direction ? "top" : "tl" ), + "ui-selectmenu-button-closed": "ui-corner-" + ( direction ? "top" : "left" ) + }, + last: { + "ui-selectmenu-button-open": direction ? "" : "ui-corner-tr", + "ui-selectmenu-button-closed": "ui-corner-" + ( direction ? "bottom" : "right" ) + }, + only: { + "ui-selectmenu-button-open": "ui-corner-top", + "ui-selectmenu-button-closed": "ui-corner-all" + } + + }[ position ] + }; + }, + + _resolveClassesValues: function( classes, instance ) { + var result = {}; + $.each( classes, function( key ) { + var current = instance.options.classes[ key ] || ""; + current = $.trim( current.replace( controlgroupCornerRegex, "" ) ); + result[ key ] = ( current + " " + classes[ key ] ).replace( /\s+/g, " " ); + } ); + return result; + }, + + _setOption: function( key, value ) { + if ( key === "direction" ) { + this._removeClass( "ui-controlgroup-" + this.options.direction ); + } + + this._super( key, value ); + if ( key === "disabled" ) { + this._callChildMethod( value ? "disable" : "enable" ); + return; + } + + this.refresh(); + }, + + refresh: function() { + var children, + that = this; + + this._addClass( "ui-controlgroup ui-controlgroup-" + this.options.direction ); + + if ( this.options.direction === "horizontal" ) { + this._addClass( null, "ui-helper-clearfix" ); + } + this._initWidgets(); + + children = this.childWidgets; + + // We filter here because we need to track all childWidgets not just the visible ones + if ( this.options.onlyVisible ) { + children = children.filter( ":visible" ); + } + + if ( children.length ) { + + // We do this last because we need to make sure all enhancment is done + // before determining first and last + $.each( [ "first", "last" ], function( index, value ) { + var instance = children[ value ]().data( "ui-controlgroup-data" ); + + if ( instance && that[ "_" + instance.widgetName + "Options" ] ) { + var options = that[ "_" + instance.widgetName + "Options" ]( + children.length === 1 ? "only" : value + ); + options.classes = that._resolveClassesValues( options.classes, instance ); + instance.element[ instance.widgetName ]( options ); + } else { + that._updateCornerClass( children[ value ](), value ); + } + } ); + + // Finally call the refresh method on each of the child widgets. + this._callChildMethod( "refresh" ); + } + } +} ); + +/*! + * jQuery UI Checkboxradio 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Checkboxradio +//>>group: Widgets +//>>description: Enhances a form with multiple themeable checkboxes or radio buttons. +//>>docs: http://api.jqueryui.com/checkboxradio/ +//>>demos: http://jqueryui.com/checkboxradio/ +//>>css.structure: ../../themes/base/core.css +//>>css.structure: ../../themes/base/button.css +//>>css.structure: ../../themes/base/checkboxradio.css +//>>css.theme: ../../themes/base/theme.css + + + +$.widget( "ui.checkboxradio", [ $.ui.formResetMixin, { + version: "1.12.1", + options: { + disabled: null, + label: null, + icon: true, + classes: { + "ui-checkboxradio-label": "ui-corner-all", + "ui-checkboxradio-icon": "ui-corner-all" + } + }, + + _getCreateOptions: function() { + var disabled, labels; + var that = this; + var options = this._super() || {}; + + // We read the type here, because it makes more sense to throw a element type error first, + // rather then the error for lack of a label. Often if its the wrong type, it + // won't have a label (e.g. calling on a div, btn, etc) + this._readType(); + + labels = this.element.labels(); + + // If there are multiple labels, use the last one + this.label = $( labels[ labels.length - 1 ] ); + if ( !this.label.length ) { + $.error( "No label found for checkboxradio widget" ); + } + + this.originalLabel = ""; + + // We need to get the label text but this may also need to make sure it does not contain the + // input itself. + this.label.contents().not( this.element[ 0 ] ).each( function() { + + // The label contents could be text, html, or a mix. We concat each element to get a + // string representation of the label, without the input as part of it. + that.originalLabel += this.nodeType === 3 ? $( this ).text() : this.outerHTML; + } ); + + // Set the label option if we found label text + if ( this.originalLabel ) { + options.label = this.originalLabel; + } + + disabled = this.element[ 0 ].disabled; + if ( disabled != null ) { + options.disabled = disabled; + } + return options; + }, + + _create: function() { + var checked = this.element[ 0 ].checked; + + this._bindFormResetHandler(); + + if ( this.options.disabled == null ) { + this.options.disabled = this.element[ 0 ].disabled; + } + + this._setOption( "disabled", this.options.disabled ); + this._addClass( "ui-checkboxradio", "ui-helper-hidden-accessible" ); + this._addClass( this.label, "ui-checkboxradio-label", "ui-button ui-widget" ); + + if ( this.type === "radio" ) { + this._addClass( this.label, "ui-checkboxradio-radio-label" ); + } + + if ( this.options.label && this.options.label !== this.originalLabel ) { + this._updateLabel(); + } else if ( this.originalLabel ) { + this.options.label = this.originalLabel; + } + + this._enhance(); + + if ( checked ) { + this._addClass( this.label, "ui-checkboxradio-checked", "ui-state-active" ); + if ( this.icon ) { + this._addClass( this.icon, null, "ui-state-hover" ); + } + } + + this._on( { + change: "_toggleClasses", + focus: function() { + this._addClass( this.label, null, "ui-state-focus ui-visual-focus" ); + }, + blur: function() { + this._removeClass( this.label, null, "ui-state-focus ui-visual-focus" ); + } + } ); + }, + + _readType: function() { + var nodeName = this.element[ 0 ].nodeName.toLowerCase(); + this.type = this.element[ 0 ].type; + if ( nodeName !== "input" || !/radio|checkbox/.test( this.type ) ) { + $.error( "Can't create checkboxradio on element.nodeName=" + nodeName + + " and element.type=" + this.type ); + } + }, + + // Support jQuery Mobile enhanced option + _enhance: function() { + this._updateIcon( this.element[ 0 ].checked ); + }, + + widget: function() { + return this.label; + }, + + _getRadioGroup: function() { + var group; + var name = this.element[ 0 ].name; + var nameSelector = "input[name='" + $.ui.escapeSelector( name ) + "']"; + + if ( !name ) { + return $( [] ); + } + + if ( this.form.length ) { + group = $( this.form[ 0 ].elements ).filter( nameSelector ); + } else { + + // Not inside a form, check all inputs that also are not inside a form + group = $( nameSelector ).filter( function() { + return $( this ).form().length === 0; + } ); + } + + return group.not( this.element ); + }, + + _toggleClasses: function() { + var checked = this.element[ 0 ].checked; + this._toggleClass( this.label, "ui-checkboxradio-checked", "ui-state-active", checked ); + + if ( this.options.icon && this.type === "checkbox" ) { + this._toggleClass( this.icon, null, "ui-icon-check ui-state-checked", checked ) + ._toggleClass( this.icon, null, "ui-icon-blank", !checked ); + } + + if ( this.type === "radio" ) { + this._getRadioGroup() + .each( function() { + var instance = $( this ).checkboxradio( "instance" ); + + if ( instance ) { + instance._removeClass( instance.label, + "ui-checkboxradio-checked", "ui-state-active" ); + } + } ); + } + }, + + _destroy: function() { + this._unbindFormResetHandler(); + + if ( this.icon ) { + this.icon.remove(); + this.iconSpace.remove(); + } + }, + + _setOption: function( key, value ) { + + // We don't allow the value to be set to nothing + if ( key === "label" && !value ) { + return; + } + + this._super( key, value ); + + if ( key === "disabled" ) { + this._toggleClass( this.label, null, "ui-state-disabled", value ); + this.element[ 0 ].disabled = value; + + // Don't refresh when setting disabled + return; + } + this.refresh(); + }, + + _updateIcon: function( checked ) { + var toAdd = "ui-icon ui-icon-background "; + + if ( this.options.icon ) { + if ( !this.icon ) { + this.icon = $( "" ); + this.iconSpace = $( " " ); + this._addClass( this.iconSpace, "ui-checkboxradio-icon-space" ); + } + + if ( this.type === "checkbox" ) { + toAdd += checked ? "ui-icon-check ui-state-checked" : "ui-icon-blank"; + this._removeClass( this.icon, null, checked ? "ui-icon-blank" : "ui-icon-check" ); + } else { + toAdd += "ui-icon-blank"; + } + this._addClass( this.icon, "ui-checkboxradio-icon", toAdd ); + if ( !checked ) { + this._removeClass( this.icon, null, "ui-icon-check ui-state-checked" ); + } + this.icon.prependTo( this.label ).after( this.iconSpace ); + } else if ( this.icon !== undefined ) { + this.icon.remove(); + this.iconSpace.remove(); + delete this.icon; + } + }, + + _updateLabel: function() { + + // Remove the contents of the label ( minus the icon, icon space, and input ) + var contents = this.label.contents().not( this.element[ 0 ] ); + if ( this.icon ) { + contents = contents.not( this.icon[ 0 ] ); + } + if ( this.iconSpace ) { + contents = contents.not( this.iconSpace[ 0 ] ); + } + contents.remove(); + + this.label.append( this.options.label ); + }, + + refresh: function() { + var checked = this.element[ 0 ].checked, + isDisabled = this.element[ 0 ].disabled; + + this._updateIcon( checked ); + this._toggleClass( this.label, "ui-checkboxradio-checked", "ui-state-active", checked ); + if ( this.options.label !== null ) { + this._updateLabel(); + } + + if ( isDisabled !== this.options.disabled ) { + this._setOptions( { "disabled": isDisabled } ); + } + } + +} ] ); + +var widgetsCheckboxradio = $.ui.checkboxradio; + + +/*! + * jQuery UI Button 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Button +//>>group: Widgets +//>>description: Enhances a form with themeable buttons. +//>>docs: http://api.jqueryui.com/button/ +//>>demos: http://jqueryui.com/button/ +//>>css.structure: ../../themes/base/core.css +//>>css.structure: ../../themes/base/button.css +//>>css.theme: ../../themes/base/theme.css + + + +$.widget( "ui.button", { + version: "1.12.1", + defaultElement: "
    From e2c583e984bc832cbe28ddf6d023268af6713962 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Mon, 12 Dec 2016 19:58:21 -0800 Subject: [PATCH 09/21] Added contextMenus permission Turned tabs into spaces Minor html/css tweaks Improved readme --- README.md | 18 ++++++++++++++---- manifest.json | 45 +++++++++++++++++++++++---------------------- options.css | 2 +- options.html | 4 ++-- 4 files changed, 40 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 149af39..6ba36d0 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,21 @@ -WebCache -======== +#WebCache -This is a chrome browser extension that allows the user to view a cached version of the current webpage +This is a chrome browser extension that allows the user to view a cached version of the current web page Install this extension here: https://chrome.google.com/webstore/detail/webcache/cmmlgikpahieigpcclckfmhnchdlfnjd -Images by Jason Rainbows +#Contributing +I explicitly welcome contributions from people who have never contributed to open-source before: we were all beginners once! I can help build on a partially working pull request with the aim of getting it merged. I am also actively seeking to diversify our contributors and especially welcome contributions from women from all backgrounds and people of color. [1](#References) + +If you're interested in contributing, fork this repo and create a pull request. Please follow the [JavaScript Style Guide](https://github.com/airbnb/javascript). + +Thank you to Jason Rainbows for making all of the images + +##Version v3.5.6 + +##References + + 1. I used and modified [Homebrew's](https://github.com/Homebrew/brew#contributing) welcoming contributing section. \ No newline at end of file diff --git a/manifest.json b/manifest.json index 99330c7..67f845f 100644 --- a/manifest.json +++ b/manifest.json @@ -1,29 +1,30 @@ { - "manifest_version": 2, + "manifest_version": 2, - "name": "WebCache", - "short_name" : "WebCache", - "version": "3.5.6", - "description": "View a cached version of a web page (Google Cache, Wayback Machine, Coral CDN)", + "name": "WebCache", + "short_name" : "WebCache", + "version": "3.5.6", + "description": "View a cached version of a web page (Google Cache, Wayback Machine, Coral CDN)", - "browser_action": { - "default_icon": { - "19":"/images/icon.png" - }, - "default_title": "Cache Page" - }, + "browser_action": { + "default_icon": { + "19":"/images/icon.png" + }, + "default_title": "Cache Page" + }, - "background": { - "scripts": [ - "redirect.js" - ] - }, + "background": { + "scripts": [ + "redirect.js" + ] + }, - "options_page": "options.html", + "options_page": "options.html", - "permissions": [ - "tabs", "http://*/*", "https://*/*", - "webRequest", "webRequestBlocking", - "storage" - ] + "permissions": [ + "tabs", "http://*/*", "https://*/*", + "webRequest", "webRequestBlocking", + "storage", + "contextMenus" + ] } diff --git a/options.css b/options.css index fcb9c04..b2529af 100644 --- a/options.css +++ b/options.css @@ -160,7 +160,7 @@ h3 { } .setting-definition p { - color: #DA727E; + color: #455C7B; padding-right: 10px; } diff --git a/options.html b/options.html index baba0fc..8a07fef 100644 --- a/options.html +++ b/options.html @@ -33,7 +33,7 @@

    WebCache Options

    -

    Select the checkboxes to add these caches to the right click context menu

    +

    Selected caches will appear on the right click context menu

    @@ -70,7 +70,7 @@

    WebCache Options

    DDOS Protection. Would you like for WebCache to automatically detect when a web page is down and - load a cached copy?

    + load a cached copy? This is still an experimental feature, and you can report issues here

    From 3ef5b93d85cece3a959af7eb43a09419cb53e15c Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sat, 17 Dec 2016 14:01:17 -0800 Subject: [PATCH 10/21] Options Page UI options are saved and set properly --- options.html | 6 ++-- options.js | 80 ++++++++++++++++++++++++++++++---------------------- 2 files changed, 50 insertions(+), 36 deletions(-) diff --git a/options.html b/options.html index 8a07fef..180524e 100644 --- a/options.html +++ b/options.html @@ -39,15 +39,15 @@

    WebCache Options

      -
    • +
    • Google Cache

    • -
    • +
    • Wayback Machine

    • -
    • +
    • Coral CDN

    • diff --git a/options.js b/options.js index 09fafc7..9ffa313 100644 --- a/options.js +++ b/options.js @@ -1,48 +1,62 @@ -var CACHES = ["WayBack Machine", "Coral CDN", "Google Cache"]; -var HTML = ["Google Cache", "WayBack Machine", "Coral CDN"]; var order = []; -//order = CACHES; - $("#sortable").sortable({ - stop: function(event, ui) { - //console.log("Old Position: " + order.indexOf(ui.item.attr('id'))); - //console.log("New position: " + ui.item.index()); - - order.splice(order.indexOf(ui.item.attr('id')), 1); - order.splice(ui.item.index(), 0, ui.item.attr('id')); - - chrome.storage.sync.set({'cacheOrder': order}, function() { - console.log("Saved Settings: " + order.split(":")); - }); + stop: function(event, ui) { // Save settings after change + // console.log("Old Position: " + order.indexOf(ui.item.attr('id'))); + // console.log("New position: " + ui.item.index()); + + order.splice(order.indexOf(ui.item.attr('id')), 1); + order.splice(ui.item.index(), 0, ui.item.attr('id')); + + var saveObj = {}; + saveObj['cacheOrder4'] = order; + chrome.storage.local.set(saveObj, function() { + console.log("Saved Cache Ordering Preferences"); + }); }, - create: function(event, ui) { // Set up sortable and also radio buttons - chrome.storage.sync.get('cacheOrder', function(result) { - order = result.cacheOrder; - - var ul = $('#sortable'); - var li = ul.children('li').get(); - li.sort(function(a,b) { - return order.indexOf($(a).attr('id')) - order.indexOf($(b).attr('id')) - }); - ul.append(li); + create: function(event, ui) { // Set up sortable, checkboxes, & toggle + // Set up sortable + chrome.storage.local.get('cacheOrder4', function(result) { + order = result['cacheOrder4'] || ['google-cache-sortable', 'wayback-machine-sortable', 'coral-cdn-sortable']; + + var ul = $('#sortable'); + var li = ul.children('li').get(); + li.sort(function(a, b) { + return order.indexOf($(a).attr('id')) - order.indexOf($(b).attr('id')); }); - // Set up radio buttons - chrome.storage.sync.get('auto-detect', function(result) { - if(result['auto-detect'] == 'on') { - $('#on').prop('checked', true); - } else { - $('#off').prop('checked', true); - } + ul.append(li); + }); + + // Set up auto-detect toggle + chrome.storage.local.get('auto-detect', function(result) { + toggle = $('#myonoffswitch'); + toggle.prop('checked', result['auto-detect']); + }); + + // Set up context menu caches + chrome.storage.local.get(['google-cache', 'wayback-machine', 'coral-cdn'], function(results) { + Object.keys(results).forEach(function(key) { + $('#' + key).prop('checked', results[key]); }); + }); } }); -$("#myonoffswitch").click(function(button) { // Save auto-detect settings - chrome.storage.sync.set({'auto-detect': button.target.id}, function() { +$("#myonoffswitch").click(function(event) { // Save auto-detect settings + chrome.storage.local.set({'auto-detect': $("#myonoffswitch").is(':checked')}, function() { console.log("Saved Auto-Detect Preferences"); }); }); + +$(".context-menu-label").click(function(event) { // Add/Remove context menu caches + var id = $(event.target).attr('for'); + var checkbox = $('#' + id); + var saveObj = {}; + saveObj[id] = !checkbox.is(':checked'); + + chrome.storage.local.set(saveObj, function() { + console.log("Saved context menu preferences for " + id); + }); }); $("#sortable").disableSelection(); From b3a11edbb697dbe22f33b7071094e2487699dad0 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sat, 17 Dec 2016 18:12:50 -0800 Subject: [PATCH 11/21] Changed to storage sync instead of local Updated manifest version --- manifest.json | 2 +- options.js | 29 +++++++++++++---------------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/manifest.json b/manifest.json index 67f845f..0f6fd99 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "WebCache", "short_name" : "WebCache", - "version": "3.5.6", + "version": "4.0.0", "description": "View a cached version of a web page (Google Cache, Wayback Machine, Coral CDN)", "browser_action": { diff --git a/options.js b/options.js index 9ffa313..8c3b8f4 100644 --- a/options.js +++ b/options.js @@ -1,22 +1,19 @@ var order = []; -$("#sortable").sortable({ +$('#sortable').sortable({ stop: function(event, ui) { // Save settings after change - // console.log("Old Position: " + order.indexOf(ui.item.attr('id'))); - // console.log("New position: " + ui.item.index()); - order.splice(order.indexOf(ui.item.attr('id')), 1); order.splice(ui.item.index(), 0, ui.item.attr('id')); var saveObj = {}; saveObj['cacheOrder4'] = order; - chrome.storage.local.set(saveObj, function() { - console.log("Saved Cache Ordering Preferences"); + chrome.storage.sync.set(saveObj, function() { + console.log('Saved Cache Ordering Preferences'); }); }, create: function(event, ui) { // Set up sortable, checkboxes, & toggle // Set up sortable - chrome.storage.local.get('cacheOrder4', function(result) { + chrome.storage.sync.get('cacheOrder4', function(result) { order = result['cacheOrder4'] || ['google-cache-sortable', 'wayback-machine-sortable', 'coral-cdn-sortable']; var ul = $('#sortable'); @@ -28,13 +25,13 @@ $("#sortable").sortable({ }); // Set up auto-detect toggle - chrome.storage.local.get('auto-detect', function(result) { + chrome.storage.sync.get('auto-detect', function(result) { toggle = $('#myonoffswitch'); toggle.prop('checked', result['auto-detect']); }); // Set up context menu caches - chrome.storage.local.get(['google-cache', 'wayback-machine', 'coral-cdn'], function(results) { + chrome.storage.sync.get(['google-cache', 'wayback-machine', 'coral-cdn'], function(results) { Object.keys(results).forEach(function(key) { $('#' + key).prop('checked', results[key]); }); @@ -42,21 +39,21 @@ $("#sortable").sortable({ } }); -$("#myonoffswitch").click(function(event) { // Save auto-detect settings - chrome.storage.local.set({'auto-detect': $("#myonoffswitch").is(':checked')}, function() { - console.log("Saved Auto-Detect Preferences"); +$('#myonoffswitch').click(function(event) { // Save auto-detect settings + chrome.storage.sync.set({'auto-detect': $('#myonoffswitch').is(':checked')}, function() { + console.log('Saved Auto-Detect Preferences'); }); }); -$(".context-menu-label").click(function(event) { // Add/Remove context menu caches +$('.context-menu-label').click(function(event) { // Add/Remove context menu caches var id = $(event.target).attr('for'); var checkbox = $('#' + id); var saveObj = {}; saveObj[id] = !checkbox.is(':checked'); - chrome.storage.local.set(saveObj, function() { - console.log("Saved context menu preferences for " + id); + chrome.storage.sync.set(saveObj, function() { + console.log('Saved context menu preferences for ' + id); }); }); -$("#sortable").disableSelection(); +$('#sortable').disableSelection(); From f2b4faa20f52ecb49e5eecf02e9d960ce3babcb5 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sat, 17 Dec 2016 19:23:47 -0800 Subject: [PATCH 12/21] Mostly style changes, and now compatible with new options page --- redirect.js | 230 ++++++++++++++++++++++++++-------------------------- 1 file changed, 116 insertions(+), 114 deletions(-) diff --git a/redirect.js b/redirect.js index 39b66ff..5823d60 100644 --- a/redirect.js +++ b/redirect.js @@ -1,144 +1,146 @@ -var currentURL = ""; -var isHTTPS = true; -var index = 0; +var currentURL = ''; +var isHTTPS = true; +var index = 0; var numberOfRedirects = 0; -var redirecting = false; +var redirecting = false; var cacheURL = [ - "http://webcache.googleusercontent.com/search?q=cache:", - "http://web.archive.org/web/*/", - ".nyud.net" + 'http://webcache.googleusercontent.com/search?q=cache:', + 'http://web.archive.org/web/*/', + '.nyud.net' ]; -var cacheNames = ["Google Cache", "WayBack Machine", "Coral CDN"]; - +var cacheNames = ['google-cache-sortable', 'wayback-machine-sortable', 'coral-cdn-sortable']; var URL_HASH = [ - {name: "Google Cache", URL: "http://webcache.googleusercontent.com/search?q=cache:"}, - {name: "WayBack Machine", URL: "http://web.archive.org/web/*/"}, - {name: "Coral CDN", URL: ".nyud.net"} + { name: 'google-cache-sortable', URL: 'http://webcache.googleusercontent.com/search?q=cache:' }, + { name: 'wayback-machine-sortable', URL: 'http://web.archive.org/web/*/' }, + { name: 'coral-cdn-sortable', URL: '.nyud.net' } ]; function getURL() { - ++numberOfRedirects; - if(cacheURL[index] == cacheURL.length) - index = 0 - if(cacheURL[index] != ".nyud.net") { // Google and Wayback Machine - if(isHTTPS) - return cacheURL[index] + currentURL.substr(8); - else - return cacheURL[index] + currentURL.substr(7); - } - else { // Coral CDN - if(currentURL.slice(-1) == "/") - return currentURL.substring(0, currentURL.length -1) + '.nyud.net'; - else - return currentURL + '.nyud.net'; - } + ++numberOfRedirects; + if(cacheURL[index] == cacheURL.length) { + index = 0; + } + if(cacheURL[index] != '.nyud.net') { // Google and Wayback Machine + return cacheURL[index] + (isHTTPS ? currentURL.substr(8) : currentURL.substr(7)) + } else { // Coral CDN + if(currentURL.slice(-1) == '/') { + return currentURL.substring(0, currentURL.length -1) + '.nyud.net'; + } else { + return currentURL + '.nyud.net'; + } + } } function handler(details) { - //console.log("StatusLine is: " + details.statusLine); - if(numberOfRedirects > cacheURL.length) { // There is no cache available - chrome.webRequest.onHeadersReceived.removeListener(handler); - redirecting = false; - return{cancel: true}; - } - if(~details.statusLine.search("404")) { // Not found - ++index; - return{redirectUrl:getURL()}; - } - else if(~details.statusLine.search("403")) { // Forbidden - ++index; - return{redirectUrl:getURL()}; - } - else { // Success - chrome.webRequest.onHeadersReceived.removeListener(handler); - redirecting = false; - return{cancel: false}; - } + //console.log('StatusLine is: ' + details.statusLine); + if(numberOfRedirects > cacheURL.length) { // There is no cache available + chrome.webRequest.onHeadersReceived.removeListener(handler); + redirecting = false; + return { cancel: true }; + } + if(~details.statusLine.search('404')) { // Not found + ++index; + return { redirectUrl:getURL() }; + } + else if(~details.statusLine.search('403')) { // Forbidden + ++index; + return { redirectUrl:getURL() }; + } + else { // Success + chrome.webRequest.onHeadersReceived.removeListener(handler); + redirecting = false; + return { cancel: false }; + } } function openPage(currentTab) { - chrome.storage.sync.get('cacheOrder', function(result) { - var cacheOrder = result.cacheOrder; - - URL_HASH.sort(function(a, b) { - return cacheOrder.indexOf(a.name) - cacheOrder.indexOf(b.name); - }); - - for (var i = 0; i< 3; i++) { - cacheURL[i] = URL_HASH[i].URL; - cacheNames[i] = URL_HASH[i].name; - } + chrome.storage.sync.get('cacheOrder4', function(result) { + var cacheOrder = result['cacheOrder4'] || cacheNames; - console.log(cacheURL); + URL_HASH.sort(function(a, b) { + return cacheOrder.indexOf(a.name) - cacheOrder.indexOf(b.name); + }); + + for (var i = 0; i< 3; i++) { + cacheURL[i] = URL_HASH[i].URL; + cacheNames[i] = URL_HASH[i].name; + } + + console.log(cacheURL); + + index = 0; + numberOfRedirects = 0; + redirecting = true; - index = 0; - numberOfRedirects = 0; - redirecting = true; - - chrome.webRequest.onHeadersReceived.addListener( - handler, - { - urls: [""], - types: ["main_frame"] - }, - ["blocking"] - ); - - currentURL = currentTab.url; + chrome.webRequest.onHeadersReceived.addListener( + handler, + { + urls: [''], + types: ['main_frame'] + }, + ['blocking'] + ); + + currentURL = currentTab.url; - currentURL.substring(0, 5) == "http:" ? isHTTPS = false : isHTTPS = true; + isHTTPS = (currentURL.substring(0, 6) == 'https:'); - //console.log("the tab id for the redirect is " + currentTab.id + ": The website is: " + currentURL); - - chrome.tabs.update(currentTab.id, { url: getURL(index) }); + //console.log('the tab id for the redirect is ' + currentTab.id + ': The website is: ' + currentURL); + + chrome.tabs.update(currentTab.id, { url: getURL(index) }); - }); + }); } function autoRedirect(details) { - chrome.tabs.query( {}, function(tabs) { - // Make sure it is the current tab - var tab = null; - tabs.forEach(function(t) { - if(t.url == details.url) // What if multiple tabs open with same url? - tab = t; - }); - // Return if no tab with url or redirecting - if(tab == null || redirecting) - return; - - if(~details.statusLine.indexOf("408")) { - console.log("408 redirect"); - } else if(~details.statusLine.indexOf("503")) { - console.log("503 redirect"); - openPage(tab); - } else if(~details.statusLine.indexOf("521")) { - console.log("521 redirect"); - openPage(tab); - } else if(~details.statusLine.indexOf("522")) { - console.log("522 redirect"); - openPage(tab); - } - }); + chrome.tabs.query({}, function(tabs) { + // Make sure it is the current tab + var tab = null; + tabs.forEach(function(t) { + if(t.url == details.url) { // What if multiple tabs open with same url? + tab = t; + } + }); + // Return if no tab with url or redirecting + if(tab == null || redirecting) + return; + + if(~details.statusLine.indexOf('408')) { + console.log('408 redirect'); + } else if(~details.statusLine.indexOf('503')) { + console.log('503 redirect'); + openPage(tab); + } else if(~details.statusLine.indexOf('521')) { + console.log('521 redirect'); + openPage(tab); + } else if(~details.statusLine.indexOf('522')) { + console.log('522 redirect'); + openPage(tab); + } + }); } chrome.storage.sync.get('auto-detect', function(result) { - if(result['auto-detect'] == 'on') { - chrome.webRequest.onHeadersReceived.addListener( - autoRedirect, - { - urls: [""] - } - ); - } + if(result['auto-detect'] == 'on') { + chrome.webRequest.onHeadersReceived.addListener( + autoRedirect, + { urls: [''] } + ); + } }); -chrome.runtime.onInstalled.addListener(function(details) { // fires on install or update - chrome.storage.sync.get("cacheOrder", function(result) { - if(Object.keys(result).length == 0) // no storage found - chrome.storage.sync.set({"cacheOrder": cacheNames, "auto-detect": "off"}); // set defaults - }); +// Set defaults on install or update +chrome.runtime.onInstalled.addListener(function(details) { + chrome.storage.sync.get('cacheOrder', function(result) { + if(Object.keys(result).length == 0) { + var saveObject = { + 'cacheOrder4': cacheNames, + 'auto-detect': 'off' + }; + chrome.storage.sync.set(saveObject); + } + }); }); chrome.browserAction.onClicked.addListener(openPage); From 6f9d1420f24b9fdd1f8fb354efd060680c62c8a2 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sun, 1 Jan 2017 18:40:08 -0800 Subject: [PATCH 13/21] Add/Remove context menu functionality --- options.js | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/options.js b/options.js index 8c3b8f4..a0dee29 100644 --- a/options.js +++ b/options.js @@ -47,12 +47,30 @@ $('#myonoffswitch').click(function(event) { // Save auto-detect settings $('.context-menu-label').click(function(event) { // Add/Remove context menu caches var id = $(event.target).attr('for'); - var checkbox = $('#' + id); var saveObj = {}; - saveObj[id] = !checkbox.is(':checked'); + saveObj[id] = !$('#' + id).is(':checked'); - chrome.storage.sync.set(saveObj, function() { - console.log('Saved context menu preferences for ' + id); + chrome.storage.sync.get(id, function(results) { + if(saveObj[id]) { // Add context menu + var options = { + title: 'Open in ' + $("label[for='"+ id +"']").text(), + contexts: ['page', 'link'], + onclick: function(info, tab) { debugger; } + }; + cid = chrome.contextMenus.create(options, function() { + console.log('created context menu: ' + cid); + }); + saveObj[id] = cid; + chrome.storage.sync.set(saveObj, function() { + console.log('Saved context menu preferences for ' + id); + }); + } + else { // Remove context menu + saveObj[id] = false; + chrome.storage.sync.set(saveObj, function() { + chrome.contextMenus.remove(results[id]); + }); + } }); }); From 9b62867f1771ba27363636f6f235863b3b9e9388 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Thu, 5 Jan 2017 14:49:02 +0100 Subject: [PATCH 14/21] Updated Readme --- README.md | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 6ba36d0..5d54bdb 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,35 @@ #WebCache -This is a chrome browser extension that allows the user to view a cached version of the current web page +This is a chrome browser extension that allows the user to view a cached version of the current web page. +This is useful if the website: + +1. DDOS attacked (Too much Reddit traffic) +1. No longer exists +1. Taken down for maintenance +1. Has older versions with different content + +Install this extension [here](https://chrome.google.com/webstore/detail/webcache/cmmlgikpahieigpcclckfmhnchdlfnjd) + +#Feedback + +Please report any broken functionality or feature requests [here](https://github.com/Dbz/WebCache/issues). +If you would like to rate the chrome extension, please do so [here](https://chrome.google.com/webstore/detail/webcache/cmmlgikpahieigpcclckfmhnchdlfnjd/reviews). -Install this extension here: https://chrome.google.com/webstore/detail/webcache/cmmlgikpahieigpcclckfmhnchdlfnjd #Contributing -I explicitly welcome contributions from people who have never contributed to open-source before: we were all beginners once! I can help build on a partially working pull request with the aim of getting it merged. I am also actively seeking to diversify our contributors and especially welcome contributions from women from all backgrounds and people of color. [1](#References) +I explicitly welcome contributions from people who have never contributed to open-source before: we were all beginners once! +I can help build on a partially working pull request with the aim of getting it merged. +I am also actively seeking to diversify our contributors and especially welcome contributions from women from all backgrounds and people of color. [1](#References) -If you're interested in contributing, fork this repo and create a pull request. Please follow the [JavaScript Style Guide](https://github.com/airbnb/javascript). +If you're interested in contributing, fork this repo and create a pull request. +Please follow the [JavaScript Style Guide](https://github.com/airbnb/javascript). Thank you to Jason Rainbows for making all of the images ##Version -v3.5.6 +v4.0.0 ##References From 0f824445c4cda0b3468dfa6e60dd065aaf496266 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sat, 4 Mar 2017 20:50:25 -0800 Subject: [PATCH 15/21] Refactored adding and removing context menus --- README.md | 3 ++- options.js | 47 +++++++++++++++++++---------------------------- 2 files changed, 21 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 5d54bdb..67b9045 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ This is a chrome browser extension that allows the user to view a cached version This is useful if the website: 1. DDOS attacked (Too much Reddit traffic) -1. No longer exists 1. Taken down for maintenance +1. No longer exists 1. Has older versions with different content Install this extension [here](https://chrome.google.com/webstore/detail/webcache/cmmlgikpahieigpcclckfmhnchdlfnjd) @@ -13,6 +13,7 @@ Install this extension [here](https://chrome.google.com/webstore/detail/webcache #Feedback Please report any broken functionality or feature requests [here](https://github.com/Dbz/WebCache/issues). + If you would like to rate the chrome extension, please do so [here](https://chrome.google.com/webstore/detail/webcache/cmmlgikpahieigpcclckfmhnchdlfnjd/reviews). diff --git a/options.js b/options.js index a0dee29..d23d758 100644 --- a/options.js +++ b/options.js @@ -1,5 +1,22 @@ var order = []; +// Add/Remove context menu caches +function updateContextMenu(event) { + var saveObj = {}; + var cache = $(event.target).attr('for'); + var add_context_menu = !$('#' + cache).is(':checked'); + var create_properties = { + id: cache, + title: 'Open page in ' + $("label[for='"+ cache +"']").text(), + contexts: ['page'], + onclick: updateUrl + }; + + add_context_menu ? chrome.contextMenus.create(create_properties) : chrome.contextMenus.remove(cache); + + saveObj[cache] = add_context_menu; + chrome.storage.sync.set(saveObj); +} $('#sortable').sortable({ stop: function(event, ui) { // Save settings after change order.splice(order.indexOf(ui.item.attr('id')), 1); @@ -45,33 +62,7 @@ $('#myonoffswitch').click(function(event) { // Save auto-detect settings }); }); -$('.context-menu-label').click(function(event) { // Add/Remove context menu caches - var id = $(event.target).attr('for'); - var saveObj = {}; - saveObj[id] = !$('#' + id).is(':checked'); - - chrome.storage.sync.get(id, function(results) { - if(saveObj[id]) { // Add context menu - var options = { - title: 'Open in ' + $("label[for='"+ id +"']").text(), - contexts: ['page', 'link'], - onclick: function(info, tab) { debugger; } - }; - cid = chrome.contextMenus.create(options, function() { - console.log('created context menu: ' + cid); - }); - saveObj[id] = cid; - chrome.storage.sync.set(saveObj, function() { - console.log('Saved context menu preferences for ' + id); - }); - } - else { // Remove context menu - saveObj[id] = false; - chrome.storage.sync.set(saveObj, function() { - chrome.contextMenus.remove(results[id]); - }); - } - }); -}); +// Add/Remove context menu caches +$('.context-menu-label').click(updateContextMenu); $('#sortable').disableSelection(); From cda383b4ccf9d765602863d6564d2ebabd7ea1fc Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sun, 5 Mar 2017 11:49:40 -0800 Subject: [PATCH 16/21] Context menu caches fully working --- context-menu.js | 52 ++++++++++++++++++++++++++++++++++++++++++ images/icon-small.png | Bin 0 -> 3557 bytes manifest.json | 9 +++++--- options.js | 48 ++++++++++++++++++++++++++------------ 4 files changed, 92 insertions(+), 17 deletions(-) create mode 100644 context-menu.js create mode 100644 images/icon-small.png diff --git a/context-menu.js b/context-menu.js new file mode 100644 index 0000000..7725d4b --- /dev/null +++ b/context-menu.js @@ -0,0 +1,52 @@ +const CONTEXT_HASH = { + "google-cache": "http://webcache.googleusercontent.com/search?q=cache:", + "wayback-machine": "http://web.archive.org/web/*/", + "coral-cdn": ".nyud.net" +}; + +function formUrl(context, url) { + contextUrl = CONTEXT_HASH[context]; + isHTTPS = url.substring(0, 6) == 'https:'; + + // Google and Wayback Machine + if(context != 'coral-cdn') { + return contextUrl + (isHTTPS ? url.substr(8) : url.substr(7)) + } else { // Coral CDN + if(url.slice(-1) == '/') { + return url.substring(0, url.length -1) + contextUrl; + } else { + return url + contextUrl; + } + } +} + +function redirectToCachedUrl(info, tab) { + console.log('meow'); + chrome.tabs.update(tab.id, { url: formUrl(info.menuItemId, info.pageUrl) }); +} + +// Create context menu caches +function createContextMenu(cache) { + var saveObj = {}; + var create_properties = { + id: cache, + title: 'Open page with ' + cache.split('-').join(' '), + contexts: ['page'] + }; + saveObj[cache] = true; + + chrome.contextMenus.create(create_properties); + chrome.storage.sync.set(saveObj); +} + +// Load Context Menus on Startup +chrome.storage.sync.get(Object.keys(CONTEXT_HASH), function(results) { + Object.keys(results).forEach(function(cache) { + if(!!results[cache]) { + createContextMenu(cache); + } + }); +}); + +chrome.contextMenus.onClicked.addListener(redirectToCachedUrl); + diff --git a/images/icon-small.png b/images/icon-small.png new file mode 100644 index 0000000000000000000000000000000000000000..15ebff0ff14d986efc8e7796ad71c37adc230d37 GIT binary patch literal 3557 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 literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json index 0f6fd99..e87716b 100644 --- a/manifest.json +++ b/manifest.json @@ -7,14 +7,17 @@ "description": "View a cached version of a web page (Google Cache, Wayback Machine, Coral CDN)", "browser_action": { - "default_icon": { - "19":"/images/icon.png" - }, "default_title": "Cache Page" }, + "icons": { + "16":"/images/icon-small.png", + "19":"/images/icon.png" + }, + "background": { "scripts": [ + "context-menu.js", "redirect.js" ] }, diff --git a/options.js b/options.js index d23d758..b8b8525 100644 --- a/options.js +++ b/options.js @@ -1,22 +1,39 @@ -var order = []; +const CONTEXT_MENU_CACHES = [ + "google-cache", + "wayback-machine", + "coral-cdn" +]; // Add/Remove context menu caches -function updateContextMenu(event) { - var saveObj = {}; +function updateContextMenuCaches(event) { var cache = $(event.target).attr('for'); var add_context_menu = !$('#' + cache).is(':checked'); + add_context_menu ? createContextMenu(cache) : removeContextMenu(cache); +} + +// Remove context menu caches +function removeContextMenu(cache) { + var saveObj = {}; + saveObj[cache] = false; + chrome.contextMenus.remove(cache); + chrome.storage.sync.set(saveObj); +} + +// Create context menu caches +function createContextMenu(cache) { + var saveObj = {}; var create_properties = { id: cache, - title: 'Open page in ' + $("label[for='"+ cache +"']").text(), - contexts: ['page'], - onclick: updateUrl + title: 'Open page with ' + cache.split('-').join(' '), //$("label[for='"+ cache +"']").text() + contexts: ['page'] }; + saveObj[cache] = true; - add_context_menu ? chrome.contextMenus.create(create_properties) : chrome.contextMenus.remove(cache); - - saveObj[cache] = add_context_menu; + chrome.contextMenus.create(create_properties); chrome.storage.sync.set(saveObj); } + +var order = []; $('#sortable').sortable({ stop: function(event, ui) { // Save settings after change order.splice(order.indexOf(ui.item.attr('id')), 1); @@ -28,7 +45,9 @@ $('#sortable').sortable({ console.log('Saved Cache Ordering Preferences'); }); }, - create: function(event, ui) { // Set up sortable, checkboxes, & toggle + + // Set up sortable, checkboxes, & toggle + create: function(event, ui) { // Set up sortable chrome.storage.sync.get('cacheOrder4', function(result) { order = result['cacheOrder4'] || ['google-cache-sortable', 'wayback-machine-sortable', 'coral-cdn-sortable']; @@ -48,21 +67,22 @@ $('#sortable').sortable({ }); // Set up context menu caches - chrome.storage.sync.get(['google-cache', 'wayback-machine', 'coral-cdn'], function(results) { + chrome.storage.sync.get(CONTEXT_MENU_CACHES, function(results) { Object.keys(results).forEach(function(key) { - $('#' + key).prop('checked', results[key]); + $('#' + key).prop('checked', !!results[key]); }); }); } }); -$('#myonoffswitch').click(function(event) { // Save auto-detect settings +// Save auto-detect settings +$('#myonoffswitch').click(function(event) { chrome.storage.sync.set({'auto-detect': $('#myonoffswitch').is(':checked')}, function() { console.log('Saved Auto-Detect Preferences'); }); }); // Add/Remove context menu caches -$('.context-menu-label').click(updateContextMenu); +$('.context-menu-label').click(updateContextMenuCaches); $('#sortable').disableSelection(); From 0f88b86accca7436be7ae9fc8d1f010fe3869b7b Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sun, 5 Mar 2017 12:27:57 -0800 Subject: [PATCH 17/21] Fixed style issues --- context-menu.js | 19 ++++++------- options.js | 58 +++++++++++++++++++------------------- redirect.js | 74 ++++++++++++++++++++++++------------------------- 3 files changed, 75 insertions(+), 76 deletions(-) diff --git a/context-menu.js b/context-menu.js index 7725d4b..19024aa 100644 --- a/context-menu.js +++ b/context-menu.js @@ -1,19 +1,19 @@ -const CONTEXT_HASH = { +var CONTEXT_HASH = { "google-cache": "http://webcache.googleusercontent.com/search?q=cache:", "wayback-machine": "http://web.archive.org/web/*/", "coral-cdn": ".nyud.net" }; function formUrl(context, url) { - contextUrl = CONTEXT_HASH[context]; - isHTTPS = url.substring(0, 6) == 'https:'; + var contextUrl = CONTEXT_HASH[context]; + var isHTTPS = url.substring(0, 6) === "https:"; // Google and Wayback Machine - if(context != 'coral-cdn') { - return contextUrl + (isHTTPS ? url.substr(8) : url.substr(7)) + if(context !== "coral-cdn") { + return contextUrl + (isHTTPS ? url.substr(8) : url.substr(7)); } else { // Coral CDN - if(url.slice(-1) == '/') { - return url.substring(0, url.length -1) + contextUrl; + if(url.slice(-1) === "/") { + return url.substring(0, url.length - 1) + contextUrl; } else { return url + contextUrl; } @@ -21,7 +21,6 @@ function formUrl(context, url) { } function redirectToCachedUrl(info, tab) { - console.log('meow'); chrome.tabs.update(tab.id, { url: formUrl(info.menuItemId, info.pageUrl) }); } @@ -30,8 +29,8 @@ function createContextMenu(cache) { var saveObj = {}; var create_properties = { id: cache, - title: 'Open page with ' + cache.split('-').join(' '), - contexts: ['page'] + title: "Open page with " + cache.split("-").join(" "), + contexts: ["page"] }; saveObj[cache] = true; diff --git a/options.js b/options.js index b8b8525..f7f9615 100644 --- a/options.js +++ b/options.js @@ -1,16 +1,9 @@ -const CONTEXT_MENU_CACHES = [ +var CONTEXT_MENU_CACHES = [ "google-cache", "wayback-machine", "coral-cdn" ]; -// Add/Remove context menu caches -function updateContextMenuCaches(event) { - var cache = $(event.target).attr('for'); - var add_context_menu = !$('#' + cache).is(':checked'); - add_context_menu ? createContextMenu(cache) : removeContextMenu(cache); -} - // Remove context menu caches function removeContextMenu(cache) { var saveObj = {}; @@ -24,8 +17,8 @@ function createContextMenu(cache) { var saveObj = {}; var create_properties = { id: cache, - title: 'Open page with ' + cache.split('-').join(' '), //$("label[for='"+ cache +"']").text() - contexts: ['page'] + title: "Open page with " + cache.split("-").join(" "), //$("label[for=""+ cache +""]").text() + contexts: ["page"] }; saveObj[cache] = true; @@ -33,56 +26,63 @@ function createContextMenu(cache) { chrome.storage.sync.set(saveObj); } +// Add/Remove context menu caches +function updateContextMenuCaches(event) { + var cache = $(event.target).attr("for"); + var add_context_menu = !$("#" + cache).is(":checked"); + add_context_menu ? createContextMenu(cache) : removeContextMenu(cache); +} + var order = []; -$('#sortable').sortable({ +$("#sortable").sortable({ stop: function(event, ui) { // Save settings after change - order.splice(order.indexOf(ui.item.attr('id')), 1); - order.splice(ui.item.index(), 0, ui.item.attr('id')); + order.splice(order.indexOf(ui.item.attr("id")), 1); + order.splice(ui.item.index(), 0, ui.item.attr("id")); var saveObj = {}; - saveObj['cacheOrder4'] = order; + saveObj["cacheOrder4"] = order; chrome.storage.sync.set(saveObj, function() { - console.log('Saved Cache Ordering Preferences'); + console.log("Saved Cache Ordering Preferences"); }); }, // Set up sortable, checkboxes, & toggle create: function(event, ui) { // Set up sortable - chrome.storage.sync.get('cacheOrder4', function(result) { - order = result['cacheOrder4'] || ['google-cache-sortable', 'wayback-machine-sortable', 'coral-cdn-sortable']; + chrome.storage.sync.get("cacheOrder4", function(result) { + order = result["cacheOrder4"] || ["google-cache-sortable", "wayback-machine-sortable", "coral-cdn-sortable"]; - var ul = $('#sortable'); - var li = ul.children('li').get(); + var ul = $("#sortable"); + var li = ul.children("li").get(); li.sort(function(a, b) { - return order.indexOf($(a).attr('id')) - order.indexOf($(b).attr('id')); + return order.indexOf($(a).attr("id")) - order.indexOf($(b).attr("id")); }); ul.append(li); }); // Set up auto-detect toggle - chrome.storage.sync.get('auto-detect', function(result) { - toggle = $('#myonoffswitch'); - toggle.prop('checked', result['auto-detect']); + chrome.storage.sync.get("auto-detect", function(result) { + var toggle = $("#myonoffswitch"); + toggle.prop("checked", result["auto-detect"]); }); // Set up context menu caches chrome.storage.sync.get(CONTEXT_MENU_CACHES, function(results) { Object.keys(results).forEach(function(key) { - $('#' + key).prop('checked', !!results[key]); + $("#" + key).prop("checked", !!results[key]); }); }); } }); // Save auto-detect settings -$('#myonoffswitch').click(function(event) { - chrome.storage.sync.set({'auto-detect': $('#myonoffswitch').is(':checked')}, function() { - console.log('Saved Auto-Detect Preferences'); +$("#myonoffswitch").click(function(event) { + chrome.storage.sync.set({"auto-detect": $("#myonoffswitch").is(":checked")}, function() { + console.log("Saved Auto-Detect Preferences"); }); }); // Add/Remove context menu caches -$('.context-menu-label').click(updateContextMenuCaches); +$(".context-menu-label").click(updateContextMenuCaches); -$('#sortable').disableSelection(); +$("#sortable").disableSelection(); diff --git a/redirect.js b/redirect.js index 5823d60..03eb016 100644 --- a/redirect.js +++ b/redirect.js @@ -1,19 +1,19 @@ -var currentURL = ''; +var currentURL = ""; var isHTTPS = true; var index = 0; var numberOfRedirects = 0; var redirecting = false; var cacheURL = [ - 'http://webcache.googleusercontent.com/search?q=cache:', - 'http://web.archive.org/web/*/', - '.nyud.net' + "http://webcache.googleusercontent.com/search?q=cache:", + "http://web.archive.org/web/*/", + ".nyud.net" ]; -var cacheNames = ['google-cache-sortable', 'wayback-machine-sortable', 'coral-cdn-sortable']; +var cacheNames = ["google-cache-sortable", "wayback-machine-sortable", "coral-cdn-sortable"]; var URL_HASH = [ - { name: 'google-cache-sortable', URL: 'http://webcache.googleusercontent.com/search?q=cache:' }, - { name: 'wayback-machine-sortable', URL: 'http://web.archive.org/web/*/' }, - { name: 'coral-cdn-sortable', URL: '.nyud.net' } + { name: "google-cache-sortable", URL: "http://webcache.googleusercontent.com/search?q=cache:" }, + { name: "wayback-machine-sortable", URL: "http://web.archive.org/web/*/" }, + { name: "coral-cdn-sortable", URL: ".nyud.net" } ]; function getURL() { @@ -21,29 +21,29 @@ function getURL() { if(cacheURL[index] == cacheURL.length) { index = 0; } - if(cacheURL[index] != '.nyud.net') { // Google and Wayback Machine - return cacheURL[index] + (isHTTPS ? currentURL.substr(8) : currentURL.substr(7)) + if(cacheURL[index] != ".nyud.net") { // Google and Wayback Machine + return cacheURL[index] + (isHTTPS ? currentURL.substr(8) : currentURL.substr(7)); } else { // Coral CDN - if(currentURL.slice(-1) == '/') { - return currentURL.substring(0, currentURL.length -1) + '.nyud.net'; + if(currentURL.slice(-1) == "/") { + return currentURL.substring(0, currentURL.length -1) + ".nyud.net"; } else { - return currentURL + '.nyud.net'; + return currentURL + ".nyud.net"; } } } function handler(details) { - //console.log('StatusLine is: ' + details.statusLine); + //console.log("StatusLine is: " + details.statusLine); if(numberOfRedirects > cacheURL.length) { // There is no cache available chrome.webRequest.onHeadersReceived.removeListener(handler); redirecting = false; return { cancel: true }; } - if(~details.statusLine.search('404')) { // Not found + if(~details.statusLine.search("404")) { // Not found ++index; return { redirectUrl:getURL() }; } - else if(~details.statusLine.search('403')) { // Forbidden + else if(~details.statusLine.search("403")) { // Forbidden ++index; return { redirectUrl:getURL() }; } @@ -55,8 +55,8 @@ function handler(details) { } function openPage(currentTab) { - chrome.storage.sync.get('cacheOrder4', function(result) { - var cacheOrder = result['cacheOrder4'] || cacheNames; + chrome.storage.sync.get("cacheOrder4", function(result) { + var cacheOrder = result["cacheOrder4"] || cacheNames; URL_HASH.sort(function(a, b) { return cacheOrder.indexOf(a.name) - cacheOrder.indexOf(b.name); @@ -76,17 +76,17 @@ function openPage(currentTab) { chrome.webRequest.onHeadersReceived.addListener( handler, { - urls: [''], - types: ['main_frame'] + urls: [""], + types: ["main_frame"] }, - ['blocking'] + ["blocking"] ); currentURL = currentTab.url; - isHTTPS = (currentURL.substring(0, 6) == 'https:'); + isHTTPS = (currentURL.substring(0, 6) == "https:"); - //console.log('the tab id for the redirect is ' + currentTab.id + ': The website is: ' + currentURL); + //console.log("the tab id for the redirect is " + currentTab.id + ": The website is: " + currentURL); chrome.tabs.update(currentTab.id, { url: getURL(index) }); @@ -106,37 +106,37 @@ function autoRedirect(details) { if(tab == null || redirecting) return; - if(~details.statusLine.indexOf('408')) { - console.log('408 redirect'); - } else if(~details.statusLine.indexOf('503')) { - console.log('503 redirect'); + if(~details.statusLine.indexOf("408")) { + console.log("408 redirect"); + } else if(~details.statusLine.indexOf("503")) { + console.log("503 redirect"); openPage(tab); - } else if(~details.statusLine.indexOf('521')) { - console.log('521 redirect'); + } else if(~details.statusLine.indexOf("521")) { + console.log("521 redirect"); openPage(tab); - } else if(~details.statusLine.indexOf('522')) { - console.log('522 redirect'); + } else if(~details.statusLine.indexOf("522")) { + console.log("522 redirect"); openPage(tab); } }); } -chrome.storage.sync.get('auto-detect', function(result) { - if(result['auto-detect'] == 'on') { +chrome.storage.sync.get("auto-detect", function(result) { + if(result["auto-detect"] == "on") { chrome.webRequest.onHeadersReceived.addListener( autoRedirect, - { urls: [''] } + { urls: [""] } ); } }); // Set defaults on install or update chrome.runtime.onInstalled.addListener(function(details) { - chrome.storage.sync.get('cacheOrder', function(result) { + chrome.storage.sync.get("cacheOrder", function(result) { if(Object.keys(result).length == 0) { var saveObject = { - 'cacheOrder4': cacheNames, - 'auto-detect': 'off' + "cacheOrder4": cacheNames, + "auto-detect": "off" }; chrome.storage.sync.set(saveObject); } From 0eaedf96ae4e833195fda172b1fca86c2d3b7a09 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sat, 11 Mar 2017 10:25:40 -0800 Subject: [PATCH 18/21] Style changes. Removed old thank you from ReadMe --- README.md | 2 -- options.js | 11 ++++++----- redirect.js | 30 +++++++++++++++++------------- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 67b9045..87a4911 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,6 @@ I am also actively seeking to diversify our contributors and especially welcome If you're interested in contributing, fork this repo and create a pull request. Please follow the [JavaScript Style Guide](https://github.com/airbnb/javascript). -Thank you to Jason Rainbows for making all of the images - ##Version v4.0.0 diff --git a/options.js b/options.js index f7f9615..ce880e7 100644 --- a/options.js +++ b/options.js @@ -6,15 +6,16 @@ var CONTEXT_MENU_CACHES = [ // Remove context menu caches function removeContextMenu(cache) { - var saveObj = {}; + var saveObj = {}; saveObj[cache] = false; + chrome.contextMenus.remove(cache); chrome.storage.sync.set(saveObj); } // Create context menu caches function createContextMenu(cache) { - var saveObj = {}; + var saveObj = {}; var create_properties = { id: cache, title: "Open page with " + cache.split("-").join(" "), //$("label[for=""+ cache +""]").text() @@ -28,7 +29,7 @@ function createContextMenu(cache) { // Add/Remove context menu caches function updateContextMenuCaches(event) { - var cache = $(event.target).attr("for"); + var cache = $(event.target).attr("for"); var add_context_menu = !$("#" + cache).is(":checked"); add_context_menu ? createContextMenu(cache) : removeContextMenu(cache); } @@ -50,10 +51,10 @@ $("#sortable").sortable({ create: function(event, ui) { // Set up sortable chrome.storage.sync.get("cacheOrder4", function(result) { - order = result["cacheOrder4"] || ["google-cache-sortable", "wayback-machine-sortable", "coral-cdn-sortable"]; - var ul = $("#sortable"); var li = ul.children("li").get(); + order = result["cacheOrder4"] || ["google-cache-sortable", "wayback-machine-sortable", "coral-cdn-sortable"]; + li.sort(function(a, b) { return order.indexOf($(a).attr("id")) - order.indexOf($(b).attr("id")); }); diff --git a/redirect.js b/redirect.js index 03eb016..9cf7778 100644 --- a/redirect.js +++ b/redirect.js @@ -9,11 +9,15 @@ var cacheURL = [ "http://web.archive.org/web/*/", ".nyud.net" ]; -var cacheNames = ["google-cache-sortable", "wayback-machine-sortable", "coral-cdn-sortable"]; +var cacheNames = [ + "google-cache-sortable", + "wayback-machine-sortable", + "coral-cdn-sortable" +]; var URL_HASH = [ - { name: "google-cache-sortable", URL: "http://webcache.googleusercontent.com/search?q=cache:" }, + { name: "google-cache-sortable", URL: "http://webcache.googleusercontent.com/search?q=cache:" }, { name: "wayback-machine-sortable", URL: "http://web.archive.org/web/*/" }, - { name: "coral-cdn-sortable", URL: ".nyud.net" } + { name: "coral-cdn-sortable", URL: ".nyud.net" } ]; function getURL() { @@ -21,6 +25,7 @@ function getURL() { if(cacheURL[index] == cacheURL.length) { index = 0; } + if(cacheURL[index] != ".nyud.net") { // Google and Wayback Machine return cacheURL[index] + (isHTTPS ? currentURL.substr(8) : currentURL.substr(7)); } else { // Coral CDN @@ -39,15 +44,14 @@ function handler(details) { redirecting = false; return { cancel: true }; } + if(~details.statusLine.search("404")) { // Not found ++index; return { redirectUrl:getURL() }; - } - else if(~details.statusLine.search("403")) { // Forbidden + } else if(~details.statusLine.search("403")) { // Forbidden ++index; return { redirectUrl:getURL() }; - } - else { // Success + } else { // Success chrome.webRequest.onHeadersReceived.removeListener(handler); redirecting = false; return { cancel: false }; @@ -62,16 +66,16 @@ function openPage(currentTab) { return cacheOrder.indexOf(a.name) - cacheOrder.indexOf(b.name); }); - for (var i = 0; i< 3; i++) { - cacheURL[i] = URL_HASH[i].URL; + for(var i = 0; i < 3; i++) { + cacheURL[i] = URL_HASH[i].URL; cacheNames[i] = URL_HASH[i].name; } - console.log(cacheURL); + // console.log(cacheURL); - index = 0; + index = 0; numberOfRedirects = 0; - redirecting = true; + redirecting = true; chrome.webRequest.onHeadersReceived.addListener( handler, @@ -98,7 +102,7 @@ function autoRedirect(details) { // Make sure it is the current tab var tab = null; tabs.forEach(function(t) { - if(t.url == details.url) { // What if multiple tabs open with same url? + if(t.url === details.url) { // What if multiple tabs open with same url? tab = t; } }); From 8d67af76f035b01d84afa8b8e17bd2da34e36230 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Sun, 12 Mar 2017 19:17:20 -0700 Subject: [PATCH 19/21] Added chrome store description --- Chrome Store/ChromeStore.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Chrome Store/ChromeStore.md diff --git a/Chrome Store/ChromeStore.md b/Chrome Store/ChromeStore.md new file mode 100644 index 0000000..f2022e5 --- /dev/null +++ b/Chrome Store/ChromeStore.md @@ -0,0 +1,30 @@ +This is a chrome browser extension that allows the user to view a cached version of the current webpage. Set your primary cache as Google Cache, Wayback Machine, or Coral CDN. If what you're looking for isn't found, it'll cycle through the other caches until it finds what you're looking for. There are three ways to use WebCache: + +1. Click the extension button to view the cached version of the web page + +2. Access the cached webpage through the right click menu (enable this setting in the options page) + +3. Auto-detect when a webpage is down, and fetch the cached version (enable this setting in the options page) + +Source code is available here: https://github.com/Dbz/WebCache + +PLEASE REPORT ISSUES/FEATURE REQUESTS HERE: https://github.com/Dbz/WebCache/issues + + +Change Log: + +V 4.0.0 +-------- + + - Added right click menu option to view the cached version of a web page + - Re-wrote the HTML/CSS of the options page + - Refactoring of the code base + + +V 3.5.6 +--------- + + - Fixed a bug where first time installers couldn't use the extension before visiting the options page + + +Google Cache, Wayback Machine, Coral CDN, cache From 81d53e39c2febc3fe4b98b5c4661e7b7defc8398 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Thu, 16 Mar 2017 11:46:58 -0700 Subject: [PATCH 20/21] Switched to new icons. Removed old images. --- images/CacheMenuBingCache2.png | Bin 4508 -> 0 bytes images/CacheMenuCoralCDN2.png | Bin 4972 -> 0 bytes images/CacheMenuGigablast2.png | Bin 4653 -> 0 bytes images/CacheMenuGoogleCache2.png | Bin 4770 -> 0 bytes images/CacheMenuWaybackMachine2.png | Bin 4633 -> 0 bytes images/CacheMenuWebCite2.png | Bin 4244 -> 0 bytes images/CacheMenuYahooCache2.png | Bin 4597 -> 0 bytes images/CoralCDNHelvetica.png | Bin 5093 -> 0 bytes images/GoogleCacheHelvetica.png | Bin 4799 -> 0 bytes images/WaybackMachineHelvetica.png | Bin 4749 -> 0 bytes images/cache-xl-trimmed.png | Bin 0 -> 330808 bytes images/cache-xl.jpg | Bin 0 -> 458523 bytes images/icon-128.png | Bin 0 -> 10601 bytes images/icon-16.png | Bin 0 -> 933 bytes images/icon-19.png | Bin 0 -> 1166 bytes images/icon-48.png | Bin 0 -> 3548 bytes images/{icon.png => icon-old.png} | Bin images/icon-small.png | Bin 3557 -> 0 bytes manifest.json | 6 ++++-- 19 files changed, 4 insertions(+), 2 deletions(-) delete mode 100644 images/CacheMenuBingCache2.png delete mode 100644 images/CacheMenuCoralCDN2.png delete mode 100644 images/CacheMenuGigablast2.png delete mode 100644 images/CacheMenuGoogleCache2.png delete mode 100644 images/CacheMenuWaybackMachine2.png delete mode 100644 images/CacheMenuWebCite2.png delete mode 100644 images/CacheMenuYahooCache2.png delete mode 100644 images/CoralCDNHelvetica.png delete mode 100644 images/GoogleCacheHelvetica.png delete mode 100644 images/WaybackMachineHelvetica.png create mode 100644 images/cache-xl-trimmed.png create mode 100644 images/cache-xl.jpg create mode 100644 images/icon-128.png create mode 100644 images/icon-16.png create mode 100644 images/icon-19.png create mode 100644 images/icon-48.png rename images/{icon.png => icon-old.png} (100%) delete mode 100644 images/icon-small.png diff --git a/images/CacheMenuBingCache2.png b/images/CacheMenuBingCache2.png deleted file mode 100644 index d225ffb73d8615a2d5d82bede2b20c106deef7ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4508 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 qBNan`Vl00000 diff --git a/images/CacheMenuGigablast2.png b/images/CacheMenuGigablast2.png deleted file mode 100644 index cacacb4aa47162a998961959557c131ab21f2f1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4653 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 diff --git a/images/CacheMenuGoogleCache2.png b/images/CacheMenuGoogleCache2.png deleted file mode 100644 index 1bcfbffe08ce12c98eb3aa781af33ccb2430e7d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4770 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 diff --git a/images/CacheMenuWaybackMachine2.png b/images/CacheMenuWaybackMachine2.png deleted file mode 100644 index 5c74bf576d10cf797bffd03626d357daa628b3bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4633 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 diff --git a/images/CoralCDNHelvetica.png b/images/CoralCDNHelvetica.png deleted file mode 100644 index 13538a7b32a46c297af2897a1504fb846f6e5638..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5093 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 b75#4jBT+O#%T3A`00000NkvXXu0mjf7R~BA diff --git a/images/cache-xl-trimmed.png b/images/cache-xl-trimmed.png new file mode 100644 index 0000000000000000000000000000000000000000..bbdd1c94a5dc4227dc33c3c783bb35dbd59f5a27 GIT binary patch literal 330808 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 literal 0 HcmV?d00001 diff --git a/images/cache-xl.jpg b/images/cache-xl.jpg new file mode 100644 index 0000000000000000000000000000000000000000..371c113d6290fd50c2f1d655387d03632ce95419 GIT binary patch literal 458523 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

      h%jZ38&qw>B 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®_^)ys6-w_#@NpX~yaZ(yn_l^|r@$Wo&NZ zlUt1$4c@(N2F!Z38wHvqnfiTM{^;&@Wh&yF;8tT6JIxtVeAApalR%EX`Jg%?*t4|h z-MZPJ#GD;gc6zrV8alG#vXg;h4%!gIGNcI&(i!?f2C9&lo{`>;PYjDK){$v#^ERu^ z3eTb~3N}enx0vyqH;W!_(u35oJ-)@+MHL1g4!fH|v(Ud@Z%IOUrSUc@h>!DQBDldH z4gHgoAD<<)y?YIz6b&Xd_|C58bF@^YVtw^Z>{}(j zvqkxIBk+gzon!@AVIJ+1_3ev$(;-3f98O3e@N#=sIqMRyMn10gq<3uQTNGhDJhX+G zNe=_OL8;n5^XnBvh+g1*nk;top3@$|SyAZAzMqxbm=zeHiZo}@0T2xw( zS!!L#TDS?yR(3PQ+brcG@^`B1*^Ce*rWksD=8yP~x`&;^2dZ6Z2bD_hLDQz!YtWZT zBfgYHZTXf%HCA`s=T<-}A1q%}Uhqp@ZM0u5{2(sfCq>hJBh#SThLhIj)f2l&vf)@x z5~+~k(pM^e4Un`N&HES5H~-```PJKjocQevyv^0a;=R?x&pd*=cX+E0W5&`=5L1*| zeiV$O_j}S=@XWxLOIsq*)Wr8IK(UTjLQ)Z1vykJ}UYuQMSUJb6IS^t_g2SCzdXZCFE7NM4VaV}8( z<6r3&TOc{ZXH=^o5QQm}s28rjO0_#9x>ojl+}Q)C_#pnQ{^j_9jgIScCA)oz`Oet4 zgS3389xA)or*u|R7F_|X{adqmF}k`w>A_7I(0jX!khk&6Ib*+4>;G%>bBhPe&586A zR!j-)uB&g`Z%^&+(s}{50-`o8oEx)cVlujU`qS{p$WfR!#)1J(u=GlIKEC2W3+FZ!`!+~{b`hdAb z*kRY#yS5o=WdDNo{irz6dbnLtQcY%t1C`+z_4O2UotiJ*GHU8$Gw+Hu!*BC%$yCk!JZhK;AfPnc01n zv*Yw<@`RxSQgb!jYMUYihcK=*Uw$0oR;+HB8J2PkciGOCQ7&IQ=7e!Y~q!uM#} zL@mNjKtJLwZ-fj^-hrR@THimY2pC%Z+y?)mGkE}1aK>%H3xZ*hoN>E z#Y?lw+`e*r2rqUWX=lLVU1wHij|%`o%l9b&0kbZTeWhYfQedTFHO|U0fBq9!-;Sna z8!jJx8(?RC)7o~fdq<2J!`0Yc=A@^EerIb5NFapK%Dw}0RV6nqLI8*~+Zr!#)h=CD z2JkZ6LlsUP?56RYybKdp8~XWI`XsYlX;#SyZsKzCX1FSO$clZ2ecup~J#D3iq3bGiG@TSjj_ucY!5&%VV)1GLr>y+dO5)WLXI5(WNg51ltT1js^{qrH|9zNegrtk0g z^P$&Ax%dWTrz%SiVGSL42t5YtD>o5$7phJ#P1NAuCOnWHg`B8mrtxDPW9^8B^8#m! z(wR8M!MGSVVRh~wp9sHn#}}iO`sOW!o|?w~g$i1?aO=b;3|ylOtDUwib>Yo_e8*gF zdw~LmQ2RDcv5riZISaSlVw{b&89#u%XL3+Z!~0(^JzpQv!?-xnD`(NndxdkNifR*| z4Bxm`pG3BvL2YC(~A{LNqCp6b)-Of;Sba?bVKE(P@fIqx~KKjzJ_Z z=WBA`;lcgIf#bDet?=$?exe`~J)kg8pdxl7ikTvvHY=xO_Erf)D}?&N*D;wZ^wPMl z(lyG9wPzdKhVEzuNUGP(btMZ{TaypJl)6G`4bXL%$L;$zkJ)TYe4JC0YXQ7ke zU-X8KZ-g@&9oBa2Q#cQytkpg(P(DDPKkYc*}U9)L@N)IX?sj4&)meLJ#E*}j+@_L@&!*+ciD?K39|EQNx%tC!j5v1 z==z&O-k{cuK8o{Mk0A#vyK=c{eFc`SCyJ;n4iOCm(JX@HxdEv;g;J5=F$l-XmDB&! zrkA?bIRk)Ly%r6vqQ{l#vLe>_=Qx}+Fne*fjLGV{?c8S{C=T7(jrB^uNOZg881WV{ zQp>J%H?P>lCd!e8leMnVVCAjono(tI;N2rbYgMlczjYj%DK~}KG^58MrMfd+Ny)Rm z2Fk6__)J_~Xmi1=5)IO!6)dL_aPwcZpv9E@n2gc(ss#$dvN(Y9k}#+dXSJs8Lw?FOJYJ7~gBT zHPgA6nbTBD`1aNeXo!xDkadY1T}qes%SUKL^942}A6wqCMl=l$Wd?=Zjs*`k6HTvw z_Y_60b@YPmbw78w%PEU%k!JSAWxyTN1Lwh=@bt@YQf-WZK}q4N0YPP@6;G>Sq}jT*xBbn zY0qS}*uYHp#qiK6(Yq-!+=T_i2Gz`KEDKLmwyG?Ob#~rT^qThk_ptNU6x=Ais=j&a zOJeIZ6<=X)+$T<&&I}hD!*V%#CP;i9@&t{$kGP`UKWSa5x|@aAUF zI%7{*l5{jTu&!Q&@&Z)&!Y7ttG1nCkjpg7wfW(n@z~Z@>gX-O^*Lt<7zOzKfbbWkk zDQ5DbFYCnnr^|OLnugN+D%o^iM*_`6y=*-Q7MzWLB$&O ztF&f9G+Yhs9YD3L-R=kYI2T!G(QZhA?za`Pk%__b%6M}Znc{U~xJzNu0^Z>9^766TExJnXr#X)P3~f-eqTiW;qqbXGPEd1!}R zxmPggXX?3M+2fGOn}&^`6i=;E4?EJCAn z&|YY#=ex#h)Ztp=55<~U{Z$7HgfGvm#;(7~lGL486r{}mq;FdzFLfMq(@F6IQzz>Km3g$wju33POC=p`=#%uobOL_ zQ$6%wiXPlHN3Dtb(>3G(qV#$z_Cd$#==q4Sx_324DEa^ch_03NXzKC#%H-qdw$Aw& zsF(XufBOpo7$`V;7!m`sJ-Fdmi(Gul9e5!OBb*cRk5|g{H9vI^r5Apv3R)8ib3)=@ z!oT?&-uy+;^y7V(P}El0o5D{ffe|_$vaa^R;kb)wNa~X~QKC6>{$XD1N4#rwtUee- zZOy_4;1nIB-ECEU3aJU8>}sRfyMc`TsN%7&*4LQ?-f-+5uJCO*{==v@e^JZ-w2K4J zYqz6K0Pc|3U{61i2_Ofk2==6{0o)dKJTeDN1K9IV0_-8MrcYESZOci}5YHm&I5rZ9`|43 z(*S-VRm&QWvR{7hAp0rtt6%Ak-|AsXcR*Z#pK8rwIc?(9yi2yWO~K)>*QP?zXea(B zF{PB{q)-bD3e&Z9_R*=0nUag7F1=g_4QQ}m$Zy^*4rM`hU258V3Lxx_DxrKiS->qY zfQ5u0u(raeYFNHOqJS$I$o;e@_G1+8E%^$n=)N$2#;q&$XyEe7JD!2UG4^C-yP=I? z_7U%J1M6DPOCzmYn0q_9Q(4++cBVtkI6>l($?KG7i+fm2MMhtyu_IS&Bz`r)uGz^8 zK(;T0_6tkISJ4+cKG>Cw|9t3bCVFF=r~AYMlz=_#Msl7^bC8&{)D~^k7ByC^^#Hj{ zy|(vq3Uf}&T?1V^zSt;i$h4aRDXR1}OTYr?bR=&go*V^E;j1rhUcBTz(s{Mrqe7GG zci~sM@$Z;nBlI2S`Vod{B<9F-hcy0s1|>L>B<8R(s~|K#D>!5Ub5~M-6-6OB^DeMV zb`JEx$XpbgH|mM{$SnNnV%t&e=V^09K(5?a$ar}s*`qV|q5>|9#sTBz zL`kD#0+of4aWW<)81>k}y*=x_`3X#~_vwgS#WzeiSwi#-*yL6_ji9L2^48?KcOl7u1du`b8sGQNL@%%_ zB=||&4!Px@g>1_2Re+VVj^b*kL8_uLv9tx5FjI`4K|gLaFa)qHR_dfkqxjf+_bSR` z*A!0TS#u>~a+_(?RRK?lj$MyEVE z|G6J6Mx7kJueOn1yz4eLF2-jWVZWbJBHE{w<$d-zJDhs-z%A2R1x5-EqbTkUu0B*kXou zQ(bFziEWKs{o_o@4CWK!C6>uk~=eQ?8Op z@Ajc*!sOnfdpp6#;Z|#w$e8%qhZi$EGihrV|9U(f7cYpl8c+5p?JmyDY+1L1{>WHB zhs=U(H+RFZ?(B;c0P5}r)e5h~(#q~%OIy$>%Y0q69nGC;>P&zF*;~T-LY)e7XbOK) z(hPTb)teyM;{pjG0gF|ub(|(a{CdoQ>nZltj?QX>l&xm2q@5Z&>QH!2q8b>Jh{}@8 zM$b+T+TbF*H*^UxnW9Eom=xV0psvSD7f;=Y~K(_aw4PaN^6&!!jVfM{m zxBM?k-g~RIlk$^zjny~Wr;A1Kw%l`TR)0{%>TmmA7h--sRPuGEp;O83*DGfG7$sQ- zc4yHacm#%DOx2K#FDnAvhS}gz@of@!yfP{7q^ky@af=`gF4hkJwR-=;iT~Rdzxgq# z;n~+~*sIn0)}?yiCE~RDib|fH&rG|#go<^$K*DrOJ@?&+kxTinmr=0tRX7=coSm4# z^}+U;3R&6dStrzm58mYST_)q>x04dy@%NT-1uHK5gTaZ+v7dgeHHRNJ@!;t}XHcX* z*5Ua2iJ%&DEF(Gx>hzwSmfXe8a{b*pX_`GiNpidTd1471#JgWzvyJ31g0`nv=AqhC z0lEH0PQb49anpE5j9G|BN>5KW8$gyKY_|ogmRxiG*%&%era^p!jvR0H_6A|Rz0dhC zWX-egB@MvV$%U%(2_JScSEFX%;BzZ9cVhbX>Q@4^;&#}^(Y-5Exaj%Uk8yV-FK&O5 zn_yFqaruLCW^wO+3se7jIiL_68XGh-f4^^4Ck<*l!99MGsm;&)Wa)%SLHeuq zZUjrrwN$g0Z&3tLh*4q1T7>o#Yh&uZLd(ejKz ziUQgW_r~$FD@$pqbBzsYoS=8VHeP>achWySx5vQ8{ZKd84tcOXOdAC~4({6!>Pj%r z98iW}Kx(ZCu?s)9qmZtNZ!CuWu^*KTbMAhc-sW?+%PA?r3fk?f1CuY%;FI!DB+OVc zB}>+J^`T8AY$pQ=ce7?c9~yoF&N7HkWs5*!JD07CwxLiEUyCzS!F8%xAw?|k_&n;` zqcQLdqG6V3GJj#9kNt!QM&b-5U-1se%DxQ`V*3OgJS^1T>-c;_4 zI9FKbX8;&Qn~g;d>^VTES)5Gk=FsW;X1ps6(%HT9iDl||LodZp=LGZymg{n9P4Rp3m`Zn9XvE{z&G?LWkD8Y=2bd_%eg-S#1^C4pUN zRsJiW5ysB5HPN&BLiBf=b|?AEiO)bVB;`l4!9sx8)9+z5>E}ZROqvkN1K2mN(NG^N z_DtsUgJdT{GlOL;TUX*@+g_X3)*L&l`%U>u&PzsK5UDQ8r`}2qsNSIe4x~KtfH(>Ooj-$fT}`J?#3v!rnI^fgyQLj}mdOKn65wFi?Ms)uheo4ptoOdd zEDABtB)Iu1*Mk`9Os%s3kW5~Ofy5O9#NMl<7^@PkAGm7=}R%G)C zf$6S~k|E-$ruf1qbf)oKK!z{8kFvJz5eHYZEGXVKbsV}Zzj1#)?)kApzpKESx_+MZ zGV5XG%qPs@TDy-{+Jf3O<5$D0EN>}2I+C{kMZi0`U(7P=mC8(lckV*Dlb;x3 z$*}O*xv{xz$XW=tRDh9eCJX|5U+zk4NZ!jhuojXZj^xxl-OSc^nerdzF!lIGlGH*V zfmi>%-({hUwui$svp@gY>&J{Tq5tc<(hhlUBFTzs+0eT5^BP#5={^N@m$1Xj=>E-K7oeA?$#=uFi%(N373 zZOfi4R1UOrkjyngS31an+1dI1 zoE}Ei7ij1>gfblw+NZ)_!$oX^_Xxl5o_sU%)tXKoyew{1)l~nzt|`yOjJMa=E_=dI zB}8z{b~6wf>!XOWv)BVCcIL$ZM!|0Pm%tzPQLL2C3QJQpxUQp_kXL}f5M}o@W4Z%l zc9jNe4by$t@XbFm(N4gR9I=YVLEj6@!4ax)09@(TyN0mA!GR99C-FgS%7-%@N!Rxc zwE}1vD|SwqHAfN{NR!<7D}YYuBU*z;oB-Hf6~>JehT2;tBmo>yr2{nzB0LBWhIIiv zu!N|yi10m4C1_Hentc6r)puWz+pdhX`6hZf8*6Api(VD!BwS8D9A6QWf-}_;LBks! zL#~?y?SBaizzm}dU#;B)AfnvVHu8yVDjykJE+^yv1)^@`WIP{LTilgW1CYV*AKUbL zDxnM3tNV_%AJi=R&?22vhHVCJ)U2L0Ye+2kkjp3BJAS!nOBq%#1Xq9M`mmpS%f&rF zvL~`oRUzM3DP5{UUepy{k0tjP60C`E(C-_msff|l&$<_1{YX(jY1RNUO#y?IO8Q{>HP@L^LW}3~FUaR{46*@zCBO z=^!1r5B8!r)DcY$Pg;S3Vr~FAXB|%KQYi$~i^$ApsLJp+>Jo4mcLXh^D}+|d<4mInI8H1 zQ1uGKX?U{@V9miWjb|~Xv^tr0+wl+%GhoKHij4R!zPVs9l9)K=GXCU}$7=~s{NEB& zJkiT3T^3dgsdoTkT+_0Isgj6<=@$2LPk1 z^sek|Or%1s@f@gYE_Oied)Icf!UYYdf>)R zRpe(+H5P1u@D`G?e(}Qk`RI8_M=mZG#dEjyb(x&#XZKU=r>WRpnO{D~u3;+w>>2mw zl4#EW-1^Qyp)rp9}WfBE4j-x6}yE)jxn_6q|ux;da)akHf$9K21zk)w7b03PSe(UDI(avvDG+w zH0G5P04ML7x`ZvjpaP93(~EPZlxc6A=Ow=f|N8GAKJT{>a0x#ZS}NabcoP)txwm`d;yKTX2=duhvuIjM!qd8`tCaO47pM`t`A#XU6oX4D$B}b9J*pf%NRAzGj>%anmATz;;eKuY6v26 zL)u|U|74$&v(|q1J}>*cd%y4VJY-(>vn%)3wA-?y%?f{jM%^rY$#cy6lDD%&9hHB8 z#7iX*AT}+nvUV}{bGnxKh8;(?ym)W@{y_50@V_?hudnw&-=I9j$zYabsS;cdYBjIfbK_ikVRrmM0PZRe;kbL_hq)c6C{U55t8@BX^Wf2!;KP8)m7q^`*7*{u+xUW5H` z`=V1zYlw&$&%pZ=edeBM*3wS4d{ZX;IA^;{ZB~zxSam~h9(Hrk%2V=oOaMxvYDNsP@K+Ye5n0LM(hf9lho~*=DPL5pLG`BtPoqN zgnkFKloMC>BikvF=!~10n-(Q4X(7Iln%BfI*a|a60H2R zSh0SUWco^vST55O4qvR}##s7h`X?MoMzVSfo+#`XIX5Acxg`8%>V&nfoql$co&Ln! zk@~^M-B*GQ1v_OwC-tpm{OtY$g*bh=c51yi1z{0aUl#Amn4a8dhK9S!ZUM_5@mQ+6p7rbey?6fs+lCf=}I zGH3;O;NbUq$|{y*grbp&)LR)dm}qx`<7Hm?eE9Aq>e>rW-Yux;5kK$d7MR5kQqbcQ_biwa7sOA_@C8EInxU<E7VPnz(od$ZaShL1gCa~O~b zAS0iEI%!fk0#xe02z(Tc^>y0x_2v1bS?9QTUj35@?@6Bt|HNe)ZoHP~zrGoIa&}cZWMU<^blke9 zxi)y;=?FEk+sxDg;>s+~8%Y5ycmztTvcNu3lKF7Mb_}d|ny|W4X?6f=!?*D(A?{^6 zH_~*}SJV;neS?}gY-y%rF40e;jeFT z={n6CZAcA%)U-u_hIC~d4c|hCCaAqH$^8McQbtSbPN6dGJUY`FdOq%j1t1e}(%#>o zx-lmWpMo;_@)uyIL26g1H)$)pNlVg&0A)Zr2P8$D029)z&=*vqj-$bm~WdL_j}UUMptq+c&DSH@~$&c+zN>yp*pG?{?jiu{pFu?kyai)WFOgbv3t1K2#2{2)ccd8w5@~e z>o?XCmlj8GLyk5nOQ!)+^usev{| z9V^)Cys5B(+shFY{j5UE7bW=nL72DD`ffzxgrPN~I}$tK#l)^WlZvHL;uA8{%k)!A{=VYoBiSI?dMy3zJ<&0miBZ?*lI zL!A9nX-ohc@JV_O!{zA44J7lAX>JdONSV@?5|sc3eWuuM*ym_#=7-7+JxWboY0~#P z^4Q$xn<5M6>FxrD8>yDF(rIT)aHDJy!?+gJ1#)4GWo{9Z;+p}|IS@qsKxIwZvi@70 z|MT42`%Y&g&170E)zH9?SLGefTAWcXKVa#Q^($2<9YfwiA6oenywackd=rDljNu2F zq{ceeWE+0qri1De{`Wh1)<5?6ii!P$b#u}ib5-wj8t@ZMc-!j#G7a!Ab8sl|N()E& ztSzG_$^b~uJHBpC_yrh5Js&np6Ov+-z^@X~s|Bz?^Zm3Mt1f^S!)0 zaPEu(+{S%~Ui4gR=Y4uoC?asdAHTJIcqZ`p{B$F23&Zfn=lVO%Y&^XxG#KKJM#Ago z<$3HmeyoLY)19f@<)_lMA^7k?a!UvxtN`6j#7s3XS{d_L=mE9Oybrrt5`1ITe z4%0wDkq^rwawGeH_H@a6kda>s9dD0cjAC=Wu?YP))qwz?m896hm{51tyY;CidgIly zr@vCZF&d_%SpPzW#gwIE43197A)2UQ?A&+ABGaYfmDF_g&EWP|(r5U{@G9!ihav58 z_cC!lyx|vPq&U+7vF4Ma)7(7pXg1oB8(fjvyn}GtUqY~rrKZMpWC2Jk!egG^7l*Rj z=2A6-WK{pbs1w}*<&8dEZ1YY8`EEyGpFwP^-#_5i9OUp!09%Da+&B-Bv5+kCIfjKx)LLfezY_Ko_&{ii+_|~vKUP{kc zbRWxbW7X32JS3ddm|J$Y68FO=)qh0kD=$yQjEw~bY`{Q=r@bd}V8U#&)PC$Y)}jpG1V%6F@)uKG7z490F8Joityz%_LhGr$Iz>e#~Vhd2+azEGwAn z4*aO%QNv5>!L8sQ?a8dt)f@A;i5X?)D_ucjc7w<>lguGI++w{!-vvEq5(+e>+?mj# zZ~}m=+M_#}q>O>Zfe9%~*bd^+{voPZ6>_84&jdX25YO&jnl$#zH76CszSVm7&0Q7f z=CY%Z*Yh@mjThk86n=urV*Z)N;`1B#ULO}xmII(9UN9L-X^`_~MYNv?i9Fq`dousN z_jdYrdipg5yP8Dvl|o5O<;ardVyNtfc}|_hGO1~Sy`!m|lB*(LmixP-ueU)Fmr=_( zoYzK4QB98YQYrpUb<|E@9L@=C?1mfnFB;Gi+gqvv zpZEKvc~Y;lEg=eSLOj2sP5loz*Z<`sk1@lmQ~C>_^l; zP*|erDd>h&*$@{VHbO7#4Jm6tWf3gS?{O3&4jgTm`njmfh)HC&QZ{BL30xbP5==7z}|W^WuaI= zX-w)fLUhAB9pQ-{hq^3rY&iL+MY+RB*$!`M@7N4Eq4Rx@INDTYezX zk)C!vgr$%23syW6-d$(he?6=_D`IuAlZ%#N_^{0(#uLXJFH82`4z?NC^un%-jYNR? zJfd#aAzoqdABw<3mlk_EPH}L@D5|70xVV&Q9t`pRfMPYoNzgRBO;$gYeiqm)BZ@N+ zXIqpqpIo755yVFd9;TfSZSuIrl^c$^&(I#e8K#n333;c|2Ps8JLew<0iuz9H1@5EY z8QW3=Jv_wag2X#>(Mxt?{)F^8&_#|ZgwN@UR~S07N9SDnY@BFNp0p{zmH zHr-R28brGU0JoQIt+0bGE>yVc5s7Ao)wbuPo0fj}U-tjM`M|Fs%IKVs?xt5hK^-p_ zyOFj8l(H}m>Si*E3f|a{YKjFWP>XC zm<>z9v`NiV#;}+NE z4V=F=TGE)YJT6nzPT#IL_KZeAjE@?^u4{#x@`>CIQX;pd__f-9lWw+Kv)UqbFKs3} zc??faib8ss1zun-C1JLxJiyFksIXxdni^?<@k51_OCmxZ@{047D_eRGm5#HpwrM$` z9-{XUw^5DzsFLi;gTs$C!(mDVg zdEaTTQhC1}uYp##d+Hm1;i{!Y9vY6|c zZUc)Cs>^#waG#_^pOBZlC0;&%Lw;aRPzsm!4^szi{BtYU$D?e(9}Op^t=#F}vSx%n zQU4KEnn>v%Rg}=j$isRtkIptP_fn9J&zwiw&8UKc)V$AHyYRxAG~}Ryjh1Af3ch_d zkp#<9h0eT~juTw%muPGrC%6QA4ri-Jtw-z)0<@`k*aaMq4ll96tHohBcgg{j8FAp(|j0U_@KEelsWOMZOjRt%NufBb?`?PU&4?z#>ItP1A@1#1m`J2;bjysL&*$ z##f#up#+_87EJpreo6zM3=)sA$mVb0P z`A>cA@BHVlzW4l`_Q2QUXwy_WCJ^=nB$|B_iT`Xd>!@W^emJCEsuD{9=l|r9s3+=T z_7G*^;d6SIUuB40xyPwa{u!DTM>5L>bxYh`(?j-`uHTq5HOqZi$~W*7w({1P36TQ} zMbP8+Y;<()HR1*7+C;8RY0MMGg`G;MjpywKYA+g-qnVP@!wXC6#~j#tCMG6!C$%xr zyVK#}p)HG77Z;;z)rExx@-iN0ZLY^Wikh=E91`@XDct8W0SdNi6womTUFZ7&3Nedc zcnQy)^D5EReF2UlHI=5Yhb(}#s(F+NP}l(ad_xH_M|q3?G9O^@JYvy| zyV6A;qH1A~M94nPJx&KL=hIu6$I4~v%JKsJQbO`fPvsx>!){l9qj^wl8b87sZHkcZ zF2PyE0@74YEkmr3`6X>vos%qfjFG2d_`Ub}%=_#*JD0PZw$D0g7KVTj@v2G>iEe*r zmPTfyeNI~73=op*%G3~(TjyHx)eF*>YQuVbdLQ@f@WZbx2IZ_01xMBr zxrI%;F5dRVR(wY%b01Z_FA8}gG%Q>5iZJ|6=QrJ~4U1Pc!yW*&WZgnlvXZTcEftWt z*{#8WdC269)d~X2U_;rmd{0yhBa3SsIj|8$t0QJV4`byET^&4@zE%WVc*lm+p&*QE{RzSIosPkD*%W=u zTx%FF7mADhCB4&W^5Lk(9BotbuP-sb`w#v7Gu`<0 zWhF9=#pYfJ%Bz|Yao5h)_lDfKgDDA#iCY@|{y5u#xZZ$52Z#2-Y_oG+r-RHcQd|f7 zW2TD8YcYm0JvaOk$j_H_1*_xN|>g?e|)H}+ou+yf-5C> zyvQI9lS=hxf<(lJ;*6fz3})#4P|od+p^+gh?o+wQf@rohBgZ3BMqSa!o~boKyD8t% z&&6aGl}UIk0V=i4g;7gzH&6od#CB+%y$0(}H6`=%(fAm@=hScpTN4!+DT= zHc%WtozQpXm1_L2CKE3tIa~Edj%Wq10xvZse%msPJ=NfzS0~zUahfye&KWzQ$MSTj zyPe@#UeP78EMDe9F-Qz>%1S$VXIBMf&6Guc#d8gtXv z>Aom9@l)vRpq}#3VWEMqWA|L>(DqDRoX>dKPm8X(cd(9Sln5`OML`>Vh~~q4^yFe5 zzX7@x(2K82jmf2`6HVq|h@Jpr_=i#1Pw4H^I8qb62lMH-qb{L#LKoVBvCL@&uh=uu z%1uBy$ZyZOH_w0mlhysd<5g)n0S+&fj{awN_{Osv`$xu)hzsf`6QylXw=!Asr>%d8 zJ1I>}rTGNYt2mpH*;p5$LG_^pmmvwPgD18Vjg?n4)n_uR6wMGrb(TeD6s1D$j@wf% zm9N@Cb%k_a0H)Gr-|Qz_y^w6NP85P|8@eDWry9Y~3e+NPu`_Ju^e337CG}Jk!}{yr zcwHt|ut}O%n%8pUr)Enyo4Wk;&CxUf1dgp5FFk?eWrIAbeU@>gPdz{1t}Cc1fNZ$mwoiQVqN4%o zc5DV2*v5%&hHlEvFwmErn0eV6BVjk|(HoJPZdGGu^qW{Z@fHshm2L8N@M_se-X+Zi zJ|sB~i%n{k3|W^?TW@-uLDXwpJ~Q3PpO;|570L3s<(ZY-OAV=Ko%0VrpV$TPdza2g zDQ+IyG#{4aqVI3`_c`>&K6m!9rFS}-pN(LpV*yz4Sf3$Cx*b_9;_#fG37!kLy`abm z_!r9G2{$LyyR`|!g6O{A2w2m{ZNXN3O1jZv!-8?)+P#`cZXMzfU!GJAs_HkxZp;oc z?eN>HZ)A+#wBV9uyyQg1Mm}d3g!;?~EiaSM+~lFqQO91&fgUJ{yHISTn>&zf%i%|r zfL=cy0Y&7R33DPr%oOUdVQDAxVP5xqjXf@XB5tZI%I$GClt{gIqpnG!wJ9kAJh~RY z5aH*KZvs+SJtWF)^@xUV92m`L!`=_7Lj~RS{L#aA>(Ep6tJgL1s?0J+=T)Q6_QYA5Hmw@ps(y|Et@F z(aJ;0t>&F!Ix&M5b2S!*WIkGM@ipqGt*Hs1ycTiGdfc&Taid}cvgD(XoL-BP&5@4X z>P0sz9*u0st+Qfq{^NnBB9p4y`7|+J-ra>1t z?{p$PuJSeyj$|MGoRpf8DKI`b+`=v|GO-lUK36Qz-8}=|>BOGwatPu|Gm&F;{Tba; z2~x_5q!~gv3(_`1t$sGOVh0a2vvYH^Gey|iwr#Xo`5>$UeyKTSlL*%(UMvV{3YM}$ z4io1m-YIKzPj3!+)DUYC!6x0k&u;x!$zm5?=S<@4QlBIPxj3`f%iZn(#I++bNCXHQ zNPPiFmhd{;O{2As|7D6l^cDC0yl7~_jnX4!4G#CGJy#lixH?ubOSrp|a%P4=AXlH1 znz+*UA%CQz_n8b@L`>0KZHha@G0|*|IZX_L>bhBKxjT*NoMA{&%HrL5MeEi3i+E|! z(N*m7fi<74gUlbhP@~D@O36c$X!ptDqxHbJrrI|v=A$utL(Gd#JZJ$x%L{54 znB{EK>eFSIr#YIw!!-(c@~b=;^1=)SB( zGKq5h>>}~Dj0<(mVyCm)r-5_z8`y|!Plsvw_+|2vd-q&!vE+d51Ug}>z^hMBUwlmp zl)nfLPIa{W_TM?$`xqYVtbGo(TmmVD9}54GBZ4`)AfO9us}E^LqL>8#5!M(adC235 z4{h>%2tB@A6glJG6L)c#IuqaMo>9z;QQV(sl~((mL(ZL`vVS3+-p;tz$UEp3qo^BU zmpFDX+fJHBBxiDdpQs=v$j9l^$dX}E6h5V|sDM=1a67-cGBaluW}!b)H%E;24O>@n z6cKnftx2W#HlU2V>FJf)_h4G=oSn%ya>zb2X0zVQuTEX*K5cd@rDMIAZs^*MTUu^u z4lrL$$R5@5P;$8F%b{s4(Q6 zh(XUGJz%|0hCU_L4s`||TBuM}P7_=Awe9A8NuBxX^0pa#%-yS`%xw9t$M2XJr;76|~p!YIl+ojCw4_lL@7Xe*i~k&oUm)@4`Au1!FCay1nJ?aRlJB6qv$guK` zbFm}&OlK-n(V9^BEniC)uU62i)Ob~PZzb)_jNGzz_XpcJMlqvCUrWG7IDFM83W(LZKNz+Z z$NV6svJbk$fRr4QNH)hF;RkrkWy|CUljOt=^q6_`MlyoJm_Pmue57ueWShX@3o)r4 zseyx(5vieBbPVxknzc91-JWuGBI=$=f+Yx*$a6z$10TJxIwqX zMi<{t1#tZ*?bj-8-)_(9(T6kLg`MYt$+noxYxDf_g1P5ZA#Aks9KXiJe$De&L2<*Bt}fZiTXpzSUE+e(W-udo`P@;F4E3 z7n+4~Ke3GsKzpnA;`SA`-KB|; zdw_TmCZ%(Yl|R2OM_#mk#JMHZWK@F#c{vnt3H_61GDLt_*P}aRv-fKE}}J%U>=--zSFts#}}UA0J?OC0C=IETu_r>r;1hu zRqwY7{bHi6*|P|`V2j^=5;hdYTavfPp=wM?YAq$7-X}=GCoY3w($zK0NB73F(Idte z7g$Q7gXs7>o%zs%#>Si$bmAn)-EQfGIuYglbI2!S^KNsYnS1~g_qhm#8BDzRRY#3% zN1J)`;2P#UL|psitBx|%5G_y_?yMZyl2k#XDYo1dhzBpXk>8HlOU_B`%~TBj@TwkS zLyy`nS9hp$pY&K!A zIHSnECXC>h1DO@dWVKfhhKteoC>+C`_AqtiDlr}pFWxTJ9=8nvmK5Lq7sq?{?b#Pu z1l<>%U+{zY|bR1!L87yF_I@!`KHRP0J2 zmAJ-mvcWOOsmBNB%IJ5fWzFZIMsJHw8nFhK|68B4|Eq^Bh)eYGITxAtJ!WA_b!YXs zOqkQeaVFpIn^nhH+$>p(<%&>MGf$j@^^7!Kn)1(|EHi1ztuo)UJSF(&)q z2Arz%>*=PfGhV3P*lDSLMCO#)EoGxA$n?VeeSlm$yCFe$t8`L>!Ml^Q^Ikx!n-I>T zl(>1DJM94LbL+gG-eSFM_!{eWEK9#~BgXfo3--4&sePfHQ>h05y2|5j(QFB{G|l=- z+f@7vVWzOTxq#HX8r9_rga`IAfP$jo3klsqi0XN`vEq(@1Tc{Zt5F&Bf+Mbj5T6kH z`)rdolMMy)sI$|qX3c(1C~~J;%Hi!XaO7M95ZAkojxy2OyKml1j{NRlXE6!8b4~e? z79uGQl`Z8~M^?9xhp8i-SK)KFlds;$`?`7wMjRpm8;&nh=7LKs+G|lP7MZknr`}*x zIk_oO1_ntzyo8&qxKYV5C)ac06U`1=&%+58HV+PXX9zH}vhQjLP+~u;Pzwp4rr_;=DSh zYclAlhZD4jdV5!0o;QOYD7%-Ew4d=wnY)*hb^lmiM(0ck63R1%KD_249nx2xM<>MdZt~ z-|0+_2fou`0yw1?NeBiI8u_PLYeS8-Cv`d;$bb58+xGs`)lTcZi)FRhM-MFYsAlWM znLRBYKXOBaRyk1DfUYTo#5Ld<9_LBCkN#?#(T#iJ;(jg_kly7ErnBBGF);pa_8T$X zkY@2(#CC7N!!+|sk()=$LLy}$mY$m-<&1^Lj!_2TMUk}Bo`ZLmBgWTeLZoWY2SZ!g zPKjj#eovZ3D6#)#SKejSgfKq*#brWVLS>B(c{wF#y_rCV$AU;}3_Y34xhl;fO|#-8|$GAYpj8e*W8&3t1v zU`XrQjy8WxTHVbf3aiJj)XSu*To8XF+4~RD>`m>OH=eV#l`Rj6Y*RLFZC}CvwCpj~ z+YR6_^C8s~x&XFDY>!S~eO0`g`|HgD1aWY&(NBh#g8>CyQDy9Fbd zm4@;G|GLNU&^Il#+Ehsyy#a_=W{IMn=-N{s1=U%s<_H&PKCeoppj1sRPnqXr$6cCm zR{NK;-RGuv!dhjTS(B;ORZxV-$uVO8)KY)5_Kw6|yn?xh)JDg@ZlfJGKC)r$BWVVU;z#n$=moV(numxdUC+Q@&|kFSAa) z^vY<+{iL>YYwStXt@tg1`4{XCRW^Q^8oI=roa*pb!u`h_1iCkodN%xeEhrtAT#CO% zC|6zp5YeFMZMOnQe^gI+Q7->xQC{bECtR~>eG$FmEA`Zx56~3VQJ$JSDxfs4aQa+D z0l(Av=J7k7t@CejKvp*mOxy!(+j3lRca0iqVL(J9%^MtSFt^UEtcZfTwi8e}7RltZ z4zDQ}fY>RdRKB#6rJ96k(K)NFp7$4{evkv7&V{Nh31I`O1eJl{k3gjz^m!%GrWv7Z zy2B4CYs8g_(QCLI9#Ca_$Qdx=Nd7yW_Dg6LU<1&SsN1!>Zgk*Bw+A>Q)3o*hJCT9K zR?m;4J@&=e^#ry7xO7QG)IjUtIw8kBm}Q)xcnr#@wOAUZ=2;|#1`Je z)SNh08+&FhV|ysVt8NTb7GV7-0CQiAt4gx~$8d*!GgK$0qlw_}rF7Z8iBBIv0d!&b zR}b+mHq?PD=HATJ`otJJSFg)>al}xc=MThvC{0eO5NB<=m;!T#o_GSx@7-VKml`KL z`h&x66r)PK28?RwxOzO5zu+cFGW&>8iHM&XN_j+xTI|(-&~*XeRP17Nq9VI41U!;~ z{T^EzH$cEor{TE3Fj#nV>S}fKXyy<QJ!>g+EOBt3$f~nDj##}z!LlF2Fd|gl=1W&AF%E8L=3#>NYeev3^bCW05 z`}%WrJnGy)Lly8j{j!75^r%KyJKh!Dz35fCwd+JHPuhA_)J<0?DHj4+nl;bMrD^g? zi72~cK@=GUx;EinZP~0$^moAA!Kp{q zAYWEK;(%FzCab5BCR48OhKqNT%O|5Z!Nuo2D^im)DDqSgMi(oO`LO&ynhsArnjU)ZA{E|?8!ydO(lk2WQ%EL>Si{Gr#$>fJ{&>u9GiAemww zxH1s~(bquc3*foPttK>)zFdrmPS>s>u!j=!pOfqrVjlmghO~)c9caYud$7^P0@EmT zEJgb{7@R<@9W8hwUakK*WTqoJlH(dN-Ecp=1%E50HUk!XbT9>y+?m60xNXxExUSCH zL?7Dki(cLnlXjs(gj%a!jh%z#S;^&(Pg>H}D^xA5sqbNn!gX=uTqlXD`<4&^9)$WyeDQ_#X ztM%pWq=-jxC$^gd`)=l(7^D7vNt-(m&)bY)%XSE(UZoIL81GHxd=jU~q1H0W9(OOR zvL=1_aQFdI$L;VVIg+<7A&mw`q@@Y?8lU3UCObc z+CMHD+$`OsnejFbeo3K|geRg>{IbLVxDwL>&>)Nvk$zl7C8-f+XE#<1A5&sIMd4j^ z=doP6?Mw^|$<3&&RF~-LpNHxKtVtGOckkv0MYI2{KKs3sAoJ};G~H@fGRGdOJ4dRD z9yr^TaKytSZF+rd(6f9a>5FLsWS{a=Hn?`>y06%v#}Tg@DyvUf=6ng$_yEOz6`SQ@ z#D(_xYM9jBy}AYs|9~XDD<23^WeP}=Y1=WX>+;I%A-0><4|GR0=uBVKB!=}I-Co{} zU_MNkQi`q{(aQwVdk%9a$$*snI1}2Ss z1F*Ql^qM2cMX|rghXQ}w{WDqAe;0tgM1fV2 zvn}`7iCy&GeDrK*m2z+kh&Fzc7=Rm`#64KOTX*^A8Ac1jzG5Z~Hgjdr4){7r-6yL< zx8;ir->h-{E{!~K(q`0^7(Y>Ash5w1;Y}}Kws}RS7M?wKDx}7;Q$eux>;EM}_kBj} zpt?zs(%L)=XjAkg4}m-i(x`cwT~8<*Rds0xnR|Lx5W&W092E)Xa6-FBb<5A0+A-Fy0P zUVKI$g=@+?;aVE-Vz$1r{94%ygy&0U0A*(zaH!$vCS<(RY3u@Ga|;ZhkD(Kx&->=T z*~S0TN=u6`dguEjr?;|y`{Nlav)&4IYtq~ND?>dYx-~K@E3!`eM`NWp>1V2kDY92 z7I8B0lG3}e7q=kX5G^SsfY`KTh&3&AHnkH}6D5D_RY%N>RcAXBAwP;LSnP*X|su1gz-zOLaoxh{nhag~X*s%^?5 zz>msq1>pGuAtc~qb2t6A4D#pqf$ThX-0e(tR_D*nEdhP;)~k`XEdnp|9%@%imbBmr zT*L&xf&j0RVGL4m!%|et79H%+b0Q|s68S^Tu0Y`w4r^b+j^u=dp^{5!VY|v2YsaH& zDQBv@>Tv5@WZ8y8$1MmrdHitI$mK`sE^j$joWEoIx@rsbqAE22?VG?hxs6DlaJsCW z;Z|-{3X&*yi@tc9$ncCt-*-KkeQ=d45BT=lptP2{Rimf5Td**1U}Bh%HJt$aT~gMc z2LUt=fvqi0>^W-YWUJ{-@^eQ5HC;{(7k<$lqgZg(W^3~vP_DnWFb|>m1Yx3%*(Im3 zV3cNl%0pQM`xm}E*N~HLqJ-F!?%?C8g6Du3S%k%%GJx;l*12;~JG*(^p@`J&{5Y_5 zd~PLqm}W6o3}!g)M(6h4AEC6SlZMMdH-DA)#HXW$b}`O~jscnb=9w?xyf=@Fi5C{$ zT74%pG{!JQQ%N?ly_~k`-oB)5%uXc%32X`I#gt|D+Q>;Y{fV_`V|6>*`a&I7!123` zo1uS7{CO~GzThv1`8V69#sUek4e1T!BL-s(<9y>v;uaBDFdUH+MM%$_a#080fy-R* zwxm{06e({gq{Sc@BVwL*x?*8ZFO;O#-M@HkiFcQm8qJ1K%Huxx!7SR;^4bRHqD<}w zkw&=$m@`M$zt0C{-!biJU8==ZD@*!d74Vi1U5W-Nryzh zZ@H-k*of5u>)EZTHLSI^N(5H7c&g96cMS^r-9L}%|A{5g5nHdl?RHYRrt5jgsL!!u@MOGxPVF+nbdyt>XP4cWoKj`#xSLgL z`OB7jt>yH19a6mOz-E2?`Vh%2xE2xU##ea9!BeyMoLNUY+t8JbO?@_%sokl&aCg-6rOdBKbbIt;%_L}v0&ElFeK zL+sk9v1O|tM4HRvc4>3jRnuL?NGLS$s&|IDA)sY<8)|U!Gt6=Qmw%opg^dkdv=})w zM2W<u@>o{w0ooKjkIZfzs!2$@LiW2%Osw1N&`kMg?`F_<^j;eRd-N2v*%z~c z^AuNw*O_+x7!>Hpg~p3@d`p<_b_0oZC!p!OKTiSBxQ%`g@H0MC9l2sLrL?Ed$P1h` zY4v#GD>q6PxF<2gH?;xcJkvfPQyh&8(?FbqH#Lw}^y%Eg9#Bc5Ila6t56pliU#Y&+ zs!N`@A(^dTCH%2nuirNie)R=_uQ3cXv=JlD_PJ#vs+WhD#)b|xsv&>3twP=MS9p|n zBJ?r`Uh`L{wSQ^ezqa245a-|3k#Ua7-6kPPQ|^jBq9q!MOq^xIuy0A7@UZx_^G#6C!57S$W3&!Hic6&1^ z90gk9RQT2K*}u{4KhdrC4uay)E2Mt(mJ(Qwp6XsV9$R{+6YApmPR9cXvp#C&TY)tW zqcmj{dgt!1er9vO`zJE~@0)VZ_-tSF4ftJ6iq*G$MbstRInDSUoj2^%xJ0KC7$Ks* zC0-Oz*VAbL4~~3Lo(yh`xgT)k`-?F>$)8ks9N$FXa{6Dlj&z~M4_>5f@Dbfrk|<|U zRtS|dR(i28Y^x}pL})OF+~vJq3;HGC!YJ>^{bpE>B%X93o$Nc1QjOpocDOg3>kK_y z1iL=4tUKe;&)ntV*4!-GC|F8wH4-_x1isvSAm)Q7fh*}%e#TK!iG4RCt@%vYZKz-@ z(RF-r$tBb6v8x@vdk_9uI^FO0E&MX64$_*+XzSdw8>AR6&VFb5dh<|2C6pq!$LY*xHVbAx@qlQMP3Hc5yF5^71Ke@S>JKdZ_KjMLuyk%f0`*AcKA7$T9+aF@_a4-H3q$oCYo67Cwe)gn)+*npN)G#4D~Zn2k9#;xq(m z#GGJSu#x^w$AN<+u~yl(+&srGShw?zWDOt2zg?&aRt40n_Hc{^@IXh-41a9g1+8w$ zMJA*Spw5)?J@r1FfF-L-9=erAx0wI<7k=~JmpE*|&n+C>7U$bH!k{pe_t&Ki3K{0B z;A9W4aSnxJ%Jf;{l9q{ONe&-_r?e7rpuF0P%8%auIJHT1lFW|T&%n1YbLW9Pb{ZK2 z@(op_CJYP7w1%5Kw6FSLs>d=Qd5ldj-zUk3{E=7KYP^;fSY85$*|5fpM){XPt~#$j z{tJ8lcJo9Sx{=;;1s=FjP2O1l-mS9QiXy2!I7FhIs90w&Y{d98ZanshZgiMR@P#$h zP`_!GvIjkE8_Z6JoZZq(Q7C#Y)V-vNJXGfsHzFm89)|fVOEZ3%V^CwScF(#K=N~&J z|Lu4u z`XLr(V`mqYL6sP)N|wDp-{e0Gv=P}IcPYM5@yj~Z2c>g_^yt{ss}&W^e&@~;ud}(g z5C}x3@k>zuY-VCYGM>zr;-zr{?$-3{w+@bpsbL0a%o`u!l%#|EcDBrtSKr_=9^8|O zu#W0V%`JW#b6d;|0K}(!H~aSXGuDUN?dlg94*_+IcJKxHVqZzK7%0p1IS*)ay5J^j z!^c&eTH(^n?wQ58MSzdyw#|gYhJYTO$ncT8a2_2UBREnCkby#K(RcsmhVJErC~E2v z!dHN5bJ=Hmzbb2PFb^Fx0oEeIbrk^yJrC9Af=g|5n-#WehCfHXp57)-=rMbYWoCi1 zz8@1Y>y{kg6pUQv38Z^3fALZg>CEGd<+J2*f`a&ENWfngM6(6a)cVl z--+^tR{9zQQlty(>YW*ac>>++wgl@OlM4;^>ge()_aFUDE>z$9N_Ys4T-Ml#T2Mi> zuA4+N(3C))Hut6DEGvKqYdq;DwqD#8tsW@dzSxW1|j!n8%BG zIo3Qrr+ug6K5l)$7GOh#w7V5qVgGI9z`p>4+XK=^vpvp{l;lskQia1oA5-=Q{XYb5 zg(mvhzbxFwBm(hT!^s4>E5Nu~S@#lK9 zbfq0F-Kg2+=0rC)r7{hEYIcZ9)X(b<>Zr3eem+F8u7@lam6F$ z0d)KQj^fqvq2m{l?Ehj!f4lkNHtwd;Gh&q1!&MGP8g=#@oEEtQxg+_?cuBp)ua>Vg z2`o81RA=Eg=kRf z1Ru*Ve)x={`27Ek)&I5u|J!$UPlyhiYcB{6%K%WfLr@(WbAQ!Be1+STV_qP+UN_- zJdqqsz7t~o>o*l$-?Wp3Na$J2Qxdjug~UCO-tr=Rdg9jiv7Z!vb^^N^-kuu1d2{06 z<1OTmf=8)$Yuxes0f_%(lN|?=LidTxLln*b;RAlYtPCa;SxifNzM#f>J| zrWusjP_I z+|4X6%HEN*nkUD;vIiDEpFWdgLv>J~;9d3Y zuCAS{_wmy9LWM2!gy0!FvN+^YoaOD8+A`S}3opRi&Y=>Y*)mU(wbFc39j&KyF5jL`>dLi(wyg>R92#IkC{RQ;CyFGl zmpkaKF^tcli#694clW=RZ_Jj1>4|HYd=l$a>??j$rS_nO_nmX+CHPCgF^|Sp6xo}( zv4#kHr?W4g&g^8DSJX*@j}8p$3A}zB7r6xe*^k zKt}zQy}vkw3&3;glM4+7oZwI+mJVvi`)=;Jm~kpeFim4qgMV@kK=8gcIw5hshumJd&-tF@+~<71pJf>Td|Mjo{h88e zjG>2(zcodv61pPxY^~omO;{ewk8*AEKF=Iqxz^65Xdu{KiK2@`_T46mtKa~`W2HQs zaZ{NI&G^PfDV@N`$gw9E`8FjHPQN7s{qMT*|F)R_Kew26t+l~E_Q22S%ve5v{Q)qE zDFCR^7N8vMWtLTGwg&r~QgxehVq>9~VXk)bZ0ude(U0nx)oHC5i96Sau>~knQAa*) zo=iC|CZ=~)uN{^G3+yhyc0$JrN#8Ek0kic^xcc45P3&R5{)%&C%$~9uy}y`-vR|#` zF9>t@>(ge3J3L$QAyxvrgFg|^ND9{ip^#kbfd|0mu(~`w(^4nmrH%m=dw!81PTJzP z(QO`>R!hVumJ6=sDLPMLY;rLY4<2f9?+W^%839n8dfOllGw`umS&RZq5A zd*m^DM!=RI{`Teh;Ph@MqBb^3$9rpJzY84dfTaO;8bex_eX40uR#Jb9u$8+KLJ^iV zzv8>a+9p(e@M@p3W$fmmQT2?alPk|{#_h6+G{3xASewzp-Q{WLM5e^>PKUfr<-(=z z$mDuXteW>|yZ)~Aael|J>TF6mr&nn{%#8>Gf7pEHdfcafQ|0@uKmSEb+kwM=R6mOb zbsKME;wRXt2zr}2P;AJ5DKzMzfO_xTP$5_ys0^GTo^8~1D?4eIy<%T@d(giK?g*)A z@;q1c5G{DM?@t2+tE#xxpwg^$eD`oly5s1c9!i%j*DDL`t!uW>2(c-WdG6*LKCJK` z6aN>zc$?mOZ*;R`sA=0nN10Mc1!P1mk*US00*pn@0Ix_vI}r zK)4f;51UEC>IjkwPO{$~_(t-zAPBA@D89q*y1@)7QK&@QS|A5eP*s7SM{J< z(kid7RDD`LNtiTuh!1rMfumHBx{f@+upHnsGEB@d#YR8>8m|L8g~BbM@E~<7l>cR5 z7naNT2()uzU08C)&GW1y+S$iztCAZa{~Ti{MDzCyWvV&Q%;93YtQj@+EqO3G8a=$D zD@wQ9Q&{cLef^p5j6_#oA}pLlT^JP0eb>!8;nA46P+q8BBy3xx4Rf4@$&H* z5bv1g(fB>r0t}oc0LkeAUqi zoowvhiRUs~95({xz8WXC>O9iP1T1;%@wB|u_D#<%^ogdfobP%j&3_H$yAq!<;HlsP zJPd#>H?Y%k=e^!}yA^)_dg~o(qNq%Vei2pZ_t14|O)$EuckFSxcl)Bmy!>E($qz~# zpM#!>fGR}S2ktwc5iKM9DsVL^jA>wT2k5A*Zu#A~tI{NHz-g{^(dHULc4p2xlwx*b zIaZ*7T%lEH@s#WyUdz>Nu~2%Man->)UUdGYG9U&z+<}h<$IbUEW`8J7ZH&XzyGp7} z*ye|H&;8}sZvXDTa#_e&Sd&l!d{fy9Nz*zwh3H`B~0+zxWipMF=pnW z4=0PWzCo2a?_ib3v^AP*TYT`POv7!vaa#v2_KcX_Wg_exNB8m@?81a6twrdc`jvW^ z{4!>1wzF$_j_B|Wp?qgW2IQ(ROZ+wM*;%0lYaITr*EeDAGF9z@11ziLVS|=w-oc}% ze8fWU5ggHC#P80FksPkz8}6#A5#zWXVF{VMp2uG7RGPBofrv<%AfVK=^XT5NjX~5L?1S8?4juBF`#4dg>a{dpQt1FFtu`r zsllq(K(TuB?i3pnaj8Z651j;cHnon1tZ|qr!?zJ5>TlPHBSKjLpbyr^OlQD_v+bL~ zvvK=(UhNB!3fiXV+>4iDIjEE*V^2*NYhnb||5(m)MZ%B2j!iLY8TA$Qk^KBli4Lv+ zuzb4nt?193`?nfS-i=C1m%l?9=)-bFmX#?q;&b8F)&h$gu*wXV#J?!x&0Uk|Xb*tx z4EsBBnVbO9I)Y5aN60K99Ovh$zWI}E#e~MaE2>&t?D^$5LP=6VlvRqY-LdH1Ps(M{ z{g{%O%ly?a9|5o6yI(u=`>)gWdzOCg8I&}A1S?{;cc8hO?>blft%V6G>{{8hU88up zd-jgNrgSowm$15-2YseLQ`qEcTocI6fnWBFKK#h)@xahVga&jVTcMlh4-43WU(Fgj zu2FHaB1<-D9J=Lcp5~1U)c)hY)(-srPX3Qv2_)Y$p947mv#dJY)|WqD7uP&iR}b!B zE+=;~TZNw^)v)SRDhi8!?qTJ7a?;jOr_Qx+_}2S_)$%%1A1Nl zV6(HF+vHocArr^AgX@Ruad`KUYi8^JBP03WxyfgS<#uL?2l`yKJ_x4JKjFJN+$@N_ zwXS!Ja~a%k;7xc&bfF~#B0c(}TjsANKa_7&AdK-SFtE+aqK~S7Ce2_PMB5!0#&d1j z94Wj6BSBg3x7z0is>iG1(9L&o#|ErJo%8K}sBVmjayfspZ)GlD2=^NaBS&><_UnOpu)8d4`s;f#gy$A zEIDr%stg$4Y-0s`h83!)66eW>`~-)Lwp4P(+~lY2)9_vE)T+(3?2eqjec1lbUZzoI zwvSz3?;hlg6@faf(r>oogGz!!R6c}w*>qJu)L7K@rXG$5G>blZwGV{}pDohe4oZz5 zJ4wJM+m&u5fHHRvpPQQdc%*z-->AtNpEYmRdtbM>d|f!!c(c|Lg&ecF-15>tz)lFU z>5sVxudi;l3^@5(7lW-z4jG%ayR$i?W3%8JRld>K4*SZ&vj9SV9&Fz#j6D#V1vlt7 za2STe0mBoi0lOp%LOfxA74QYHLpOcDXick?2!!<(6pQ|0kX2==F%yZ+V?aV}w##zi zUjd5KKBie&hyw+&5h&XwtH^j-)CrJEBhYygcbOs+scvQvw8rzSP zBq{vE{$3tiOogjmApLMFmHY*Yf5hODbdJ;M>b6DeH<%>AqrB~}3b~{Y82x(NT(4(3 zmy&M8(!UU$&y5NT2koqlb^B3xFUqQ#3RJgS!LUQ8B&3(=Ab*e134KdX!_HxUKFrtL zwltI82#$Ynwe*F|@#|kZ@Vl??Y+c`t-nLE#|4gMQkT>!_B&oVTSgOcLY4E_MAIwMi zwjd1);7t$=dmIqT?YvoXoio-ARCqeP7>8}k;cH(A$R|cb7P9WMOq*tKv(i?7kef*7 zsW{T>=CSnNEOcu3^F4Rta-Q+uROEiQAOH3X@2VmM`X-hn^b|%jz~Q6W;56xAq44H6 zNDu(na%7D=awMpAOiGeebIlVpO4_2MgR0D9FvDV=oPMMwAz`mtb&8AK59JEdd$;MI z3@C3bAJ^;M*}PJSC^VQG0kWr0*JCFq=V@d14&U@!_^2Dyvowky(rWP zVH6z>sWDoQpDN~G6oUrr*GS9E zG7fwy9={e^;m-iI4h_*NPYSDJ{cDzqM3&`n$}Y`jm(@i+eG%b_2ka`D8u&&)Gx0)= zVfN>5zN{bSQp|?~AxQmPvQmBBvi5oI_U-g*b6vn{nJ%W-^#U@q)NE!iw609(p!Pyu zCcmw~iN>yTC+E(7-TCP2zkkmDAJens0Jzg+TXg!x4AW1iokwF?96NHGjVoHMKG8W0 zkW0;(-y3>~lNB5amfeJoZYp|T)TDfd$DWZVr<%x}#*ubz5`>LKI;io>>7k3EezVHy z3JjzAld|OXTvJxmeTE&}9!Mg@Q-!wZ=`GtG>6%4qJ?IcDhrh|@Gi^$7;1lb^pJ)C| z0NnFx@l=GMcT^gPN>`5(mIu$<@i^ z=l<}K(68DU8=(F>LGf9=H^tZZ0l_?QmMwco^e`yU{^vKr{=J4t0;Q>*JUjOnsaO43 zHpwcrXmZ*xGh8PGm$Px6lq**-kOg}~Fa|x$hRbJjD(<7!YV5O5187HXUN1qWjDhys~`d`U5v~9ht&)0Jxon~u$CyS~DHZ#*#TR5?`-~C?X-;($BvRBgS0?iGtOGUlyHS0+Z$pU;U zsg5&_F*dEVQvn^RGdsO(N-$?CZg~=-O}B~+mp$_fyGS32;4R(Xq;$oiJQKE7e5Z^f zED!GYGY(npUKmH?Ga?$JIRGw;F@VZ(s5qSzbZGk~GZMm`9ht_K0Gqmi617$;+t(;^ zh}bISqSgX#(TfX~!%zSsL~qsgO2=|1CmpwRvf<%m`7lu!oout|5oh43`SuNf3 zDtZGnd)Fo#d`KKs75ZADs2;09MbJo7O zNVh2H`D3ur1B2}f#xVH@+X|sAYT(FjWVl)?z8>7%(Z90}@n+DJ5_1x&pyGrsq_+1; zU21T}cTzU=d0|D`v7-S7$rLhtKe)O0eBR_;dUdmOyK$!vwDEMLcXB>(6+h`|5-knqNgr-qnX-EI!C% zPxmVEh22H!BU{X-YuPZ^wnz4CxIJsNs(VVuHf##{P|IlK6Ew36+IEH2U~|PrmAi6& zrIf!k!-_Cpr>BGr8)cuQqVBV@hte=1$ntEfsm07Uv-`UZ!-MMwo~v)XyP}0WV0dhr z8JFR`ISYYn+}NH#onAV+8ZWQ-=qg4}y`9*wNIF~Lfw2pJ!aI{#q|qZ?OIWus{4q=B z-Qr2Ul=fVHEmP`k=ole4G!f%O(QYs<8mE3gB<;@HCxKdjkIV0N{L40t3?895#;o)o!S1h z)I{$j^ZUYU%lJoVZep4r6*UcRP36W7XZw5VX-@4joaU6Sp)Bn>U;(kuiW*4RRUX1IfPX?w01c+}%8S+qZufbB} zVsP+vKMV{2wz2kJyG#LKWCu@4fZoz{NlD<6b-jWO`7E2$WPPofspsg{T;tiSny+5c zmPq82=hl+yM21Go7Eu+clIBmIC}GjZt~+F_e6XgYQ{Z4R^S7Se9#UFalNly4&K z)l4uLLK}`i=*U0XTZ8aA5(0yq&8_F>{jF2)IHs3$GcdX7UUA(Dm!Q_X$tu*dRr{3( z0q`tQO2S=AG>R#(b@dpoX}Fx2YXJQW5QKH~v{9D)=|v`uw37Bf5Q>TRtRzR7C{xR4 zePvZT9pjA=546oCF+S!OH^$~FnjV)&NCND?B%Ca66P|}lO@)C^u{kdF)*JH}J?jwj zD-E^$f32ptZ~vkl_c^zH1Dvaho3SX?g2UKd6)+UM-s=1YGAsVh5A9-aM2w!HM`(KC zW>DBoT|NlhE~bPv~n0Ew>Pf>=AG)|OOH zon^8OQvUMnzh-~@Hl6>TmOCmWFx_C)KmN9(=e=ec@sK{C1}OVzYRR|RM+!YI!IV+( z8;CLI*5>{iK+U)r0bCtKj6DuCcTY{9ym`k$M^kgGX zeU9{s!M%SdUj2K<_b=|ME8A3(Xfn5M=hB_G?od_W(}YvL2A2lU_NrKcnKwx9BX{)2 z_=eDMNoSysoB8IgjdkE_0RVR=_PP>umKaMFu`I8r%&z#m6CG!ChBN*++)#itnlz~^ zu4DPL`}#MzbvC+oijCd)WZumhZb@y2f{c`hTC`a=J@10fGFd4Uye(-F9sHi%0d?aWSOFZ9W9mv!aP>grJ0^s_Wp|1|&= zz=lU`mpWD;p4u`Aty8U5_AK2PYxZ#~$^;5~ObxwX)cFB@{(C>AQaHA2HX=yFoc4;= zGOMdD0`9}WVBoGeK&Ics#1in!`%aYj^_!smpINBhIhXdK2)+9rKob)|&c0l@A@Gi| z)~rC5ghnZhppp4Ov)Y_9IAP>Ww@v#U+hAH@J<%DN5D1)lv(9)00DfBl5u1s2kG;Ba$F*0*B*xjqQ%h^B&<*k9}gCjpEtpVnjyn2{T1utxK%MSeZIe8b>OSE z0KN#J@gVxrmv18fyA7#B$_cJdN}~AY2Ir9huf^0VQkQu$S)|7b_B8Fv8j+Zm#R#6_ z&)8GU9(=qk944r=SB0kFme7+Z9C#~8>F`;0no`L; zn_JuPIZITZOCBq89LMcXVOTM0vzdJq>{W+?+K>K7fUtE#mRV~@mZB0F?p=rOHY)9G+sP}CX z+JzMkc_{?l0&;?ob?I7LzGh|puh}>a2<~k zNp9Pndd|h zwG(+tC2fZHb)5Z*SOz$huS~SI6wp;rkSwrwy~HlrG&Y>BVv7Lcd8A)gGJkMz34o0{ zwiMR-Fg>v49WE$UBe(WuPrba?lG%U({d<|2^RK-`td#AL00mb2GLTXOmM6eRBz#CT zB%<|6Q@(x^i2pNd)V_TxZYl4t*@-zDD>=cdExdvubNy3KEfPqGW5zAUtrJY$N7FNV z1|t<1RoXF~m@Bn9B`O=W!7nhrf0aDk0yx!pY=hObiglVRdO3Lw(Q&aK?#m?f_p6Ss z$6n$c$*MAP)vdA~Rj5lo1Te(X!HCHOGhu8lYPX5w&18f}s~g&sPV|R>1}u*#U}`ka-gJNC-Y7nTBh`^ zI3{5UC%nX`=j=PQQ!j4Y-QUV>Se}YZ03kHfKV7SKvy4PsKW2Ba&{i z#&%<)URz+xLMPx|WPE#KMr1%K-t*Es&K#wS&|fdga-X}F)LtnZ6PH>uSmGe zCtqhoeN|f5v5c}?=hmj-rLu^=Wv<%IVIx9Td8An(n%wIIWlve@vX2fcVMs>w68`KR z6*=R_-v)X;&8&Zq90hI35Th@17F^NW@q19jp5Ci{adM*!5x`eXE9_cDD2G=3?UeWO zi%2u&y`0x|PhQX8>z;rAw4+*L#@d-}hxDN6Lrt*eKGL^LLq+;+TK*kdJ6(J-fA&~& z$q!eA2yclQexn|(1~SEj`cSG(^;T3E<~+2MaqM26otZ6H28q9%2>>-1iYlGa^$GV| z>2|xF4u^uD%;~2_%RlD5jL99}?X0i7gxF!mWzv;Q+Q{T#P`~;{9rAmeW^QEh*RMPD zK^TD0y>%lI?Y*^g6r9uaDPd>@$pZ=8Ob895lU?-Hhm*^&Z?Y z@kPKhvrCXzdJ_GSN_qOba6%pJk3%;q%j%4m%jxmW9O_-%+!B4>q^UAxdfWQTC2QQn zb+(w4!<-4utTuAKV!m;an&L0&q!K>LsIvX4^zWhhZ(cwSulBhbIUZWCTb`)pzN05KIwP~Iv2{iCb|?Sg(Pbr{x4uXeTz1Z z@2>2ApOBLxn~=>!aQCdK{3c#Z^TU9dT$tSU%(VxQN+22c<+gvkP%NK@G=cvTq z(7l1)WCz9y84%C&pNMdv-4XebO_zjr2(j_Sw5{uy`WKrlGI{nE=3MxjlFxrLKmVpn zHmcQhNDT`nFthql)&8MJMnN-R`<9d_R^~^N6^1rVOmM=MCLc;~Z$FiwJ57qYa_f}x zphvB)PuC8~k12~q1-DQOKtg?0n|uhrB5%MT6B9DL30%`_*3-&318r#J(;33&YDV$X(Rp`Kba zqN*s;WC!~t9DdEg(7h*;c?1wD@707w`d73PP~MXy2E8PzSe0PUIslP=bGNL6M+dsBdYE7f8h=W^6QU$hAO8snHo6*SC=s!Pp4sh$e|1nwte7+jyh_ z76VM%n1}c`x&}Pl`Z-G1$}`15dA4V}eVN1FgJu`O=`VjqW8{^~Te#;VurVL-=2Wnl z1aT$9;T8P(F<5T>N$2@4l8%8D!03YcK!0I$DKv}OP%$zy*LH++Y?9Vvr6E+j-#p_q zek$Mcv)AL^|2W+mc|m?=_xshVYEZxoH?gf}F5rcpvJ?Y(y6|x|*|uG{XTS-Gv0S;{ z6Svm_2z~%?_kOF^_RgDv%YU4UfBfs+RP`RO z&zH8y0DBgL1GP_8jiwy8uZ^s>7l z*OAdzdmz4g$E;Fz+A}EhPII0eu95w+3#0y-8yC~cCwgd4^|v_Brd2C$Gd0qR@J1fu zf4ucu*?#AUtsgv%hdnPl?l82SQvXo_mbJry!FNEBY57e9>91OSFQbQ(@0_ z^$1OaAU?&t5DF>LUYuq;N~%-1JaF#%v@l}i^SZNFb0d)8xWtRmK)DgfMNKh|WR-ru zoI)?zj0~tK7y3SbN_*lKRiL%v$ZVdooqdtXj4)ADG%-5l-HlAUNVFTMDo*f=ALf@F zd4Y+%&fmiu`1P`PTvmNE!78x>dkx5J8>J?M-UDMv!(Xsoh^XNBg*OKLh`pvp7I(z`z~dUT;-_I)U{s(n`N*mw2s3 zy?4SSHyVxK3I_ps;n}qNR7#cg9(l``avdGGTWMy(9s*!ycN6LqGKNNcB zJ;Rs;w~pMKdbO{}zg>Ri`J~hknF_KVAuB21dPtQXWu>UY*>|;dx+74kLFR3WFZR^DD{X>4dthN23@dpoYH;)+J&T!liBhHz0UX*^@aBipa1W`MEWI}U z;x}Bd1LXPPD*%_j&v||>YJ+7^)%-1P!|W(3;)c5x35shwp8iPH$^YJqCfM@=qZ0^{ z6I-pT08mHmRgz6cIEr?5&aZbR?_A;$PaKO3Ag3*^1(1_tNXgs0mPUaeDJH%UFa)sh z1XA|EkyYrmbqJ+qZO+R+64c%R&K&lNu+}y4LOs3r-KW_yF`3K>rl5 zDg}rv$l!(4?*APB|1=%IpV!rDdATb$c1nEX%}#8&-`jy%E>s?NvTEM;#{>V$6dRy&UpB{0Rff76-3o>rKkf+# zou02vNh^e>g%jxIl1*2lVQ8ytIUYS&Zp3Li8{ZEm`t&(;Xnu}>RjmH=INq{%-nlLR zEbP_3^6djg_~Xe<^9%D4`d)ptkaQX%(K}(q(LoxmKb;E?sMS5g5}%q2NP-E$my^0J zDa0EK)bcJ|{nKHTR(-}^rN6a?HjJp1e4%^yz@y3zp{2Xl+TB#L(h)AefwqO)PUarD zxKxq$*SBo^Z@P1wgO|avQiq!YD7;(SZ}` zn8)^j)Z8F{a16h}&1rBhsY$-@D0u}P$n7p+2gDD@(m!Ce;F%he#t;FA>Jk)%boMk) z7`iwiMLo7Kyu6vyxrT<-DFoa#AKICkj;qyUBiUe_56?u9Rr;K>j2&r8-<-RjdP}#Y zujA$=wAC*78}_r>$i(=~dw=Av zIY?j&Is=_NeTsQ5MF71G^@AzQ>f~8pu}rGJEp)zwt+`~xsPz9q+BK4Tc`oI+Frou? zXd5uF$)UsghK+h8I(hk&_JxpEW(ccO5&Q=3wr}5o9izgf;}laMpJ;ECs|OeqWAECZ zuP+DkR%wN4ea<8KQ;6tl$`wvZNU3eks+i(kRI3#-oZ@KS9lA1ZIDZzk`wXbwVYz7& zt7%8eV$+lU#yun1a_FzQXI32scfWWuAAfJeP6ylw&AaIWq5)>)D(+N>%7qBgV5;>WNxedv1`ktX3V5HGVMy zYZMUE06yAO=!VhWszs2Umw}%9>BLJ9bh4kQsy=7iws2ER+`|*Uoc$8B+re8T&kW?j zsA`|%b=aQHfsKU#0q=`|5`(d(ilz?P<8v{(C!65igG*Ly#FG4UT#DNaNqILsQ?jum z)1PIUeIIZH18c%Et8Gb=%_F0Ls4<};e)(nj&r2j9{*$4dl!)iRs*96OtS^*7@7?~%g|=vJkbM+cAW#s5cq}!O+gdy;-c!(hSHMI-*;*pyZq%p-}`NQ z2SD@vAV>B~)Cw4YUy9ji1immgWvr+evETlDTJzp>j25C=4~)^1p7nDdGop1e13LFMR2HEX_r?62{G zI(gZ)*AJ-|{L$PLTeyAkaJiJC+HFx~s}1RM&1Ww)UYtAK*RN-yRHw?^i)ZY;Gk_Vf z*a^^wUF*Nw;p)rEl$G*Kll&v z0kVNzKVC?*yZHEhsb=fk;$)Gn5E`RMO1rw%18TG%uSiYbsu-0QZDrr1o?VO+cQVdi z6eJ`xri6>eOgYqnySTks(9OZ^swEo%;{G{BzX+<G#v*4r}qUwZh0BV{Rh;lH!GRc zM3-5a)1hZJW=#*p1(ua5gKe)0-%Hi{(8m#7lkNj-Y*EaBT06&dmzYDvlyiN-G^*k9 zt9`W*^y(;J6}7V>G&%nBZ{<%@^3$@xCtX8wJAqL5MVC{j=vxXu6nyM^r{lh)D`AUE zFN-35>I@>XjQ}{#tlyvPI#oFU1dob&Qwu z0ew&kEcQsHrKpd>Y}bHx%)<2LUv|{*y1z`5M+3Fq3FmO2__C^C4 zyZx`1h<8ZGr0JGN{X*Ayv22pFI$cl} zZHB@q0h{eIR%L@k9TFRPMbXHGY&7lGAsRDg57@a_CUA+Ix09`?v6I`ru=> zpZVb5_a((#y>;pXPvBf0@Num!n2AsIY{Ngm1CqxBrI}3R3Bcl!mfY^HbLJiiZJE}( z_Y);Ibo+J(z*H-$->H4IPs_F%?wb+ZlG~ZI8TwkAkBkAzNd;Z#b zCqKEM#mw)*WQtykc(-AfkrDM|=ci^KrX9BMnMZT$xPN7eV<|h;k2gU`NyOrl{g0RU z$7LAs1bNFgD#K8@Q)xuhU6@NqNwxWAUs~JQX6K^4A1<8Y8a$lcLb&rV563rEZ9Skbs`!XGg%QN*Cbsa* zB-zP~>r~8>VMdB_(*TJA$;vLObc=318@Fa&-@8mw9dSMZXDb#QSuP$!@*2U#qdlWF z)b|kw3S<3Btd}5>u{6xeMC3Z4j(~tW7iD{06IAKsAo_Sp6xG~N-@m?-Eo*3gBF%nG zI@p4Phc(addcoWJaA{X>ch0mLEx{ZxjSX8hZO96y5s=w%j0$nhR}V=yNZfr$TX4b6P=2{rj5ESLL&pF`Dd< z%CgDH3hUM3;$Ce*NLsI+rj?b!E-yyz8RExXyuLVFm4+jwZ4Usa0iF-}JAM;8s)Y@m zt(eXn8wN39}^o+6-k-vMZ%Y4)51gpN@5bnKKvq zA38?MaX;@uZ@z4j{h3NE$)?1K%S%^dFg;$@E8$DozByS;_bQqQW&tFog8gpH2x6kl zyv>r*I|qxA0#~a-EqA=7tZh&XVDU`$jB(l zk=vNr{STwV&^_Iq=5XwYoe#5>Sk^@Jd9`m0lb(@b+u9WdwjoH!01x{$r$qX4Ei5?;wc&l zc;@xKxVdp~z7i}+KfiW%*BpExm$?+hZI5q!Cwb{Fo;W`^B|s#E#_UP#6>&ks4G2z@y3#=RndG{MD?8378dyg!l?peAmjikD1U$ESN}vMKK(X zoK2+10car%ToL#oYy4v8k*jKy?DONBuq8EbtOffMP^d_+D8C}j_w3O=EMQOiIbh|% zBm?p(UNgGk#dqCITglo%&C7)M?)d%`&9lsoBO&f}0S^XQw>4!LI2kn@0TvAR{*w%3xP#&d&L*7_=@u#fHD;;d$E4 zhmOx&84Jt7Z%81ZP|nW#<1R5YjSLa(&ppoY-|!VGvgz{3CqTeHXNN}(S5#`%U9@P7Mqx+rP2isDRRsd$Vy^g0c z?(5mx_YYvr~u9KkJ?1wivjfKi{j`O_?@#Bum}bu&)bK z4?XizW;c@ndTT+f)a#D3MVknHI3w&jRcTFJrfoAeg)LDFUY?4zy%H)bGYV-;l<>m* z(@yY8k={Je&AoFg|a?h3|@Kq=|is4=gz z*Lm?b(B!Pn<bnHLmJ4i20Py1}z#-bKB3mFz z==NhexnPk)Q_NO?y5|FwD5?SI-BA1Xg}z_ov+n>dD=WVuKT1V;CUTY(pqOjt=q?`g z*wcKE!Si8p9c_#_-4Kd(G^SPv_bd`ZnoG8lPo~!Co{78iIa{?UUQ@Ugp2}5> z9s6%$`l!&>x~XmpSX=r7o9vKqCe8Na_1Hmb=9`=TL*re$lrIJ0)i(w5gOiHH^aC2-7i29?XUch9bGVZ6(_;1Y8yNq~eyZ*$KsXfdh%o{Cj!ZJC_>_yoLsH+5E z^5p|eJ`rfGcc_0NC}`#9MITzv2&K6!qbMkj2-P{J{X7b~=uK2+n(6!FEgg;P$6B!^ z?-Eo}*uJ7E0X!_yXf`x?>U{YW&M0gs0l*hHCpa~k#|BLYHl-ZRp6?18Z*^@pEoB15 zFKwM`B`urD`^JTvpH3OAq6>X-2M%j^weCe^++_Jk-QqFiE{2n)$$i>XO>N{ceoREM z|M^<*%qP$b<5D*xK6vo(C9s23_sO(C_sH@|j+RI?PaP=Mb0MouHu5(X1{5ci?oT0x z=;!3n5qhol85L@6!@am`!zqPj{L=ozxwlE|6vk-r)d@d zSaYsWx$zl&hgPB^p6FyhOS>RU!BDi=_i8Ixmaq0S5FpRHf$ze0Ve25cdGYLBP(S1wz&~=Lxfxdc_DPBID=&&RN zcX+k;ocLep)bI55fAH;G^qE%luw{#YVkC^sTQh}N4x*=ajA5}Z2=!X{i^iQBMd^Iq zfS*}*o-WF4U(eNRgS5sO*hRwdqzfl zfe-1g_yWLWdgcQjfy~xg^~C02dU5+XPu4K<60lSO6yhr2@RTz|e=n0`(xYx+4DHXG zjG5BA+YG?9ff}naV5R2iIj$7J{9`@T>K=p` z*%q_4tFWhcP`aldYVq05Sm7Oek5G1w`WV0SsG@{V9?eM3lA&wJYlDbts zUs?q(h*vG4O`1NXlma;*33kVbtJ8=+m$0k|P;CyJWd&L?K%1TV_pP)mlK2>_pvgqw zjIg@fD)V|U$ZWv`pJBQc!Mz=UB!AN`SHiW z$?HIZcm`&X8f=I;6{Z#ncqkek+3K-PU)s}M?*3%EH$xi{K}`Hzo~s)&9g3gXRq9mi(;Jm2&)R2OPaN6Ym6*MD2+11|Mmv`GlCL{L$Y@c>xyHWz>t(?`@o(P?r`{KZQg>T?Yk^O><}L@NoBN6B}Ih=t;fanpgYI z?nTQ#d11bYBuR)^9sG@vE*zoNna|%V#jI0tA3N_f#y^V4i8ElVl*_TawAhIXM|P9? zhYRecPxZ_IkpsUy#37zIS?n|fhp^91umSM5XHgODwT5l5s^XZe8_!el9)swoD-I>J z-+(J(?-LD=bYI?q)|c;8zhnjnzN}6qaMLR0;uUz{o4Bb(TFtu9MbE?sxfY?T20%kh z+t|)~%Z%WTsYSX8tbHOR0%Vbp;wkV<>(yBH4{;d;G;gdV$7;{K+UFPWQ#UmjzeGA~ zO@e+-ZDB9eS;yxMjuqVmSkAv63B`M6g^`9?|bN-_eRqP#NyN82#i%WAc2M+GEy`VD1??=4j&-;lvC% zIhqh@T=`IWCP`g$Mb&BeMvUzR0*$mRtB^!5P}Sf*am>Voix*ump`{qO65QESJ7{h= ziJ-rjLN){~OPcu-#0L`WePJzJ741AUbScQR!nq%=Wb)^6+6rtjy?D29U?QIG1BUl> z*!I8L7bdsHIw{@TIlCbMk5&xGr{ZKbe+uRn<+|v^94XX9YPb{mZ0bwGcj@{k(TtPV zq$Q6z3bH1?Ur?MdaI&v2wNmXXnKv>>ma7q0R%eb$VGhvIUR|-vehK$?QTIk%>Mvj9 z8a0)fS*8{H*$Ql>^GxWqZ2yp1pRp#0C+nx*exWfw!~ULZ?Nafm)LrD)WoSEInm$q$ z>iF6s3XBO8JtYjZlkcOQMHlGWj=(ZK)ceEpg_qG>sG4oC;Sq8gpq2m8E*Gr!*o()_ zwU$pXxZoWLCdRLOPHnc@5h0?dV9JakT6kOmvh&B^Zu^g|KT^bcvvDu5_d30za6>YG zb=s2ap&?$(;=^oI!|Zhq^+0r5H8xUlG!g?{oF-lyyh6!+L6ybBSBB>5VqYfI$oO~Y z>gY!nDQRY*HE{U#UP#i0L&|QrNr5W7@#11-tX=#$=?RwNPu<_~6Oa{>BzvJ865Y60 zTIY>2xGaz#{k(QLuI%om1zREffP$Z!N6FI7R=xgY6I6WnQ4jraq(kA9jQ24nHKCoL zAWNn6Zq=8Lb$%;v*v8mgsd>CD70=M~Bk$%Vy$o4v5SG)o*9oHS^vkt{MT)N?9Yce zeI)SmQ5q4{?m_OCTdwcU@GA&L{Oj}6s|pFICkwt84r2%Qmxv{S&NdTp6bM z6ERkhr^HI>UGJ;|#iJJlhV?t}T8v#lu?|Js+s-k<*6v(Y|HIY5Ch`>Fz1`|iQJ-1J zh0AZfde$#-`V$DDow3_ILX5m~u9jpuvoknyIu!h|?ES@&o$hY5K)T+<#-gw&JB;tw z+wbP5-|3hu-#kMtIXahG-ingxcCwF=d}F;Cq~=jMYI%-s2`LeJSH*-(K`ZF|{ve`l zL;v@TYd7D%VC+A#hQ6m7xIzAA8F4r?ivKbmQR^GwiBl{7|EPNtxTel+ZQP!oQ*E_c z4x-Goa)crRGSARKLFN{e8Bz?8hL9jZ#sKL#iXc;p%tA<2AS#5&kc2rEA(0_ai6jhx z2qD1`0)!zzfcW3`e7{@o|GW2o_nvdUwjV!&3(Vf@eb>9Q^JcAQJ;RAv)nC*y~bvBk9Vte!_-$G8ga8{lVUDk?6g%Z9gPDoOk!uiDW87mvr`}cJekY z#}Md6KjZZkorJv{CBaoVz#G%m2#`QJ=mgvvjWJg6FVFUEG_5!F`1UPw0d*SAqqvnS zp1|Mh)pzASE7pHSQe|)8g`$qY^a5a$IfuLKIRz_>OVjTum~znC=xpLQe9A(h?v};N z_CgS5v5jG`ZlpIAr&A1vsgrHUP`yQLD!Qpi=F_KQsBX3DGt0}@!p)FFrTsDH9igJJ z|MV68ZWQjX(|~-Vy4+3@y}=SbZu54(=41GD5ZT$ zH{H7X;`MsMg9m@Xi=<3#n_`E`hV9U*-HLY@COajIw-%52m?HOl*%1RkRVCC;2f+JA zlCeOe%u}3J<_A(Z3iR23e8+q1ukUoRXBBxj+SOhH?>qCm*u;r-pr$S=@eTGy6pAsJ(=?zOtT% zTk82rNWje|N5p(9*9ll3X-{97=WR6n>6Xb`o`1)t5@C({c?c+ClJkY;*|iXzqrnZ{ zReEQq6N#78xtjyZt*vVWw6JY(-QyXgBn1;1b5VZGcmmvS$}2q4YM{AYW9%+pkGKDW z;Cc6}I;6-;Vi8m~sx38vmNainPH4Y!vLMy|r6_<}j_*;yshV6pBeevcvGM_dz z7u?mGG8I&g7-mMiJ`jMIVJ8;80`Q7PlDgy*A{Blx#kMp;#aVMq=ydG{`_;nTuFIl> z=4;4pEYTyZ(}{;l8RFrAyUk^mg9Y>!%ec4KS4a2sL&cCQD?avq!q*2plF=2(#;ptG zFw;zcpel6w&Fv;#^V2HD9W?g(44Xp?NO%*o%7S*gUOsXiK{g* ziwfIic>QXhM)SUccyHv$L|wL-n3}oSB-PPzP|8UfC-b5h?Mb=NJ=k8v88#!r+7HN@ zihNz(^rq|Oo7EeXw9KTkct&B;yNE6DNH2yA}?I{%JJcNn$@DgSQ{3g)ocsCn zB3PioO{)X}3-uA@Hu6K<+4&&3PX~1?sLHK<68T}bS2lCm0#zy6RR>ts^aiSyeckz+ z1lZ<&(8>NC-@yVTmiQMwX$>i^nmTdh@_umA!{BSg#0Z$e_)Y85bJKAMaI2sK=zgrI zWDnj>1(+aFUQB5D)w=BeFem));`7H_+r>Xk85L6hB7@zFrzRgt(6xH8NNH<50Yw{q z{ZyiBPqpOwHwS!i((v1)n^aqqf}*=BzI}QDPQ~kPXmhS#$=cGC2)bwEPV15`)u&mM zVQTyyPfnpa=_I0X@>E*E6jY`ikoKwBWEx0=xtJu!9MlS^c@DdJO_qoFi+yKEIx!#z zb{KR$FNTrUnd=8C3Salap33N9x$Ye_j#Xa@dc?1~Fg zewVJw1$UBdQO3*qszbZlI%i{7n!_AItvlf@Dk)cDzb>+YutZj)UwvFfa%kz*zRc~2OoC9=VSFs4uMzrEC z?Kq#Ax29OAVFg^B#+Gw z5zJlwZPqLRXsJK%+o+&$^l`hv%U_m59E{GJo^-XgHY=_?G`P91TkOy73xjRc!$(^r zKpnRq5TPHPZ62SBbwI5?-Pz}|YDcP!=_Q>pJLOjx75-Afcq77s5SXWp;ONa6=Q(ER z?W1W_Lew)D@G1#(D$Zz+gab4X&t(5(`}2o5DzidzZyEi`vSUfdl6tbJ#frM>)zB~> z$mY9tUXRdlJhNm^HZx?QG@KAP=MV>_+`8Bs$k;6vvYyT8$uNKR3(W{6dS)>gM}lsb zikI?W7gwHKeh8JrV)gGzh&1fPdju!QZ4kJAmNu_{hqBOaZ{Bk zop?fW{+$#1Q(M>CRFV>eUM5uu4UZ?o0150H4g4@56HU-eX=JXykXNp!d%5m3b0Mi^ zyl&(y)4~c9&D8)4BSWj!v*tsfgUQAC!R(GZqwBNo?Q@+Y?UZtv(t-K=_dfo81z~kQ z96Sf+4h~WwCr_SWaB?dva~?NiFqp_cx25dwvQMie0Ld=Z0q`PlLjD##XnhGHV3 zEIQ@{J)G#PL7I2oZ@a4dY3Km{*7yKBp21bX<{T%M4aU2U#>v=+nOZSt(vEE$`8?V--0?YYgotY!ytHa@7#emPYD#8lB2gsOyT+xRbSA_JhWlJmgBnll?cyU;eA>>0n7;&W_&_4;;`@P*{*Kotug} zu>dUV7TztPeu9L!-IgGpx?K%c9wh+@UiMTSiiSDx2Lh|> zh`}pmUS@)F${kTYy9^(lmc2@Re+hT?{0KP`#XP1zL34?Y^MdX9ZK!`Ow2xi|SmB(yW=OTXo4a z&Ci*r;EwK?R&o(N-@IJXGIEHZuMP(q=^E=NuV`Pc!>$keFe@oWRtw1zaa)2ii`^;I ze3m69)h79pZjtae&JX%IR-$hojadV0hq3q5Lh$dt+6_>o#QClGs1+pq5$;(EU4#c$+3N;+o$_1$f)TwL^b@8e|AH{xF73+~pu=VH9F~p|zTzm;pBK^+ zs2z-DaRM9D%p0ueL7b#53w4uNq@6y&>~APfv`GlE>s`gCUF~JW^OC#n zbqDss&%E=?Mf>mc+MZP=W~ZceiV0K`nJ4YIa09>Lb;bnGqSC&XYt6{BL&?EZ50ho> zX^==xBz%dBlPT}op&!1@^Zd)1|3}v0fIYK42x-l6;TULU2B!P?Wtx7}N?hEbffC^@ zv~KqN+|%n(E9_HaOVMSJbq*tbaQk*{T``e1kO$=Od~OT^r?D z*?ojyMPk}{A=PsSw0<$pJMy3j@XF$*`St4MX^4lH2oUB2Vs%=iv? zP}I3#`+>-c+^l;l*pV2YY*|OQ>NcMoP{3+`Iw_Co>c9j#YlBmccO{CHoyKq%%Hrvx zXlEPeQA3aIqhDg?)`LlyUc}n@)M#lwpb?sxt($ia$a{!eW@IxQ{^qe4!}m9}%H>8C z+}X9g1l)CU^+->j;%4%i`&F`=^BvSF{SbYHfV0{^{t~ft@f3EVXS&suKX|+PlSAGB z>E4;`YA~SD95}YCV1YA88UmoN+5t-un)ZFO*Ix~dzLL>`DI zbE4wei_|5uLJqK5;4fnULD{|CThwtpXAht^w!JN=`NicwX1%w<{VOrIS?HCyF2)LU zr{c73chuR9&g-gtsjWt|Vy|l$g@n!19#=RRvHJDfH3nASQo0uJLEk%%2*B~lE z#4hC7rfX2Im)Jj7(Z9`I-7{xFHuSNt59o`smyn(nY4XE!Sd`tS{Io7ts#CBl=SNt# zO#k>h3XCt2L43vrrG`BnU#(ILNpx7=Ezw7?H8OUBf4bVwB`r2S7EC0SY9mW$RcQRK zkn*R7d#R{GI>joaWH?1_jr}6@p@2SO&F$mwA3ni~gVu%&otM;3lJm^4Isn$iN@TMG zK3!*?r9FlYPB!}N3RRDv?y=%K1XU)nH9rJrG!J>jq+Y4-6U%&DhXUgf;-fDX_8CLc zuD?#CR)7a~eCMw1V)J|W_7=usRy>UjYcz10(IH;WaAB3iHqIg#k9@n!m<(8G{WYS? z#@6{YcYE8>-C&fb&rJu0o<_4{$`;VaG*8AwZIzQc7H(KeUT9nxPQl-qUkKifO&c*D zw1Y#JvX%%ydbEi6iq)u;{|YQP-}K$TEz-N=v_5Ki`iz5lTSynO8^C(XhiX8h=P(kW z_5J>erY*n4yWnTUX90k2k02b=Xnc@i6tck`sYIu(XpzTGyC##a6z}VK@r~T!Qhx15ooaCLoi7>sXFj#Al~*>G^10zlbeA%WT7s`b zh5Hx8uom)eG6n`>k_(seCvf-7OGo4KBn+)%y!NA~0V;%cPxHQ(_6BQu%lL`?dJQLx z%XM(TLsr=2x>3x@ci%lRT^G9!`Y7X5c67N>#pxz~IoS$@1e-_(lM3tCkmlt$#+WyA@>I8LAcr{X zUQE#iVigigahRX#cIkY5U|_{!;vDy8yWeS@LSu0j7CiNV{PIv7G9N+_bj0k@rtD4F z9eD;PvbH?$cs06J*r$8mk9a&5`E+WC1&I)?i2*t8!i;o*`F0wx^$@o|r)x$$=Bzb< zTluJgoy3Z0c3;wJx2=bP)`fdvqh0yy2hUA}am9EBc_h1B&jFA-8^hJ=Xx`5A{yl{7 z=P}q>t0-@mZLO`XO!W2jH79E8>YiFU%j5ATZZw2af!;Ew={gGn?G2HwlQAI4yA3pN z6KyfQ5s7FS8{`!D5 zTK{``3HOnMzL+r6CIo=(SVm5uC!-ChQWs>fHi>1SMX4z}a z&d=xChb+=m2=O_yeDbU*_r%P0l3dkF>XeKjW#Ba%Qv3RJjXYD5Z|fwn4Q004?J$yL zb$cJXeJ_3Z!T~;?58;O|K*HxE7b53F2LaKlt~gzNBYmBDVtDxcd}z@M=ovL7zH-6l z4NelkM%LX;x;i&C*T9VlWd2EC3Fy25{+I`}-i!h`(2D?@PLC?2P{)13pu(I0q+fs* z%{S>600pY@2C+_y5Orz2wYpoIlN>_r`B({DRPz*$W8(bkI6q%;LcOU8Q3$aLLerRdFn)CWV;vI8I#VFD%v-hS% zrZs}Dyk=og>%xwE+#jvTGvD1_n4YKHc0_(XOB8rd}L_NctuV(azYwUHx}(t{Ce z@WkVD?MdEkwi+1&GU9x2t|+g8H5ZsS)K$y2cuY782KVqqq?$BiV)pj46u)X&CZTOc z6Dv$>@Zef793zYJpJBRClh+8wY!C@GBTiTYeIiAgg-?8T9g$h2)%cT;Luq+kC+Wgtm-p0NxLfh6Ny&+XZYyuUoVH^gl=dNwX+Jtk?djay=xDKu|%;92{WyPev zc|Gf=kH7jQWbZJbE#*NuGZmMljkAHM9TR-nm)o*1FML}<3$WK+fjqZp3RvpF4($2VQ6Qa!I4yRUDDJ;nUV zu8fz-$E8f5rcQUV#HbO!AAj-v4_Zqcqs%pj9)Y^gcdPpm`|Ps<4#uUobr`3{+*0#+ zec;ptILb`6YhDcgAb4mzVv6F*YRS_#GADex&ZyAje%LI)8hbZGafh;4ki|Dmyc2Jl zcyF_^vLxl$Pd4su_dicX@ti-4w>&So<6lJ~Bt;UxEW~0COU27ONAB8Z8qSY47o_YD zp4{=%XD}v0C@v`moPnaSi#-K-=2PV{$T$Oeh}5g=_PR}ya|C$TJPUKzc!}IH0XG&y zCtQ0`3*G7Etn`v=Up@NnAB@4Te%L$5<$7d zi@6+(LCaI>69QPyK1w07^N}K+@dtvqv9@1*e*cNXQ^y96-3f7)nCAQFmMr+7hoxnu zF_KU+Gkk*hF$X}(cLYqS_?CvzTQ`kpjU|Zlsb0^m#wqFZrxAr()#+KAnRT3zS!60Y zb6%OKfJ5DGUX9&i=uJqPp)_OfBv?RybbL#IiY#vt?~xMIxLr8_5F1p6*AHtDbR16a z-eZZklQw6q4b-odRfj%5H)cDJ8wj1;@fhL{+8V_Nd^78HNc`UZe(Fpwtk$ zBk9U$#}3(xoo1S2bExIsP$LEd{xhR96%|X0EexAI&WFr*@-@O-&)y2%@7p~1r~VDAN__tE z_Hw+Qv;!L%+C5+AWljptG0CXU0%&b6&^r7%8R#4LUF*|4o{_t}n7cDoGp`TuDHYLW zwP?SQfUFi26m9@|KdYEsunwo6T2Mp8k>sxrz^lqn*`+osn&Tqw2aYsFxCb3kCxoUa zG+RtZ3q;K(SCLEXO;Yi#l%$;#qW!BKh?ds}3g~HadfcGpL>ofd?IGYANWzH#`C2U* zbMN^%p#?MkdRj|g*W?s~%*dxyZ?hyP>i3O}jlOn$@cRh!@y+$?YlVHXm>sJBhSI*D zh1l&{*Iz08F#@*q!cF=9{`-MDH~9NTlH`L- zXryk$i6@k*{;cJ}5^CN4v;n>fZX6v)fEWqX@wl}Ry0M^RAFs<-+Z!z3%@ZsbE+d}W z>MUfZG|Y4avMj_wd7mISX~4g^VTaxTBAEFe{cV0;$RWGZ0xEp#=;L2j z=-n=fTu)z~J6(PHu$D_eZ)w@^mZW-xx%(9fG^05x~@}fBH1Xbhp0i{^E`kseK zvuc1wCoyV>L=$mvC8~r-H*HQ1sf?a+0WUW;A!AJ&x2HRjWWm7|=D8+UH%kyQs9ryD z`g4YE#d>f@EAFL;k6-q?fg}=zgXH5=BU|k-pcu-nYqI~oBIkFn!~M&; zA2?8tE>d^ujB9GLARDBdvqqdI^gW_E7|_FFXqv1s{kbZ{!2W}IuT9y!k7!Sifi6!k ztg6~n(=~epMtnb23)*;}<^xn!|iYPIFGB2#$wPPy!E_IgF#=C{4dRkYJfg;r$M?> zwyVXgr~}!uWi$_JQ}cy?ak~Q`#zJr+tewo;k)AFL8Rkydd}SuQG?76$xyI`Qi0vm) zkc;`xvTl(8EIm-#tkqXE{+wY=GysV8jLZc)5}hh)N8A@3)`p0tzsG2g&<;1P+Sp`B#|sJPADykSp zr`mpn9SXe0{fSy^==0ns^O5~$xwi7UJR?j@&n~>C;|e4M?2sbwr1#L_=^8QS4Zc~j z#`X7yQtrw zPb25~7kfU+i?ANJEV)QC12Q};>XV{EO3n*fMlp&5(HM z&RY(_kA*FtTZ6Hws-lNtkKt$oPOXKPEp6PlE8vIS2gxJQea@)Zmn9AL5~d zg5{Aix4qAWOY4oGf?-!fF4nyq4L?KY+7&od41PyY{i3Ff-G}C1o)Iss<10}&F<$F_M9!5u45gclt4cDb0-46EoF+~!@NT+Zkn7gLR z;}jv5Ou!-n#A^JeeYy8g%AnBlUYDBinEsxlHeIqa6L=nB*>=UjA+-Mv+XH+;TVxPMCHsP&!^K-J z$!g#I61HOy#beqwd&Z4$SMdZ}s4OqQGlv$=?0<4-M+UG2{Y;$EXG|lPG6;drcbL^C ztekva)F*Du8{FZdRL_0rEflhZb;v8%K-p%AX;S&f;AjK`NS19y8g#_keM9HSc&rNNCiE`-{^~sr$`C)z4C^t z_k+HVc6?{BF34HZl-7X~SUEpeb*i%2t{3JJKl`7K^EZ6Hz5UJi44LoR24Ewtm2K7S zDvu2Qd0j}&DUAfS{1H5nuq~1g1xX)T?rIQC#|8Y3MJJCEo{}WIUK&`gZ`K8wFfY$= zV#edZ9ev%ClhF33w<$IE$>i$3I^*TCTRvV!yz*e@!j+_9NI7V9sp)Fh0G+vY0zORY z8^}f9Fp)$YZUm@!Y^-+2u=edjhZ^p+ne~8?W)4@g9V)2z8t-(@5Sn+Q42~9D+p>Q0 z!VUu)mU4^{S6Q-zok+0QkLv~tkUniN=Fk6zQT$)7l@!;(YXwhjoH`KXR}+i22gzqy z()Xs)^wPEty$tx80Oyhl5;euGNQB!h5Ps6XP1;K7F1OUTjq59!m8q@ahua0`HZ4P) z5Fw)$quY|SY1VRAqp_mm>banO{{6X7>a?$Z6hAL&6C^lRyiqwnAEIqV>2g+O?Knt3 z?34nEFMu}Z+4LGnzl(g0X8uNtB4ouV3 zUP{8}tw1Ygm=;~NOp~AFvBSy4uj14@r?3bUL^8lRmRgF9Og&{==bx`cc%$b-xN_>0 zhJEtelyL|3A2Ipjm0f?y##A13CET-ET2G@gK`Wlr9y1wR_E6CBU`pJCfb;RwD^;(6 zPM(8R?xa4|Daw;lQc9(V2L__52{BUYO235fNV$X;0VD>8nA=V`S2TqIyA79aOE=a= zt^QXJ@?S&PFZWzAK(eT;((+_M6s&1+=6+2Bb154{auGE*ZUiKt z2P%UMDcV6Q$NB0F{;UE|w&{sn{n^-l4bR%xo`66KCVY))iBV>?~$L8{cA z1K1i?i-*+Mz#S#gC`d5vK%D?C)#kfY3wy0?hr}ikoM85(i@u$@t{|T}4$EiZ)Mi772$L`oCTS0){4a0bCBK~n`}OAemZx`KB(v>j zu@QY_&J=FV!%K0l-7aN*X$w{P;L04h2j`Y>cY(pFA1dF@s6-jJrSDIUo|x4eC?N2@ z-*|n%b}=8GS+F5x13kD9N=aEGn*pub0r)){Y3!ChD9~YhrO|}Eo*p}}bI_=t(Keil zLWBSf%zzRMy_p8LFD6`pLr3)ix&hWx0g-Q8zGbu?+WHFCk>9nrOO5?&%e=fz)JC`N zD{Wwi(wEH_IXv|klWCY2nFP?alRzqpHz0OV*QR~~6itr0JqI0rnD$w&9sSXLH{KIG z4o0FxdzR#x3hL$9`?I6mX%;h(kNxwepFr(SymRk-nwE7!h@%Z_Cw)1sH^EC88+)ZC zJ=d%1`Ig`mME%mcNY$aYB6VO%W@uSJDvFue1i$nK1$Enb0^&^jVF0!Qx*!Z-OGl~r zJEJXrVhc--R~6^n_VzB7;8kHCyP9vgHzW1y>!bHH9*GY6niM&0=cFLV@$`JD0iKtC zPEj7UyViHH)@t-Id6Lz+L!gB|75@uzl)&h@pjEEqT_9xu%Bn=c`s2~y$!Rfg^W53u z1W3uMU7-ji^fPrw-7)1*iaeB;jE+n18y^)|j6_r*x}mNg&ol_Q3~N$de*EN1R`F^% zTO1^;Qm~hNRMd_tl^-naBdS6MrG%w@f0_1Td2y3*#J^_TZwLPWrVUP?nk`tsqMs%0 z8H^^c^)>+HSbB^3T#$S-L)o>3cz+rH!8kxG!75qq*GM5g-xO8-O`v|WI41^wvTtge zmI{hdKfjeM&{e{38bv~dTi#x-@raR%$!n8NUOF*|v$)802M2$gowLYS>ENdWCPfjd zw66)^PX~&t@1ODO1E28|xsFl^>ZK%jkOy4x1i-+Fx)O5qR?hjrWdx9 zKKDDvx_$T9!j)U?T5+Wi;Ef}BnSM0D4ni<1x1bKGearHuKrACt$ZKaMT}OycEe(BP8WM!NKE1dfh2Oj`~dc|zx!SHl!53@g($bZ?R>OXxut z3Q8Z$)Lo!Ox|PD&rhYD*jtu^^Sh>t()~A9eL2!v4L(Mj|DKI zEAPFIQybgFcbNmrMv8M%!<753b78*7s;6+|i!RINwYtPJVtrxt-N^4rM~Si!;Jw%> z#ccrnF4NzR^VHyq>GB#BPD{qHC=tfJl7=(Mv25}cc10*>U9{qzf_vc^w%wgv>VY+I zJQ(8vKKd!{19`E)LFy(-USjDh_~+`meD`(;ZKc<5xh~u{g?&Kdj`}{X5!}W}s+$~L zX<8eO04+Y?0_Z@c=3?EvEDn19;^I2QW-^rt_b{^lPZ>~C_Q5@=2L2EeR|(uKsSGT@8J2Kvw9 z$Es6yKhO9gCIbrWB=;Ikxlt2;`~Gjg z@s25Jd76ZY67O!oCmJI;%QIaGv6QH>y4b%ims*;eGzY)U z1c=}O>Fz^WS>p2LOgT6t+n{guY$M@W6B~M&d=!z-=^Bhl=to5jvM>ykM2R}*jF}$>vS0*8BRT^ZfOTB)~ zH@+j0tv7r+YrfrRXU?7PtoVN2K*}y!W6UrM);t6e(>Hm^?TlyRVv7JuC#qbfyxgZP zeRE(G(0pS{X~0iF&Fem=xp-~HZE$t1>g($#rb@o4_R&0hIorD!P*nriiM6WY%XtQ; zxhq?p%;dtdxU+4hE6suM)Y6toY0K6mvwrCH0q3Li_Zr^Dz8y2jIoX8hq1m@hcOgT| zf->v|F26po=v^cOM7X_if!zyXVmPND&@g@RNOxATM~7t1hi!AtyJIDs;-}7 zZ>QMp8;0T~r9#)&2Ot~kLGqEXV4HA2nPVO!OQZT_PglfR?wZYd4U0v$%l{hk%GH*y#j1`L%6Q%E;?zD zM4OIW=;16+)^yzdo27Jv0n>^n*KPD4hFPZmT2uQE{aiUJT1l_p-g=5`8-XF~ z4K48`H}a}+P2l`;+k0sp>8(*o(yEaBKsX78rn2Skb5%pL}wpFWwHCQa5Wd?7kB+yww(`&TUd>zs!#U%_r6ak?Vp-5)anyqS<}Y0g^fpbGb(tAgRyW9kyJQL zPP(0oByg*taXS&&?DvK`z2p0_tz4o{m(tF+LN7OHPUSi%b4WIMN>_4%xJs6m@j?g& zTamU7_SBqjSyzmGnR!1rJdiECut!G&*ySCmhJh*m34wa+j`^%@4n5i{riZvH>d`@Z zTv?onZa@5X$dESEKpFG(fySJe5sXqtLMSwH2nG@d7jCHTM0l52(_P%XWPMfNuisxtBR1y*>xtLMJ!; zOgFiPu;d@}T?>a(|p@Q>SM%+r{sxILIW=oQ88{?{IvUtKeZPs5I18|c6Kyw#VH8ogo=}R&>fn ztBh6CI-Hep&5G6T34vq9yZGcp-j)PL>qrd@oKbYVAG*!6Z?q@fimAPR`}==<;J?X{ zc8P?*XQYI_-K$-Zn{AU_QS(sSM0jvs7;^fVYjN(Zl`GK0xj{IyKA3YN)%VGr##Bo{ z3mKpyZdP@7_j>8 zclxLBy@9>b_)OZX=vJ>k%0nim`w^wF4Z?HlPzR%@CJ#lVpvpm5h8_#xihRBv;%WA< z)W`#zE-*O#{@}O3i#lu(=VOpl75DnUt%3G4*IFV-XiOXNeI`7AGA#!Xlg|xxP=^up zOWk}wcD$69ER<*DR^khHtTQh;HCl;cX1}Q#;muHM6y>z$h1r?~O@O2e9lI3+Nn9{x zEMOlFkk#*}6)%$V+;8m$GIXdM>{MX7<0F#r2{S5|Z^N>P{=%$Cq+eLSJRDd0wan;l zdk}Nk#S9{cS2&UE0K%qYY{CUd#M>_y7P+ZV@{yh#i zwv%#*ong!lxl$(70sy9qEbRamlTaHO>t+D{;jQI4I(VO#YzuYT9PxGd@boUx7uUT4 z-WZ?dYCraX$b6a|!tJ|1sbPPrMqN$;`Z?sWu!jvZF}LoZMzsyJR^tz{?=dE8)2-|Lf)?XOR0P2_9tL%PC`Bq#k7Gy6>rRnX>R z-j&DFu3FPRyyIt^>sf|!?QuYWo-c53z=tp6%U$nG=MA_P;YZIs>o~Lj>6q4?{G0L^ zW|9p%!XuH>l&%Ta&LdC26%_5)SCK>R&f$KBZeE9?wSKVo+v~vcg=u3{e&X|mzWUXM z)cEqURm`n?v+@6vw$$afTvjhhoq+>eb zsp8RISl}09Wxk;Zek31wPamf@tCg-90ut9famCs}^pAzhiDPzC$4&{S8{i9;BXGSO zrAQV|<>$oaR!g5Akl1|gUmlc9x8{d94mQOh;#>R3{Bdy5e7}vaoi+__+C!@MAeaJN zeq}cS!B2p1S)JbeM(cKg?p6`nE!u6NUTD4q%@Qbf&9+EJmmZ^~#iTP|>zvlS1IrdtEOZI%8 z`lhqM@=pB0-g)dXYm4BLc*2%eV(cA9u&0%tL;p58&zxjVI?l8np64UyYpjR8D;KPN zeJc5Zte+(dfbI_giO3=$s?YlZ-5%M!S8p~9G4KIAlRYZvyI(?n+S$W!xUrx%YpZzj` zf5v(z!SVXaO{E=;wJ3JXx`qd`9mgYyWAyuLeeDpi9j!=C*UD7~>ocKvN&)0DN>i|K zreJf_F#;30l%{g2?n9Ah>>jm5u6RV)&VhlVeE|N&T|mV-pXS1}>yT7%d&4m=!$#Aj z`^qv~$h5-DjNakD{P@od__sLrU`-P{OuRWUNyy6ze;NIF?W$?)!hX(nTLR?D{=+2M zXd%gl$#7`-I!+VREZ|Tb^##XsD>R1n=lWfiNJasKI*0A@49~&jHvZI5&_1@dqSIPG zCD0ZYELQ5`oaG=J=2%x>VnviE zy;_uJ5`$!=HdhOy#KNAq8LM8QaekrV$^IZ{K-Rv?W?{{~%~LoTm2UK)ww(#fe=f)a z`;%d@xtFRGReNWi+pr2%hoUyu9Qhz*YBk?{-X8m`CN3y5WxjRcgBPfAJKLN99KdJl zS?fpiT@Jr%LlYp}R|GSdtYLAO@)!2r8_dzroDF<2+E55@aa!EO?EU&!n?wWKH6j#usslOiCWP#&YxA1NuAy|{$Ilhc~@5{skt2g#SFoT}2N zyz=lA+5L%+%0yqx{WGEXO^*G8`d+hWMPQSL{sy*`JUEI<=~|#@O(*&krclAfj>l#D zH{%z3sB~t5fO^sVn4s=1x;AY#xW**epB5c3{gDU#iP`?;%cBNrBU z<&^yzdrRQV9|>!f$Fdzy=%Oz_EH-=@-GQ-GUA92qV0bGTfyP{E4#)POg_4fMWZWESvve92;Grz4~xA#w!L zG(g2RPDGo;L@q1{_#wqh^+TMY^66&-1N~h#!~FgMpUOI*m6Z@AB2U4ks1&$GnJ@>I zT@dIE=tLCP1M(-pu7}kKq_TmQ-A^8r18;4DZeA=ZoD<3fD7Y+01c0cIg^i4a#O*4|$JIGa4p$eEQKW2uC9#(Vja5QNZTDl>&a6gzYRZjDtWdju$2bX25O9bc(h zkwx%J&10Rlx?T>ZFg!JD>CHJYTW<7@^mP4{jfZ=XGu}8duE$K`ik=Afx7a3ctnu>g z*SY!#_mX~_iGKT;Z{GI(&)60~!@ZonfrXT3URj%=h^JZc7KRZWCk>W6 zOilfwY~^n5u;xmB#*=O7j74LE>j)(d@;GnsBorNjG{e}eRPKG)iOf~p3vN6?ZMw6H zNvpNm)y{=RhK*KI<^)yX635K^Yk2ZxEN-cHKkjL+#m;%*KQrv#=vejiDZh*kRAK9?H`;--iKQ!);O4ZqL#$KW<|wKy7Ef?2T2R5UpoE`$rw2~ z?tQtfey}KZP2bhqy7eT~ZCvHCMBq?a@6vO*Mt}EoAdTwJ%D=ElcZq4&dPKpR4xNJN zOr7mBm@ZW6W}PjVt`VBI&|eLcs?5u-fof7Rp<}_<;Uftt$)-Hk*uHzg)6=?JF^Z~N zw32+qqxbq$4*e#vJruikf8m&Gs`pqhY0v^E@cgmAkFc*BAmLP^Ix(gk%3|LDhf~^y z>D!=0_`g2T72(51YChskJS#f=$LB)FyY{h*Gs{K;#_1>Vur!mEIA8FG*KnlZ*q%6k zz9U%c5LWxNq__9}v9I<6g-pZ9x^&e1qYZk_1o#-`+c~ zY=UGIh5c%y?zzLQjl$AB!!I*=arMPai*+;KsoW~_dSUI^K>88?4dS5+#tHyv-Fo2g zFy8CI)W|Ky+Mc1G8!QK&A9;@16KT$VgJ%T=@QnRyAOp8<{X0DCfdk9!hPsKS&x@OK zm#(mT?}9~#caHBv1JEgqhiETpofnfnT35>~4bmw$6)Er8F39e$Jv2pJp+dCO(jz^Z zBU$zj0vZt~2toMT6JlCHE_DAA9su-c2_NkSvVa@nDg6)L2PBy7BIeT^|7F)hq$8$F zgVF7>xkA*vNO3vOuUnNBN+TZ9VYVkaiNG`X#oeQc|gT(zQt3wLUE zc$TIicibpFygfU*ANPDZ4P&eB(_qEY$@~L<(YqX|Fokf$3m=brD-o!I&eF8<;>Uv< zNtEEqhca#D?L2c4x{EQCSZ>*IOK#`}a~OV=B|Q&SSi13~<&DPhLvr8#v_76nOIx=Y z+Kni?l>ObmEKI-JiQZ92_uXW#W8c%YXN?z0gAoc(r)V$Iys1A>6TCBayo>7jA-)ll zgTjrPI`-)^+ZlFIi40vlci8%I;3QJ*6((L~Tg8BQ!$-$0CUDKG4Wb-UZALy=sE3;8ugr~_NoR`cW1G5E|2XyXSDWlFj^25?cJ#}; zb9X{YwE-r6kS0%-8dTl^pAk8#1v~<}`z6caf(1cHb6#GgIYDo+@}ZY`jbmV)b)um_ zotu_Zf~;3bw4_ATlcqk9`C533cX55< zB&#e7lls6`aFQ>OdRSo7B;JMe#z4@MiNq7^_a66mxU$I0=0Lw zdpFCx&1qV;aq>B?@D6x8jR3nWr+kRjXX2c328?k%YXhgKa2XeVq+a;6NO}BPJ)s%nX8?_#N)4)Y2>T>)@L}o1TQF=jv;9 z0p{B4OUeR1vSdN!qWE?$BBpa@z8gLh1jtxU!cl=q3<35?LN_361*Xt+Ajh^Ibi?FkPWHr)8xfFE6_p~% zr$O?u+$edA#Fg1M2<*nOpc;KydX=9TZ`7b+5;;17{tG(z^?@RT9f~Qs*;8q6`DL5l zXTPldKWV);OZ^UW!=jyAN2VI>9=m{0U!la}s~0aqCc4~*&Bv4h?cvqZPiPdovWe#M z3ER5k8?FNLn4lM;*kvA9YT+jyI4x?3x6K-t~6f8MeKVb%FX zKkn`wdRP1F*HyR5Kw0Q}wuP(JBDeN7jcfEEY_wg_>wojy{}XRN2{AsYcq^muyYfJu z>#2Ct1Dh^H#}@cy-vCa>@|3=VU}1{m(Ts3=^RzmtgA;SS-v7R&aG;%*JF)K04IJwZ z#y3;%H5tn<7vnim)gjNRBn}u(>`Ueq<+9oBr!X}fdAW-}hBIE5`p1pLbE7vybief5 zAJM-dFgQ~dMs!W|hF_ppk&58gd`aLmTcJmt4ZWZVt=150CuH#2rZy$tb}Y|M%SR-= zJp?Co4fFBc8vz!pQ)2DJTqUQ+-ABfKtf=+z2a75%!h^}q<9WY~Tz$|5pOWv{T3rWs ziedeS-qVQwL4ABly%1_;Xjx!iYp_l7Wr2KBcg={^M@uK4R(db#3r9xU z4)i@Ch&;rv>m;Nq(O^G;3G-d=)3LkZ;QYzNKMuiR!$x|rXk{liIN`#)jtJ5q z1bb|5>nBPz+;&qvmKr&t=oMt0g$Fr>A}B6$?&woVNj($d+0Z-YD-l0lm}_)PITu?O z;orK&+J9Dux(XPD30uqB^vIl3>`r$(R_ZowH&KshG_5NPryaiV<8LC=|NBK8S=^c3 zLEv`@>k*l8g&a$~75|d8AMLq$362!l$@}2P;r{ygRz*9x<|y+nf~KfD_|wLv%BIrK z1~y%JwrqFmm<_L@yl6T`DgE4Zh)NNStPPWUJaft{e+BGrZ8?NetGsLV$D#uXT03( z@v(RefG^Qja({4i8z(aF8s>%gmhz2_ImWgd+Tl2ijsn1}2f$Iw57sjNvYYG=&$=ZC(zXTWY?lAEIM!Wa1d zGFX~rRh!_*Vg*6Hyn6jdyyFXd{Jh-^-(v*TS z_;NuW?AqQ_N-~7@oC{7@ZMX~nwqvxw%c)#%>JRTK)r7+J6@#BGWVFH!yGsqTT!c%W zE~b7X?O8t)aWTxHPg`d1W`?3~tgx}xnP86I{}dzm{~ zCD-@gAOny=itV_W-^p2A7e=$Kjg(oZsihRUP&5>E9I_>c$#e}iw|9(qQNAj(gnzew7w`keZ0)|WH{p1q1s;$RkNw}@P% zQENz;gyYAp%%#D~^R2iqhev6{#1tKa3(^5E4}j}lQ3o}}gaTv<8hl9dTw?vH&srGP zUB@|52!xxO;R;LI54| zz6m%m5e~<{5-Sq}vN4rfFm=I~urye@6a-ENuYqVs%P0#k3Cf0=6LEm_&ngnb??81*>P1y z>vq+D{mrJ`heLsV2ThVFZ1dF1ftRH4emmQ&nC^7xKBJE06~-n2HoNhnfp^+x@E}g? z*0dgc&a?`+3u1Gbz^*iN^=>@*)B$Yl^*S=BD_kIYh_IxEPgiI-j|7KdBfPWMl#4aA z>G(vo_FK^-6LgPz@uijoy+Qm+f5G>i4V7*d3m#!HEwocOsz^+b)PqJI?wk*}G=wTz zeqx}$VQGSsRw>Aa(|rr84eOSFvy1*C8#+oatb>D->e37AP>zhf3(lAO(G&4ex#Qjk ze-%1zEt+=6{E15F-&KuR-XuRr4x4o)X#3xjGqW1l)I^BbNf>51U&9xZCtZkw(sD4#raQN!NBE&#nmrY}L z!4GVJ%*$uzQW?|9(zLl^Y?3Ug5`#3(i*P~QIYnu534tWIteOoN_Kwu&%RSb5_K&%? zLu#X%nyztg__LFh!ZxXfQku4#NnMa7D)`S0K(=kRAQ?tY#jnFM%k7Y%bQ@;n*@DtV@nI2As6dno;g-BFJ&>kN%~t-z(T`Quaao&6a{f2LtA1J_q(3BgRNZ+`fr zb{$J48NQzc3rX4L6q+S$$*QBd(Py3IF}u^R@zq0S8*dL8S5ZP?n^6)sM!MljR>~P~ zr*+DU6_9Ef=(~sMG`timi-@4OA!5et^8fl9Uc(>Q)M*C3b6dGBF_`+56`0VDb6ZeS zAyqpDio_V2NE*{nMpf50E-c51p{G{7Zqx-SX`nol4O-Wh@X z95bacv6PxVr33G{JaVf%88yDUXV4hA5xUzD6fv_{n_i^joYaxK59DV8Mvy)^ftsGG zr5S~-LxVq!Vq+AIkDZff2AIBKDn_kGtvHVFo8N*qhl7bn=^e5%%S$A7c)W5KNmZnm zm6UP5F&S)vi?~+CZdYZ<%gc*m)sfGC?&2^KaNW_!HoAe+Wg)Nw1P{C2eet4~>Cyd% z4$cR;`E9gk1wF^%ii6&r; zcIyO?_K7aEQb({5ufVHfEyzC_{N-S31}JbR}$Nj!uB9H$shUgw+SG9l9tnq1(&ttKx|5@c@mrinf3F@XSn(rTzN;PqQf(Vv zZ`=z2`f~2M=RzRirgZso~5BW263Pm$&of%S;1ICj>22w@QFO(&C$D_Hx@wNWgFaXna;YRQ3FMJm=>^ z9J|ZbzdGczag9YPF+SitkZY3)i*4L-()5Bo`|6&8+ZK_59M({-UDfV3hAB00)DO)LV&1qWtS5AK?$;zQo+{o2*-gVjF$?d?>;0))*Ei7J^VUyiIo;{ZyllZT zZ)C7QL#MDk7<)G;`g-<{yZ84G>rKw_R5C0&tWe z9OHi9O8ds&u!H`{rat(S%ySDhInPEmRmZz%U}-2z7gHbpbZ-nwHcT z^LT|_XvWFb?q5AW`hs$LZw-kM;&nx{ zweTei8hE{;q8z2!ZHH6|<)yxFN@+aRaB{s8gNRo;Kx}KnoF4a*q6yjt9uE9Is?fLL0RyQ8S@T%q7hre%`U7RvmTI&G?r6& z7oD)r*>dxVQwPUrFH|~o4m{^Zt-n~Sw;C4C10^LUt!>z52|GBh=r6 qc+9$xx$ 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

      Ob@kyWUY2y!pEBXlMyyhq`dEi}*VRytXh~ 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

      (lt;CtWlo`=Qt2nwTY% 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 literal 0 HcmV?d00001 diff --git a/images/icon-128.png b/images/icon-128.png new file mode 100644 index 0000000000000000000000000000000000000000..7c20d6b8101dccdb367dd85271edf36e4ce92f92 GIT binary patch literal 10601 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 Dh1#h# literal 0 HcmV?d00001 diff --git a/images/icon-16.png b/images/icon-16.png new file mode 100644 index 0000000000000000000000000000000000000000..3e05adad17b337c1c29907509f14f46337371e58 GIT binary patch literal 933 zcmV;W16urvP)}Gd%X6NV5cqXCP17`+i?sv}jefJ#p#`Fx7Z6b%p{JjULcn&0o& z<2XSS#cu}T@LrngOI%r(9%78*k>@!C7v&_?U#|CqkJ2Qa5JGH#HxAL8bB5!E-dmYYYeXXzU#M`-4Sa&5CpHG;r$uUr)wS zj?xwrq;Uhp2ppx1q~$nq(8u1<1XI-vPgFE2PsjM~#~kln@17JBs&&9-!D}n2gE66@ zQ=-ZX%5*POV1C&|g+SBCdnlR2t4lxI4Bs@X=tTNC!55onCPz%`>xC_7jP#Lc11+DS zH{=M3Or5~{CL;{j4JtrJR5kpLfw{X1uGBTbLw)4zi3q>7eEhy_p;ppRW`<`Ti*Wp@ z5HB4XVB8~G9Sa-A7%_fWDdFzF0^7Uy>t`f7|rkK2$+A0UaU_=x|qTWzn?l>uJ8nBuEu1JCaE5G24qZH=lc zlUlX)5|rAW2Cx%fR#yqxG?A<(Pj` zn|u|_evvu)Oe?jI-f0ew&CP3k`-g?qppISRE=J4bd=SwMWzdwavM)%c4>8^J(t9<@dj3>!?K9g57z zVUF33cf@SkdjwkNhmjXFr*{P3^Dj$GJeD%zCuJrfilWy378sxKMM)A-x!HK1=7%@{ zU)yNh&&{-*Vb}G>YYppBI^!85p`&415LHEn-ljpI%?qWftNXGe@%R#(LPBO%&EfNbZ^?!bSq$UM>wR zS612f+j8Fsk3at|l5r_HGdEum1(7Kf>1HrS*;%fDKUNq5A)-t|bf*IJXMOA_G$A?x ziiS1KM~bz0bR8Dsr%~aU=a%G07F?1u|x>;dHC>S4Hti^ zydb{%oGK4yYcDU=Y#0L57*);SRq% zXp4Q2MGHlr?nfb~nRn{ovTH z2*;;HD?*Qj*g4?f*gY%Qe`gb@P&Wl40dZO*T$oi+ZHnkNpt5Mi zFKo#R_~_X(j-E46Z*qVDcXZRpyLh1B;I4jWE!01$6uJmM3^DbygWWqBE)iIY4s`v< zqUMMgDl+yCI@sI4gfcNkM<78FLZbrPl*E7hZJMsD#aj3F@(07r` zq)t;#w|oZQ;ujDR1;Ps(5o;}8X)d%;euEMwXPemfrj7HznsZVm!MIgyBd0U)dV;-5#iG!!+bf5q23g9s$r94hl@Z!BybhUq>~@? z_vB8HijZoAK9`L-L2ciIcr<$Unlg6cV*Rz>7eiEP8hX2QjBJxA8W)bc*2IqMfl(70 zas8cCQh&vBefUc7kDgJ5BF>&PIbF$3UR}z4zAaOIsi!k|#CF}JW%(_w3rG-1hOC&T zoXO`pj??_o&ALemZP2rI3nC;H7lkbQKCQC@e#nMYReqSXs*jgaZ&Po?H1(XODL<$R g1Ig9Dw*M`_0AhL2dQU-^g8%>k07*qoM6N<$g1m7SQvd(} literal 0 HcmV?d00001 diff --git a/images/icon-48.png b/images/icon-48.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd2491122b8bed7406b8a4a96cf86c50f5973c6 GIT binary patch literal 3548 zcmV<24I}c2P)#3XV&34%Cs)D9ct*15QYwI>ChPhb*JeBhJi9bc*H3o z4K zg8^UX)O2=Rp;+Fk8(LSXR8BfBqJXP&$f~NU>2NSG!ZA*Uf`P+^t{tHRr+kJ1pP|8( ze{^UrUq&<%@;=974Op?P8Mj{lRv5Yp)3WC-;Ek+W29`yH!hYBjZre<@uq$6I-&(0w zuXP+(bzBE7E!T7ns;spBvMdY5Qih9Hkj)jq1!V$$-;?1`;QOtK*bfXtbIR4~;v%qE z!&OxQCqy=1?09ux^lyj9rtY#VJ0wPFn(7@oR9py{npV3;)+ESv94D45ly1xAi??O6 zg@LAc=JBkGg$ zdcRMHpZC-AT|=XjU+6nEay(Zk{*j-s)HMzB<*2?;&x?V?U(fMZhyK&Hooi$G_qIas78h_pe$gNCHOiX8PI5UyjN8|ls_}PUm z<;!yvJ?~>w#wOEuOwVNBl88rc2!#Se7n@6+&-joRUh{(kuZ=y%2>8h!mz5T45rvm$ zmhG(n@xkX0r!%>A$<{_M|AZ90_t%g5$ytX|XO4IzEXjH^z5i{&q#R7V{}+Cjg^+T^ zp4NR&JpJqo$4{;h=b5%mHgnD$s$2K;oJ06G8U~Ye^P%UC|FD7H&=!zTOZ^gOwIre_ zSE|w7_ul{1p(A}psp??x%rs7qr@cdY_@~dF2OAd+p&jm88^tp

      3TG(w{41FX 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 diff --git a/manifest.json b/manifest.json index e87716b..ed1b41b 100644 --- a/manifest.json +++ b/manifest.json @@ -11,8 +11,10 @@ }, "icons": { - "16":"/images/icon-small.png", - "19":"/images/icon.png" + "128": "/images/icon-128.png", + "48": "/images/icon-48.png", + "19":"/images/icon-19.png", + "16":"/images/icon-16.png" }, "background": { From 87dc9d548e509a317f6bd6387781020fd93fe875 Mon Sep 17 00:00:00 2001 From: "daniel.burt" Date: Thu, 16 Mar 2017 23:03:51 -0700 Subject: [PATCH 21/21] Updated jQuery --- .DS_Store | Bin 8196 -> 10244 bytes images/.DS_Store | Bin 6148 -> 6148 bytes jQuery/.DS_Store | Bin 6148 -> 8196 bytes jQuery/jquery-1.9.1.js | 9597 ----------- jQuery/jquery-ui-1.10.4.custom.min.js | 6 - jQuery/jquery-ui-1.10.4.custom.zip | Bin 531477 -> 0 bytes .../css/no-theme/jquery-ui-1.10.4.custom.css | 87 - .../no-theme/jquery-ui-1.10.4.custom.min.css | 6 - .../development-bundle/AUTHORS.txt | 260 - .../development-bundle/Gruntfile.js | 240 - .../development-bundle/README.md | 96 - .../development-bundle/demos/demos.css | 19 - .../demos/images/calendar.gif | Bin 269 -> 0 bytes .../demos/images/demo-config-on-tile.gif | Bin 172 -> 0 bytes .../demos/images/demo-config-on.gif | Bin 335 -> 0 bytes .../demos/images/demo-spindown-closed.gif | Bin 103 -> 0 bytes .../demos/images/demo-spindown-open.gif | Bin 105 -> 0 bytes .../demos/images/icon-docs-info.gif | Bin 206 -> 0 bytes .../demos/images/pbar-ani.gif | Bin 7970 -> 0 bytes .../development-bundle/demos/index.html | 15 - .../sortable/connect-lists-through-tabs.html | 72 - .../demos/sortable/connect-lists.html | 52 - .../demos/sortable/default.html | 45 - .../demos/sortable/delay-start.html | 61 - .../demos/sortable/display-grid.html | 48 - .../demos/sortable/empty-lists.html | 63 - .../demos/sortable/index.html | 22 - .../demos/sortable/items.html | 64 - .../demos/sortable/placeholder.html | 50 - .../demos/sortable/portlets.html | 115 - .../demos/widget/default.html | 178 - .../demos/widget/index.html | 14 - .../docs/jQuery.widget.bridge.html | 145 - .../docs/jQuery.widget.html | 1750 -- .../development-bundle/docs/mouse.html | 525 - .../development-bundle/docs/sortable.html | 3247 ---- .../external/globalize.culture.de-DE.js | 81 - .../external/globalize.culture.ja-JP.js | 100 - .../development-bundle/external/globalize.js | 1585 -- .../external/jquery.mousewheel.js | 101 - .../development-bundle/external/jshint.js | 4835 ------ .../development-bundle/external/qunit.css | 244 - .../development-bundle/external/qunit.js | 2152 --- .../development-bundle/jquery-1.10.2.js | 9789 ----------- .../themes/base/images/animated-overlay.gif | Bin 1738 -> 0 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 178 -> 0 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 120 -> 0 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 111 -> 0 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 110 -> 0 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 101 -> 0 bytes .../base/images/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes .../base/images/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes .../base/images/ui-icons_454545_256x240.png | Bin 4369 -> 0 bytes .../base/images/ui-icons_888888_256x240.png | Bin 4369 -> 0 bytes .../base/images/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes .../themes/base/jquery.ui.all.css | 12 - .../themes/base/jquery.ui.base.css | 25 - .../themes/base/jquery.ui.core.css | 93 - .../themes/base/jquery.ui.theme.css | 410 - .../base/minified/images/animated-overlay.gif | Bin 1738 -> 0 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 178 -> 0 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 120 -> 0 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 111 -> 0 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 110 -> 0 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 101 -> 0 bytes .../images/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_454545_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_888888_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes .../themes/base/minified/jquery-ui.min.css | 7 - .../base/minified/jquery.ui.core.min.css | 5 - .../base/minified/jquery.ui.theme.min.css | 5 - .../themes/no-theme/jquery-ui.css | 87 - .../themes/no-theme/jquery.ui.all.css | 11 - .../themes/no-theme/jquery.ui.base.css | 25 - .../themes/no-theme/jquery.ui.core.css | 93 - .../no-theme/minified/jquery-ui.min.css | 6 - .../no-theme/minified/jquery.ui.core.min.css | 5 - .../development-bundle/ui.core.jquery.json | 61 - .../development-bundle/ui.mouse.jquery.json | 64 - .../ui.sortable.jquery.json | 66 - .../development-bundle/ui.widget.jquery.json | 64 - .../development-bundle/ui/jquery-ui.custom.js | 2256 --- .../development-bundle/ui/jquery.ui.core.js | 320 - .../development-bundle/ui/jquery.ui.mouse.js | 169 - .../ui/jquery.ui.sortable.js | 1289 -- .../development-bundle/ui/jquery.ui.widget.js | 521 - .../ui/minified/jquery-ui.custom.min.js | 6 - .../ui/minified/jquery.ui.core.min.js | 5 - .../ui/minified/jquery.ui.mouse.min.js | 5 - .../ui/minified/jquery.ui.sortable.min.js | 5 - .../ui/minified/jquery.ui.widget.min.js | 5 - jQuery/jquery-ui-1.10.4.custom/index.html | 301 - .../js/jquery-1.10.2.js | 9789 ----------- .../js/jquery-ui-1.10.4.custom.js | 2256 --- .../js/jquery-ui-1.10.4.custom.min.js | 6 - .../LICENSE.txt} | 27 +- .../external/jquery/jquery.js} | 13881 +++++++++------- .../images/ui-icons_ffffff_256x240.png | Bin 0 -> 6299 bytes .../jquery-ui.css | 373 +- .../jquery-ui.structure.min.css | 5 + .../jquery-ui.theme.min.css | 5 + .../package.json | 61 +- jQuery/ui-icons_455C7B_256x240.png | Bin 4549 -> 0 bytes jQuery/ui-icons_DA727E_256x240.png | Bin 4549 -> 0 bytes manifest.json | 2 +- 113 files changed, 7896 insertions(+), 60094 deletions(-) delete mode 100755 jQuery/jquery-1.9.1.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom.min.js delete mode 100644 jQuery/jquery-ui-1.10.4.custom.zip delete mode 100755 jQuery/jquery-ui-1.10.4.custom/css/no-theme/jquery-ui-1.10.4.custom.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/css/no-theme/jquery-ui-1.10.4.custom.min.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/AUTHORS.txt delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/Gruntfile.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/README.md delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/demos.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/images/calendar.gif delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/images/demo-config-on-tile.gif delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/images/demo-config-on.gif delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/images/demo-spindown-closed.gif delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/images/demo-spindown-open.gif delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/images/icon-docs-info.gif delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/images/pbar-ani.gif delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/index.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/sortable/connect-lists-through-tabs.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/sortable/connect-lists.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/sortable/default.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/sortable/delay-start.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/sortable/display-grid.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/sortable/empty-lists.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/sortable/index.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/sortable/items.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/sortable/placeholder.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/sortable/portlets.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/widget/default.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/demos/widget/index.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/docs/jQuery.widget.bridge.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/docs/jQuery.widget.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/docs/mouse.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/docs/sortable.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/external/globalize.culture.de-DE.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/external/globalize.culture.ja-JP.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/external/globalize.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/external/jquery.mousewheel.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/external/jshint.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/external/qunit.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/external/qunit.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/jquery-1.10.2.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/animated-overlay.gif delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-bg_flat_75_ffffff_40x100.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-bg_glass_75_dadada_1x400.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-icons_222222_256x240.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-icons_2e83ff_256x240.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-icons_454545_256x240.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-icons_888888_256x240.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/images/ui-icons_cd0a0a_256x240.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/jquery.ui.all.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/jquery.ui.base.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/jquery.ui.core.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/jquery.ui.theme.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/animated-overlay.gif delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-bg_flat_75_ffffff_40x100.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-bg_glass_55_fbf9ee_1x400.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-bg_glass_75_dadada_1x400.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-bg_glass_75_e6e6e6_1x400.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-bg_highlight-soft_75_cccccc_1x100.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-icons_222222_256x240.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-icons_2e83ff_256x240.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-icons_454545_256x240.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-icons_888888_256x240.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/images/ui-icons_cd0a0a_256x240.png delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/jquery-ui.min.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/jquery.ui.core.min.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/base/minified/jquery.ui.theme.min.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/no-theme/jquery-ui.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/no-theme/jquery.ui.all.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/no-theme/jquery.ui.base.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/no-theme/jquery.ui.core.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/no-theme/minified/jquery-ui.min.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/themes/no-theme/minified/jquery.ui.core.min.css delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui.core.jquery.json delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui.mouse.jquery.json delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui.sortable.jquery.json delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui.widget.jquery.json delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui/jquery-ui.custom.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui/jquery.ui.core.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui/jquery.ui.mouse.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui/jquery.ui.sortable.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui/jquery.ui.widget.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui/minified/jquery-ui.custom.min.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui/minified/jquery.ui.core.min.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui/minified/jquery.ui.mouse.min.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui/minified/jquery.ui.sortable.min.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/development-bundle/ui/minified/jquery.ui.widget.min.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/index.html delete mode 100755 jQuery/jquery-ui-1.10.4.custom/js/jquery-1.10.2.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/js/jquery-ui-1.10.4.custom.js delete mode 100755 jQuery/jquery-ui-1.10.4.custom/js/jquery-ui-1.10.4.custom.min.js rename jQuery/{jquery-ui-1.10.4.custom/development-bundle/MIT-LICENSE.txt => jquery-ui-1.12.1.custom/LICENSE.txt} (59%) mode change 100755 => 100644 rename jQuery/{jquery-1.10.2.js => jquery-ui-1.12.1.custom/external/jquery/jquery.js} (62%) mode change 100755 => 100644 create mode 100644 jQuery/jquery-ui-1.12.1.custom/images/ui-icons_ffffff_256x240.png rename jQuery/{jquery-ui-1.10.4.custom/development-bundle/themes/base => jquery-ui-1.12.1.custom}/jquery-ui.css (62%) mode change 100755 => 100644 create mode 100644 jQuery/jquery-ui-1.12.1.custom/jquery-ui.structure.min.css create mode 100644 jQuery/jquery-ui-1.12.1.custom/jquery-ui.theme.min.css rename jQuery/{jquery-ui-1.10.4.custom/development-bundle => jquery-ui-1.12.1.custom}/package.json (53%) mode change 100755 => 100644 delete mode 100644 jQuery/ui-icons_455C7B_256x240.png delete mode 100644 jQuery/ui-icons_DA727E_256x240.png diff --git a/.DS_Store b/.DS_Store index 962609faba0ed3c3435afb29fa25f887d73c63dc..4676cfc5eab9b646a66a9c5ffb1ec58cb0922487 100644 GIT binary patch delta 637 zcmZp1XbF&DU|?W$DortDU{C-uIe-{M3-C-#6q~50$SAWhU^hRb%w!&c+a^Dg3UV@w zOAHKdGBPo46P}rul3(tWUz(Rv91{%EnphN`nNpGwFCZFFlv)PV z8jzTm8kSj{nUtB6SyIUf1RR|40ut5LhDN433dWX3wK@vb=H>=E3MR&8wY386930Y` zrjEY4kp;C~ixw|gx@`H1!$*O>0|G`y2+bf2rD4>u$*mxlM7^eCua#7ZT1kp$OHf{ CjFz$h delta 104 zcmZn(XmOBWU|?W$DortDU;r^WfEYvza8FDWo2aMAD7`UYH$S8FWFCRrlj}sbPJSk+ tvU#WkjaqDkk61e`2vgh=47@dj1wC;HnVg5V&;P5YHpkds+l zVqkESk%^gwm5rT)lM4v=xC8|GVuLgC%Y#c2OG=BK5{sh2yv&r;Bq%!|u_Ob=4$05Y zfwL2n!ZK6K;{`;V^YcpT6EpKti;(ojglFcZS|*XV;u!u69a=<9ffK$OEVn>6H~L=T7d%` z9MYPmj=qrvwOxxAFIl>5`HCaQfZk(ZkY-?H1Tz>IgrPKyIzBm$RbC!T_>=_~<>ln( zr2`c*ZeGAD&$zjnr<<8ef*UB{3W|Zvf*jwOC-aMVPWI>F-~gHriX4W`@jP>w0n%M_ AssI20 delta 109 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{Mvv5r;6q~50$jG%ZU^g=(*Jd7p>5QAxg=H8w vR(LQjX6N7#WCkh&0s(Fy;R@2RvG6kbVXxh*==x88*lB%wYxq=gtvQ diff --git a/jQuery/jquery-1.9.1.js b/jQuery/jquery-1.9.1.js deleted file mode 100755 index e2c203f..0000000 --- a/jQuery/jquery-1.9.1.js +++ /dev/null @@ -1,9597 +0,0 @@ -/*! - * jQuery JavaScript Library v1.9.1 - * http://jquery.com/ - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * - * Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2013-2-4 - */ -(function( window, undefined ) { - -// Can't do this because several apps including ASP.NET trace -// the stack via arguments.caller.callee and Firefox dies if -// you try to trace through "use strict" call chains. (#13335) -// Support: Firefox 18+ -//"use strict"; -var - // The deferred used on DOM ready - readyList, - - // A central reference to the root jQuery(document) - rootjQuery, - - // Support: IE<9 - // For `typeof node.method` instead of `node.method !== undefined` - core_strundefined = typeof undefined, - - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - location = window.location, - - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - - // Map over the $ in case of overwrite - _$ = window.$, - - // [[Class]] -> type pairs - class2type = {}, - - // List of deleted data cache ids, so we can reuse them - core_deletedIds = [], - - core_version = "1.9.1", - - // Save a reference to some core methods - core_concat = core_deletedIds.concat, - core_push = core_deletedIds.push, - core_slice = core_deletedIds.slice, - core_indexOf = core_deletedIds.indexOf, - core_toString = class2type.toString, - core_hasOwn = class2type.hasOwnProperty, - core_trim = core_version.trim, - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context, rootjQuery ); - }, - - // Used for matching numbers - core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, - - // Used for splitting on whitespace - core_rnotwhite = /\S+/g, - - // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, - - // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, - - // JSON RegExp - rvalidchars = /^[\],:{}\s]*$/, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, - rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([\da-z])/gi, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }, - - // The ready event handler - completed = function( event ) { - - // readyState === "complete" is good enough for us to call the dom ready in oldIE - if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { - detach(); - jQuery.ready(); - } - }, - // Clean-up method for dom ready events - detach = function() { - if ( document.addEventListener ) { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); - - } else { - document.detachEvent( "onreadystatechange", completed ); - window.detachEvent( "onload", completed ); - } - }; - -jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used - jquery: core_version, - - constructor: jQuery, - init: function( selector, context, rootjQuery ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - - // scripts is true for back-compat - jQuery.merge( this, jQuery.parseHTML( - match[1], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return rootjQuery.ready( selector ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }, - - // Start with an empty selector - selector: "", - - // The default length of a jQuery object is 0 - length: 0, - - // The number of elements contained in the matched element set - size: function() { - return this.length; - }, - - toArray: function() { - return core_slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num == null ? - - // Return a 'clean' array - this.toArray() : - - // Return just the object - ( num < 0 ? this[ this.length + num ] : this[ num ] ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - ret.context = this.context; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - ready: function( fn ) { - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; - }, - - slice: function() { - return this.pushStack( core_slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: core_push, - sort: [].sort, - splice: [].splice -}; - -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; - -jQuery.extend = jQuery.fn.extend = function() { - var src, copyIsArray, copy, name, options, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( length === i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - noConflict: function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } - - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } - - return jQuery; - }, - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger("ready").off("ready"); - } - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - isWindow: function( obj ) { - return obj != null && obj == obj.window; - }, - - isNumeric: function( obj ) { - return !isNaN( parseFloat(obj) ) && isFinite( obj ); - }, - - type: function( obj ) { - if ( obj == null ) { - return String( obj ); - } - return typeof obj === "object" || typeof obj === "function" ? - class2type[ core_toString.call(obj) ] || "object" : - typeof obj; - }, - - isPlainObject: function( obj ) { - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - try { - // Not own constructor property must be Object - if ( obj.constructor && - !core_hasOwn.call(obj, "constructor") && - !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - } catch ( e ) { - // IE8,9 Will throw exceptions on certain host objects #9897 - return false; - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - - var key; - for ( key in obj ) {} - - return key === undefined || core_hasOwn.call( obj, key ); - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - error: function( msg ) { - throw new Error( msg ); - }, - - // data: string of html - // context (optional): If specified, the fragment will be created in this context, defaults to document - // keepScripts (optional): If true, will include scripts passed in the html string - parseHTML: function( data, context, keepScripts ) { - if ( !data || typeof data !== "string" ) { - return null; - } - if ( typeof context === "boolean" ) { - keepScripts = context; - context = false; - } - context = context || document; - - var parsed = rsingleTag.exec( data ), - scripts = !keepScripts && []; - - // Single tag - if ( parsed ) { - return [ context.createElement( parsed[1] ) ]; - } - - parsed = jQuery.buildFragment( [ data ], context, scripts ); - if ( scripts ) { - jQuery( scripts ).remove(); - } - return jQuery.merge( [], parsed.childNodes ); - }, - - parseJSON: function( data ) { - // Attempt to parse using the native JSON parser first - if ( window.JSON && window.JSON.parse ) { - return window.JSON.parse( data ); - } - - if ( data === null ) { - return data; - } - - if ( typeof data === "string" ) { - - // Make sure leading/trailing whitespace is removed (IE can't handle it) - data = jQuery.trim( data ); - - if ( data ) { - // Make sure the incoming data is actual JSON - // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test( data.replace( rvalidescape, "@" ) - .replace( rvalidtokens, "]" ) - .replace( rvalidbraces, "")) ) { - - return ( new Function( "return " + data ) )(); - } - } - } - - jQuery.error( "Invalid JSON: " + data ); - }, - - // Cross-browser xml parsing - parseXML: function( data ) { - var xml, tmp; - if ( !data || typeof data !== "string" ) { - return null; - } - try { - if ( window.DOMParser ) { // Standard - tmp = new DOMParser(); - xml = tmp.parseFromString( data , "text/xml" ); - } else { // IE - xml = new ActiveXObject( "Microsoft.XMLDOM" ); - xml.async = "false"; - xml.loadXML( data ); - } - } catch( e ) { - xml = undefined; - } - if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; - }, - - noop: function() {}, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && jQuery.trim( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - } )( data ); - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - // args is for internal usage only - each: function( obj, callback, args ) { - var value, - i = 0, - length = obj.length, - isArray = isArraylike( obj ); - - if ( args ) { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } - } - - return obj; - }, - - // Use native String.trim function wherever possible - trim: core_trim && !core_trim.call("\uFEFF\xA0") ? - function( text ) { - return text == null ? - "" : - core_trim.call( text ); - } : - - // Otherwise use our own trimming functionality - function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArraylike( Object(arr) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - core_push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - var len; - - if ( arr ) { - if ( core_indexOf ) { - return core_indexOf.call( arr, elem, i ); - } - - len = arr.length; - i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; - - for ( ; i < len; i++ ) { - // Skip accessing in sparse arrays - if ( i in arr && arr[ i ] === elem ) { - return i; - } - } - } - - return -1; - }, - - merge: function( first, second ) { - var l = second.length, - i = first.length, - j = 0; - - if ( typeof l === "number" ) { - for ( ; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, inv ) { - var retVal, - ret = [], - i = 0, - length = elems.length; - inv = !!inv; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - retVal = !!callback( elems[ i ], i ); - if ( inv !== retVal ) { - ret.push( elems[ i ] ); - } - } - - return ret; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, - i = 0, - length = elems.length, - isArray = isArraylike( elems ), - ret = []; - - // Go through the array, translating each of the items to their - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - } - - // Flatten any nested arrays - return core_concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var args, proxy, tmp; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = core_slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - // Multifunctional method to get and set values of a collection - // The value/s can optionally be executed if it's a function - access: function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - length = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < length; i++ ) { - fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); - } - } - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - length ? fn( elems[0], key ) : emptyGet; - }, - - now: function() { - return ( new Date() ).getTime(); - } -}); - -jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // we once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); - - // Standards-based browsers support DOMContentLoaded - } else if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); - - // If IE event model is used - } else { - // Ensure firing before onload, maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", completed ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", completed ); - - // If IE and not a frame - // continually check to see if the document is ready - var top = false; - - try { - top = window.frameElement == null && document.documentElement; - } catch(e) {} - - if ( top && top.doScroll ) { - (function doScrollCheck() { - if ( !jQuery.isReady ) { - - try { - // Use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - top.doScroll("left"); - } catch(e) { - return setTimeout( doScrollCheck, 50 ); - } - - // detach all dom ready events - detach(); - - // and execute any waiting functions - jQuery.ready(); - } - })(); - } - } - } - return readyList.promise( obj ); -}; - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -function isArraylike( obj ) { - var length = obj.length, - type = jQuery.type( obj ); - - if ( jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.nodeType === 1 && length ) { - return true; - } - - return type === "array" || type !== "function" && - ( length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj ); -} - -// All jQuery objects should point back to these -rootjQuery = jQuery(document); -// String to Object options format cache -var optionsCache = {}; - -// Convert String-formatted options into Object-formatted ones and store in cache -function createOptions( options ) { - var object = optionsCache[ options ] = {}; - jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - }); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - ( optionsCache[ options ] || createOptions( options ) ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // First callback to fire (used internally by add and fireWith) - firingStart, - // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = !options.once && [], - // Fire callbacks - fire = function( data ) { - memory = options.memory && data; - fired = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - firing = true; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { - memory = false; // To prevent further calls using add - break; - } - } - firing = false; - if ( list ) { - if ( stack ) { - if ( stack.length ) { - fire( stack.shift() ); - } - } else if ( memory ) { - list = []; - } else { - self.disable(); - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - // First, we save the current length - var start = list.length; - (function add( args ) { - jQuery.each( args, function( _, arg ) { - var type = jQuery.type( arg ); - if ( type === "function" ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && type !== "string" ) { - // Inspect recursively - add( arg ); - } - }); - })( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away - } else if ( memory ) { - firingStart = start; - fire( memory ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - jQuery.each( arguments, function( _, arg ) { - var index; - while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( firing ) { - if ( index <= firingLength ) { - firingLength--; - } - if ( index <= firingIndex ) { - firingIndex--; - } - } - } - }); - } - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); - }, - // Remove all callbacks from the list - empty: function() { - list = []; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - if ( list && ( !fired || stack ) ) { - if ( firing ) { - stack.push( args ); - } else { - fire( args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; -jQuery.extend({ - - Deferred: function( func ) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], - [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], - [ "notify", "progress", jQuery.Callbacks("memory") ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - return jQuery.Deferred(function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var action = tuple[ 0 ], - fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[1] ](function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .done( newDefer.resolve ) - .fail( newDefer.reject ) - .progress( newDefer.notify ); - } else { - newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); - } - }); - }); - fns = null; - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[1] ] = list.add; - - // Handle state - if ( stateString ) { - list.add(function() { - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[0] ] = function() { - deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[0] + "With" ] = list.fireWith; - }); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ ) { - var i = 0, - resolveValues = core_slice.call( arguments ), - length = resolveValues.length, - - // the count of uncompleted subordinates - remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - - // the master Deferred. If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; - if( values === progressValues ) { - deferred.notifyWith( contexts, values ); - } else if ( !( --remaining ) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - - progressValues, progressContexts, resolveContexts; - - // add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ) - .progress( updateFunc( i, progressContexts, progressValues ) ); - } else { - --remaining; - } - } - } - - // if we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } -}); -jQuery.support = (function() { - - var support, all, a, - input, select, fragment, - opt, eventName, isSupported, i, - div = document.createElement("div"); - - // Setup - div.setAttribute( "className", "t" ); - div.innerHTML = "
      a"; - - // Support tests won't run in some limited or non-browser environments - all = div.getElementsByTagName("*"); - a = div.getElementsByTagName("a")[ 0 ]; - if ( !all || !a || !all.length ) { - return {}; - } - - // First batch of tests - select = document.createElement("select"); - opt = select.appendChild( document.createElement("option") ); - input = div.getElementsByTagName("input")[ 0 ]; - - a.style.cssText = "top:1px;float:left;opacity:.5"; - support = { - // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) - getSetAttribute: div.className !== "t", - - // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: div.firstChild.nodeType === 3, - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - tbody: !div.getElementsByTagName("tbody").length, - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName("link").length, - - // Get the style information from getAttribute - // (IE uses .cssText instead) - style: /top/.test( a.getAttribute("style") ), - - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - hrefNormalized: a.getAttribute("href") === "/a", - - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - opacity: /^0.5/.test( a.style.opacity ), - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - cssFloat: !!a.style.cssFloat, - - // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) - checkOn: !!input.value, - - // Make sure that a selected-by-default option has a working selected property. - // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - optSelected: opt.selected, - - // Tests for enctype support on a form (#6743) - enctype: !!document.createElement("form").enctype, - - // Makes sure cloning an html5 element does not cause problems - // Where outerHTML is undefined, this still works - html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", - - // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode - boxModel: document.compatMode === "CSS1Compat", - - // Will be defined later - deleteExpando: true, - noCloneEvent: true, - inlineBlockNeedsLayout: false, - shrinkWrapBlocks: false, - reliableMarginRight: true, - boxSizingReliable: true, - pixelPosition: false - }; - - // Make sure checked status is properly cloned - input.checked = true; - support.noCloneChecked = input.cloneNode( true ).checked; - - // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as disabled) - select.disabled = true; - support.optDisabled = !opt.disabled; - - // Support: IE<9 - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - - // Check if we can trust getAttribute("value") - input = document.createElement("input"); - input.setAttribute( "value", "" ); - support.input = input.getAttribute( "value" ) === ""; - - // Check if an input maintains its value after becoming a radio - input.value = "t"; - input.setAttribute( "type", "radio" ); - support.radioValue = input.value === "t"; - - // #11217 - WebKit loses check when the name is after the checked attribute - input.setAttribute( "checked", "t" ); - input.setAttribute( "name", "t" ); - - fragment = document.createDocumentFragment(); - fragment.appendChild( input ); - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - support.appendChecked = input.checked; - - // WebKit doesn't clone checked state correctly in fragments - support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE<9 - // Opera does not clone events (and typeof div.attachEvent === undefined). - // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() - if ( div.attachEvent ) { - div.attachEvent( "onclick", function() { - support.noCloneEvent = false; - }); - - div.cloneNode( true ).click(); - } - - // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) - // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP), test/csp.php - for ( i in { submit: true, change: true, focusin: true }) { - div.setAttribute( eventName = "on" + i, "t" ); - - support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; - } - - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - // Run tests that need a body at doc ready - jQuery(function() { - var container, marginDiv, tds, - divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", - body = document.getElementsByTagName("body")[0]; - - if ( !body ) { - // Return for frameset docs that don't have a body - return; - } - - container = document.createElement("div"); - container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; - - body.appendChild( container ).appendChild( div ); - - // Support: IE8 - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - div.innerHTML = "
      t
      "; - tds = div.getElementsByTagName("td"); - tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; - isSupported = ( tds[ 0 ].offsetHeight === 0 ); - - tds[ 0 ].style.display = ""; - tds[ 1 ].style.display = "none"; - - // Support: IE8 - // Check if empty table cells still have offsetWidth/Height - support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - - // Check box-sizing and margin behavior - div.innerHTML = ""; - div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; - support.boxSizing = ( div.offsetWidth === 4 ); - support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); - - // Use window.getComputedStyle because jsdom on node.js will break without it. - if ( window.getComputedStyle ) { - support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; - support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; - - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. (#3333) - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - marginDiv = div.appendChild( document.createElement("div") ); - marginDiv.style.cssText = div.style.cssText = divReset; - marginDiv.style.marginRight = marginDiv.style.width = "0"; - div.style.width = "1px"; - - support.reliableMarginRight = - !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); - } - - if ( typeof div.style.zoom !== core_strundefined ) { - // Support: IE<8 - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - div.innerHTML = ""; - div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; - support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); - - // Support: IE6 - // Check if elements with layout shrink-wrap their children - div.style.display = "block"; - div.innerHTML = "

      "; - div.firstChild.style.width = "5px"; - support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); - - if ( support.inlineBlockNeedsLayout ) { - // Prevent IE 6 from affecting layout for positioned elements #11048 - // Prevent IE from shrinking the body in IE 7 mode #12869 - // Support: IE<8 - body.style.zoom = 1; - } - } - - body.removeChild( container ); - - // Null elements to avoid leaks in IE - container = div = tds = marginDiv = null; - }); - - // Null elements to avoid leaks in IE - all = select = fragment = opt = a = input = null; - - return support; -})(); - -var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, - rmultiDash = /([A-Z])/g; - -function internalData( elem, name, data, pvt /* Internal Use Only */ ){ - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var thisCache, ret, - internalKey = jQuery.expando, - getByName = typeof name === "string", - - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - elem[ internalKey ] = id = core_deletedIds.pop() || jQuery.guid++; - } else { - id = internalKey; - } - } - - if ( !cache[ id ] ) { - cache[ id ] = {}; - - // Avoids exposing jQuery metadata on plain JS objects when the object - // is serialized using JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; - } - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ] = jQuery.extend( cache[ id ], name ); - } else { - cache[ id ].data = jQuery.extend( cache[ id ].data, name ); - } - } - - thisCache = cache[ id ]; - - // jQuery data() is stored in a separate object inside the object's internal data - // cache in order to avoid key collisions between internal data and user-defined - // data. - if ( !pvt ) { - if ( !thisCache.data ) { - thisCache.data = {}; - } - - thisCache = thisCache.data; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // Check for both converted-to-camel and non-converted data property names - // If a data property was specified - if ( getByName ) { - - // First Try to find as-is property data - ret = thisCache[ name ]; - - // Test for null|undefined property data - if ( ret == null ) { - - // Try to find the camelCased property - ret = thisCache[ jQuery.camelCase( name ) ]; - } - } else { - ret = thisCache; - } - - return ret; -} - -function internalRemoveData( elem, name, pvt ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var i, l, thisCache, - isNode = elem.nodeType, - - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - id = isNode ? elem[ jQuery.expando ] : jQuery.expando; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - - thisCache = pvt ? cache[ id ] : cache[ id ].data; - - if ( thisCache ) { - - // Support array or space separated string names for data keys - if ( !jQuery.isArray( name ) ) { - - // try the string as a key before any manipulation - if ( name in thisCache ) { - name = [ name ]; - } else { - - // split the camel cased version by spaces unless a key with the spaces exists - name = jQuery.camelCase( name ); - if ( name in thisCache ) { - name = [ name ]; - } else { - name = name.split(" "); - } - } - } else { - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = name.concat( jQuery.map( name, jQuery.camelCase ) ); - } - - for ( i = 0, l = name.length; i < l; i++ ) { - delete thisCache[ name[i] ]; - } - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( !pvt ) { - delete cache[ id ].data; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject( cache[ id ] ) ) { - return; - } - } - - // Destroy the cache - if ( isNode ) { - jQuery.cleanData( [ elem ], true ); - - // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) - } else if ( jQuery.support.deleteExpando || cache != cache.window ) { - delete cache[ id ]; - - // When all else fails, null - } else { - cache[ id ] = null; - } -} - -jQuery.extend({ - cache: {}, - - // Unique for each copy of jQuery on the page - // Non-digits removed to match rinlinejQuery - expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), - - // The following elements throw uncatchable exceptions if you - // attempt to add expando properties to them. - noData: { - "embed": true, - // Ban all objects except for Flash (which handle expandos) - "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", - "applet": true - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data ) { - return internalData( elem, name, data ); - }, - - removeData: function( elem, name ) { - return internalRemoveData( elem, name ); - }, - - // For internal use only. - _data: function( elem, name, data ) { - return internalData( elem, name, data, true ); - }, - - _removeData: function( elem, name ) { - return internalRemoveData( elem, name, true ); - }, - - // A method for determining if a DOM node can handle the data expando - acceptData: function( elem ) { - // Do not set data on non-element because it will not be cleared (#8335). - if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { - return false; - } - - var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; - - // nodes accept data unless otherwise specified; rejection can be conditional - return !noData || noData !== true && elem.getAttribute("classid") === noData; - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var attrs, name, - elem = this[0], - i = 0, - data = null; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = jQuery.data( elem ); - - if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { - attrs = elem.attributes; - for ( ; i < attrs.length; i++ ) { - name = attrs[i].name; - - if ( !name.indexOf( "data-" ) ) { - name = jQuery.camelCase( name.slice(5) ); - - dataAttr( elem, name, data[ name ] ); - } - } - jQuery._data( elem, "parsedAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - return jQuery.access( this, function( value ) { - - if ( value === undefined ) { - // Try to fetch any internally stored data first - return elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; - } - - this.each(function() { - jQuery.data( this, key, value ); - }); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); - -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - - var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - // Only convert to a number if it doesn't change the string - +data + "" === data ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; -} - -// checks a cache object for emptiness -function isEmptyDataObject( obj ) { - var name; - for ( name in obj ) { - - // if the public data object is empty, the private is still empty - if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { - continue; - } - if ( name !== "toJSON" ) { - return false; - } - } - - return true; -} -jQuery.extend({ - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = jQuery._data( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray(data) ) { - queue = jQuery._data( elem, type, jQuery.makeArray(data) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - hooks.cur = fn; - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // not intended for public consumption - generates a queueHooks object, or returns the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return jQuery._data( elem, key ) || jQuery._data( elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - jQuery._removeData( elem, type + "queue" ); - jQuery._removeData( elem, key ); - }) - }); - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - // ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - // Based off of the plugin by Clint Helfers, with permission. - // http://blindsignals.com/index.php/2009/07/jquery-delay/ - delay: function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = setTimeout( next, time ); - hooks.stop = function() { - clearTimeout( timeout ); - }; - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while( i-- ) { - tmp = jQuery._data( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -}); -var nodeHook, boolHook, - rclass = /[\t\r\n]/g, - rreturn = /\r/g, - rfocusable = /^(?:input|select|textarea|button|object)$/i, - rclickable = /^(?:a|area)$/i, - rboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i, - ruseDefault = /^(?:checked|selected)$/i, - getSetAttribute = jQuery.support.getSetAttribute, - getSetInput = jQuery.support.input; - -jQuery.fn.extend({ - attr: function( name, value ) { - return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each(function() { - jQuery.removeAttr( this, name ); - }); - }, - - prop: function( name, value ) { - return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - name = jQuery.propFix[ name ] || name; - return this.each(function() { - // try/catch handles cases where IE balks (such as removing a property on window) - try { - this[ name ] = undefined; - delete this[ name ]; - } catch( e ) {} - }); - }, - - addClass: function( value ) { - var classes, elem, cur, clazz, j, - i = 0, - len = this.length, - proceed = typeof value === "string" && value; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).addClass( value.call( this, j, this.className ) ); - }); - } - - if ( proceed ) { - // The disjunction here is for better compressibility (see removeClass) - classes = ( value || "" ).match( core_rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; - cur = elem.nodeType === 1 && ( elem.className ? - ( " " + elem.className + " " ).replace( rclass, " " ) : - " " - ); - - if ( cur ) { - j = 0; - while ( (clazz = classes[j++]) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - elem.className = jQuery.trim( cur ); - - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, clazz, j, - i = 0, - len = this.length, - proceed = arguments.length === 0 || typeof value === "string" && value; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).removeClass( value.call( this, j, this.className ) ); - }); - } - if ( proceed ) { - classes = ( value || "" ).match( core_rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( elem.className ? - ( " " + elem.className + " " ).replace( rclass, " " ) : - "" - ); - - if ( cur ) { - j = 0; - while ( (clazz = classes[j++]) ) { - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - elem.className = value ? jQuery.trim( cur ) : ""; - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isBool = typeof stateVal === "boolean"; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( i ) { - jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); - }); - } - - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, - i = 0, - self = jQuery( this ), - state = stateVal, - classNames = value.match( core_rnotwhite ) || []; - - while ( (className = classNames[ i++ ]) ) { - // check each className given, space separated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); - } - - // Toggle whole class name - } else if ( type === core_strundefined || type === "boolean" ) { - if ( this.className ) { - // store className if set - jQuery._data( this, "__className__", this.className ); - } - - // If the element has a class name or if we're passed "false", - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; - } - }); - }, - - hasClass: function( selector ) { - var className = " " + selector + " ", - i = 0, - l = this.length; - for ( ; i < l; i++ ) { - if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { - return true; - } - } - - return false; - }, - - val: function( value ) { - var ret, hooks, isFunction, - elem = this[0]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { - return ret; - } - - ret = elem.value; - - return typeof ret === "string" ? - // handle most common string cases - ret.replace(rreturn, "") : - // handle cases where value is null/undef or number - ret == null ? "" : ret; - } - - return; - } - - isFunction = jQuery.isFunction( value ); - - return this.each(function( i ) { - var val, - self = jQuery(this); - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, self.val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - } else if ( typeof val === "number" ) { - val += ""; - } else if ( jQuery.isArray( val ) ) { - val = jQuery.map(val, function ( value ) { - return value == null ? "" : value + ""; - }); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - }); - } -}); - -jQuery.extend({ - valHooks: { - option: { - get: function( elem ) { - // attributes.value is undefined in Blackberry 4.7 but - // uses .value. See #6932 - var val = elem.attributes.value; - return !val || val.specified ? elem.value : elem.text; - } - }, - select: { - get: function( elem ) { - var value, option, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one" || index < 0, - values = one ? null : [], - max = one ? index + 1 : options.length, - i = index < 0 ? - max : - one ? index : 0; - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // oldIE doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - // Don't return options that are disabled or in a disabled optgroup - ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && - ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var values = jQuery.makeArray( value ); - - jQuery(elem).find("option").each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - - if ( !values.length ) { - elem.selectedIndex = -1; - } - return values; - } - } - }, - - attr: function( elem, name, value ) { - var hooks, notxml, ret, - nType = elem.nodeType; - - // don't get/set attributes on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === core_strundefined ) { - return jQuery.prop( elem, name, value ); - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - // All attributes are lowercase - // Grab necessary hook if one is defined - if ( notxml ) { - name = name.toLowerCase(); - hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); - } - - if ( value !== undefined ) { - - if ( value === null ) { - jQuery.removeAttr( elem, name ); - - } else if ( hooks && notxml && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - elem.setAttribute( name, value + "" ); - return value; - } - - } else if ( hooks && notxml && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - - // In IE9+, Flash objects don't have .getAttribute (#12945) - // Support: IE9+ - if ( typeof elem.getAttribute !== core_strundefined ) { - ret = elem.getAttribute( name ); - } - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? - undefined : - ret; - } - }, - - removeAttr: function( elem, value ) { - var name, propName, - i = 0, - attrNames = value && value.match( core_rnotwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( (name = attrNames[i++]) ) { - propName = jQuery.propFix[ name ] || name; - - // Boolean attributes get special treatment (#10870) - if ( rboolean.test( name ) ) { - // Set corresponding property to false for boolean attributes - // Also clear defaultChecked/defaultSelected (if appropriate) for IE<8 - if ( !getSetAttribute && ruseDefault.test( name ) ) { - elem[ jQuery.camelCase( "default-" + name ) ] = - elem[ propName ] = false; - } else { - elem[ propName ] = false; - } - - // See #9699 for explanation of this approach (setting first, then removal) - } else { - jQuery.attr( elem, name, "" ); - } - - elem.removeAttribute( getSetAttribute ? name : propName ); - } - } - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { - // Setting the type on a radio button after the value resets the value in IE6-9 - // Reset value to default in case type is set after value during creation - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - propFix: { - tabindex: "tabIndex", - readonly: "readOnly", - "for": "htmlFor", - "class": "className", - maxlength: "maxLength", - cellspacing: "cellSpacing", - cellpadding: "cellPadding", - rowspan: "rowSpan", - colspan: "colSpan", - usemap: "useMap", - frameborder: "frameBorder", - contenteditable: "contentEditable" - }, - - prop: function( elem, name, value ) { - var ret, hooks, notxml, - nType = elem.nodeType; - - // don't get/set properties on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - if ( notxml ) { - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - return ( elem[ name ] = value ); - } - - } else { - if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - return elem[ name ]; - } - } - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - var attributeNode = elem.getAttributeNode("tabindex"); - - return attributeNode && attributeNode.specified ? - parseInt( attributeNode.value, 10 ) : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - } - } -}); - -// Hook for boolean attributes -boolHook = { - get: function( elem, name ) { - var - // Use .prop to determine if this attribute is understood as boolean - prop = jQuery.prop( elem, name ), - - // Fetch it accordingly - attr = typeof prop === "boolean" && elem.getAttribute( name ), - detail = typeof prop === "boolean" ? - - getSetInput && getSetAttribute ? - attr != null : - // oldIE fabricates an empty string for missing boolean attributes - // and conflates checked/selected into attroperties - ruseDefault.test( name ) ? - elem[ jQuery.camelCase( "default-" + name ) ] : - !!attr : - - // fetch an attribute node for properties not recognized as boolean - elem.getAttributeNode( name ); - - return detail && detail.value !== false ? - name.toLowerCase() : - undefined; - }, - set: function( elem, value, name ) { - if ( value === false ) { - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { - // IE<8 needs the *property* name - elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); - - // Use defaultChecked and defaultSelected for oldIE - } else { - elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; - } - - return name; - } -}; - -// fix oldIE value attroperty -if ( !getSetInput || !getSetAttribute ) { - jQuery.attrHooks.value = { - get: function( elem, name ) { - var ret = elem.getAttributeNode( name ); - return jQuery.nodeName( elem, "input" ) ? - - // Ignore the value *property* by using defaultValue - elem.defaultValue : - - ret && ret.specified ? ret.value : undefined; - }, - set: function( elem, value, name ) { - if ( jQuery.nodeName( elem, "input" ) ) { - // Does not return so that setAttribute is also used - elem.defaultValue = value; - } else { - // Use nodeHook if defined (#1954); otherwise setAttribute is fine - return nodeHook && nodeHook.set( elem, value, name ); - } - } - }; -} - -// IE6/7 do not support getting/setting some attributes with get/setAttribute -if ( !getSetAttribute ) { - - // Use this for any attribute in IE6/7 - // This fixes almost every IE6/7 issue - nodeHook = jQuery.valHooks.button = { - get: function( elem, name ) { - var ret = elem.getAttributeNode( name ); - return ret && ( name === "id" || name === "name" || name === "coords" ? ret.value !== "" : ret.specified ) ? - ret.value : - undefined; - }, - set: function( elem, value, name ) { - // Set the existing or create a new attribute node - var ret = elem.getAttributeNode( name ); - if ( !ret ) { - elem.setAttributeNode( - (ret = elem.ownerDocument.createAttribute( name )) - ); - } - - ret.value = value += ""; - - // Break association with cloned elements by also using setAttribute (#9646) - return name === "value" || value === elem.getAttribute( name ) ? - value : - undefined; - } - }; - - // Set contenteditable to false on removals(#10429) - // Setting to empty string throws an error as an invalid value - jQuery.attrHooks.contenteditable = { - get: nodeHook.get, - set: function( elem, value, name ) { - nodeHook.set( elem, value === "" ? false : value, name ); - } - }; - - // Set width and height to auto instead of 0 on empty string( Bug #8150 ) - // This is for removals - jQuery.each([ "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - set: function( elem, value ) { - if ( value === "" ) { - elem.setAttribute( name, "auto" ); - return value; - } - } - }); - }); -} - - -// Some attributes require a special call on IE -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !jQuery.support.hrefNormalized ) { - jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - get: function( elem ) { - var ret = elem.getAttribute( name, 2 ); - return ret == null ? undefined : ret; - } - }); - }); - - // href/src property should get the full normalized URL (#10299/#12915) - jQuery.each([ "href", "src" ], function( i, name ) { - jQuery.propHooks[ name ] = { - get: function( elem ) { - return elem.getAttribute( name, 4 ); - } - }; - }); -} - -if ( !jQuery.support.style ) { - jQuery.attrHooks.style = { - get: function( elem ) { - // Return undefined in the case of empty string - // Note: IE uppercases css property names, but if we were to .toLowerCase() - // .cssText, that would destroy case senstitivity in URL's, like in "background" - return elem.style.cssText || undefined; - }, - set: function( elem, value ) { - return ( elem.style.cssText = value + "" ); - } - }; -} - -// Safari mis-reports the default selected property of an option -// Accessing the parent's selectedIndex property fixes it -if ( !jQuery.support.optSelected ) { - jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { - get: function( elem ) { - var parent = elem.parentNode; - - if ( parent ) { - parent.selectedIndex; - - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - return null; - } - }); -} - -// IE6/7 call enctype encoding -if ( !jQuery.support.enctype ) { - jQuery.propFix.enctype = "encoding"; -} - -// Radios and checkboxes getter/setter -if ( !jQuery.support.checkOn ) { - jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - get: function( elem ) { - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - return elem.getAttribute("value") === null ? "on" : elem.value; - } - }; - }); -} -jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { - set: function( elem, value ) { - if ( jQuery.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); - } - } - }); -}); -var rformElems = /^(?:input|select|textarea)$/i, - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - var tmp, events, t, handleObjIn, - special, eventHandle, handleObj, - handlers, type, namespaces, origType, - elemData = jQuery._data( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : - undefined; - }; - // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events - eventHandle.elem = elem; - } - - // Handle multiple events separated by a space - // jQuery(...).bind("mouseover mouseout", fn); - types = ( types || "" ).match( core_rnotwhite ) || [""]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener/attachEvent if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - var j, handleObj, tmp, - origCount, t, events, - special, handlers, type, - namespaces, origType, - elemData = jQuery.hasData( elem ) && jQuery._data( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( core_rnotwhite ) || [""]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - - // removeData also checks for emptiness and clears the expando if empty - // so use it instead of delete - jQuery._removeData( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - var handle, ontype, cur, - bubbleType, special, tmp, i, - eventPath = [ elem || document ], - type = core_hasOwn.call( event, "type" ) ? event.type : event, - namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - event.isTrigger = true; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { - event.preventDefault(); - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && - !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction() check here because IE6/7 fails that test. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - try { - elem[ type ](); - } catch ( e ) { - // IE<9 dies on focus/blur to hidden element (#1486,#12518) - // only reproducible on winXP IE8 native, not IE9 in IE8 mode - } - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, ret, handleObj, matched, j, - handlerQueue = [], - args = core_slice.call( arguments ), - handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var sel, handleObj, matches, i, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - for ( ; cur != this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, handlers: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); - } - - return handlerQueue; - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: IE<9 - // Fix target property (#1925) - if ( !event.target ) { - event.target = originalEvent.srcElement || document; - } - - // Support: Chrome 23+, Safari? - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // Support: IE<9 - // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) - event.metaKey = !!event.metaKey; - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var body, eventDoc, doc, - button = original.button, - fromElement = original.fromElement; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && fromElement ) { - event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { - this.click(); - return false; - } - } - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== document.activeElement && this.focus ) { - try { - this.focus(); - return false; - } catch ( e ) { - // Support: IE<9 - // If we error on focus to hidden element (#1486, #12518), - // let .trigger() run the handlers - } - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === document.activeElement && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - - beforeunload: { - postDispatch: function( event ) { - - // Even when returnValue equals to undefined Firefox will still show alert - if ( event.result !== undefined ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - var name = "on" + type; - - if ( elem.detachEvent ) { - - // #8545, #7054, preventing memory leaks for custom events in IE6-8 - // detachEvent needed property on element, by name of that event, to properly expose it to GC - if ( typeof elem[ name ] === core_strundefined ) { - elem[ name ] = null; - } - - elem.detachEvent( name, handle ); - } - }; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || - src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - if ( !e ) { - return; - } - - // If preventDefault exists, run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // Support: IE - // Otherwise set the returnValue property of the original event to false - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - if ( !e ) { - return; - } - // If stopPropagation exists, run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - - // Support: IE - // Set the cancelBubble property of the original event to true - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - } -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // 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 && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// IE submit delegation -if ( !jQuery.support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Lazy-add a submit handler when a descendant form may potentially be submitted - jQuery.event.add( this, "click._submit keypress._submit", function( e ) { - // Node name check avoids a VML-related crash in IE (#9807) - var elem = e.target, - form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; - if ( form && !jQuery._data( form, "submitBubbles" ) ) { - jQuery.event.add( form, "submit._submit", function( event ) { - event._submit_bubble = true; - }); - jQuery._data( form, "submitBubbles", true ); - } - }); - // return undefined since we don't need an event listener - }, - - postDispatch: function( event ) { - // If form was submitted by the user, bubble the event up the tree - if ( event._submit_bubble ) { - delete event._submit_bubble; - if ( this.parentNode && !event.isTrigger ) { - jQuery.event.simulate( "submit", this.parentNode, event, true ); - } - } - }, - - teardown: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Remove delegated handlers; cleanData eventually reaps submit handlers attached above - jQuery.event.remove( this, "._submit" ); - } - }; -} - -// IE change delegation and checkbox/radio fix -if ( !jQuery.support.changeBubbles ) { - - jQuery.event.special.change = { - - setup: function() { - - if ( rformElems.test( this.nodeName ) ) { - // IE doesn't fire change on a check/radio until blur; trigger it on click - // after a propertychange. Eat the blur-change in special.change.handle. - // This still fires onchange a second time for check/radio after blur. - if ( this.type === "checkbox" || this.type === "radio" ) { - jQuery.event.add( this, "propertychange._change", function( event ) { - if ( event.originalEvent.propertyName === "checked" ) { - this._just_changed = true; - } - }); - jQuery.event.add( this, "click._change", function( event ) { - if ( this._just_changed && !event.isTrigger ) { - this._just_changed = false; - } - // Allow triggered, simulated change events (#11500) - jQuery.event.simulate( "change", this, event, true ); - }); - } - return false; - } - // Delegated event; lazy-add a change handler on descendant inputs - jQuery.event.add( this, "beforeactivate._change", function( e ) { - var elem = e.target; - - if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { - jQuery.event.add( elem, "change._change", function( event ) { - if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { - jQuery.event.simulate( "change", this.parentNode, event, true ); - } - }); - jQuery._data( elem, "changeBubbles", true ); - } - }); - }, - - handle: function( event ) { - var elem = event.target; - - // Swallow native change events from checkbox/radio, we already triggered them above - if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { - return event.handleObj.handler.apply( this, arguments ); - } - }, - - teardown: function() { - jQuery.event.remove( this, "._change" ); - - return !rformElems.test( this.nodeName ); - } - }; -} - -// Create "bubbling" focus and blur events -if ( !jQuery.support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler while someone wants focusin/focusout - var attaches = 0, - handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - if ( attaches++ === 0 ) { - document.addEventListener( orig, handler, true ); - } - }, - teardown: function() { - if ( --attaches === 0 ) { - document.removeEventListener( orig, handler, true ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var type, origFn; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - bind: function( types, data, fn ) { - return this.on( types, null, data, fn ); - }, - unbind: function( types, fn ) { - return this.off( types, null, fn ); - }, - - delegate: function( selector, types, data, fn ) { - return this.on( types, selector, data, fn ); - }, - undelegate: function( selector, types, fn ) { - // ( namespace ) or ( selector, types [, fn] ) - return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -}); -/*! - * Sizzle CSS Selector Engine - * Copyright 2012 jQuery Foundation and other contributors - * Released under the MIT license - * http://sizzlejs.com/ - */ -(function( window, undefined ) { - -var i, - cachedruns, - Expr, - getText, - isXML, - compile, - hasDuplicate, - outermostContext, - - // Local document vars - setDocument, - document, - docElem, - documentIsXML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - sortOrder, - - // Instance-specific data - expando = "sizzle" + -(new Date()), - preferredDoc = window.document, - support = {}, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - - // General-purpose constants - strundefined = typeof undefined, - MAX_NEGATIVE = 1 << 31, - - // Array methods - arr = [], - pop = arr.pop, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { - var i = 0, - len = this.length; - for ( ; i < len; i++ ) { - if ( this[i] === elem ) { - return i; - } - } - return -1; - }, - - - // Regular expressions - - // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/css3-syntax/#characters - characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - - // Loosely modeled on CSS identifier characters - // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors - // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = characterEncoding.replace( "w", "w#" ), - - // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors - operators = "([*^$|!~]?=)", - attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + - "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", - - // Prefer arguments quoted, - // then not containing pseudos/brackets, - // then attribute selectors/non-parenthetical expressions, - // then anything else - // These preferences are here to reduce the number of selectors - // needing tokenize in the PSEUDO preFilter - pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + characterEncoding + ")" ), - "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), - "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), - "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rsibling = /[\x20\t\r\n\f]*[+~]/, - - rnative = /^[^{]+\{\s*\[native code/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rescape = /'|\\/g, - rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, - - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, - funescape = function( _, escaped ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - return high !== high ? - escaped : - // BMP codepoint - high < 0 ? - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }; - -// Use a stripped-down slice if we can't use a native one -try { - slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType; -} catch ( e ) { - slice = function( i ) { - var elem, - results = []; - while ( (elem = this[i++]) ) { - results.push( elem ); - } - return results; - }; -} - -/** - * For feature detection - * @param {Function} fn The function to test for native support - */ -function isNative( fn ) { - return rnative.test( fn + "" ); -} - -/** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var cache, - keys = []; - - return (cache = function( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key += " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key ] = value); - }); -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ -function assert( fn ) { - var div = document.createElement("div"); - - try { - return fn( div ); - } catch (e) { - return false; - } finally { - // release memory in IE - div = null; - } -} - -function Sizzle( selector, context, results, seed ) { - var match, elem, m, nodeType, - // QSA vars - i, groups, old, nid, newContext, newSelector; - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - - context = context || document; - results = results || []; - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; - } - - if ( !documentIsXML && !seed ) { - - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { - // Speed-up: Sizzle("#ID") - if ( (m = match[1]) ) { - if ( nodeType === 9 ) { - elem = context.getElementById( m ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE, Opera, and Webkit return items - // by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - } else { - // Context is not a document - if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && - contains( context, elem ) && elem.id === m ) { - results.push( elem ); - return results; - } - } - - // Speed-up: Sizzle("TAG") - } else if ( match[2] ) { - push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); - return results; - - // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getByClassName && context.getElementsByClassName ) { - push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); - return results; - } - } - - // QSA path - if ( support.qsa && !rbuggyQSA.test(selector) ) { - old = true; - nid = expando; - newContext = context; - newSelector = nodeType === 9 && selector; - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - groups = tokenize( selector ); - - if ( (old = context.getAttribute("id")) ) { - nid = old.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", nid ); - } - nid = "[id='" + nid + "'] "; - - i = groups.length; - while ( i-- ) { - groups[i] = nid + toSelector( groups[i] ); - } - newContext = rsibling.test( selector ) && context.parentNode || context; - newSelector = groups.join(","); - } - - if ( newSelector ) { - try { - push.apply( results, slice.call( newContext.querySelectorAll( - newSelector - ), 0 ) ); - return results; - } catch(qsaError) { - } finally { - if ( !old ) { - context.removeAttribute("id"); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Detect xml - * @param {Element|Object} elem An element or a document - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var doc = node ? node.ownerDocument || node : preferredDoc; - - // If no document and documentElement is available, return - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Set our document - document = doc; - docElem = doc.documentElement; - - // Support tests - documentIsXML = isXML( doc ); - - // Check if getElementsByTagName("*") returns only elements - support.tagNameNoComments = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Check if attributes should be retrieved by attribute nodes - support.attributes = assert(function( div ) { - div.innerHTML = ""; - var type = typeof div.lastChild.getAttribute("multiple"); - // IE8 returns a string for some attributes even when not present - return type !== "boolean" && type !== "string"; - }); - - // Check if getElementsByClassName can be trusted - support.getByClassName = assert(function( div ) { - // Opera can't find a second classname (in 9.6) - div.innerHTML = ""; - if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { - return false; - } - - // Safari 3.2 caches class attributes and doesn't catch changes - div.lastChild.className = "e"; - return div.getElementsByClassName("e").length === 2; - }); - - // Check if getElementById returns elements by name - // Check if getElementsByName privileges form controls or returns elements by ID - support.getByName = assert(function( div ) { - // Inject content - div.id = expando + 0; - div.innerHTML = "
      "; - docElem.insertBefore( div, docElem.firstChild ); - - // Test - var pass = doc.getElementsByName && - // buggy browsers will return fewer than the correct 2 - doc.getElementsByName( expando ).length === 2 + - // buggy browsers will return more than the correct 0 - doc.getElementsByName( expando + 0 ).length; - support.getIdNotName = !doc.getElementById( expando ); - - // Cleanup - docElem.removeChild( div ); - - return pass; - }); - - // IE6/7 return modified attributes - Expr.attrHandle = assert(function( div ) { - div.innerHTML = ""; - return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && - div.firstChild.getAttribute("href") === "#"; - }) ? - {} : - { - "href": function( elem ) { - return elem.getAttribute( "href", 2 ); - }, - "type": function( elem ) { - return elem.getAttribute("type"); - } - }; - - // ID find and filter - if ( support.getIdNotName ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && !documentIsXML ) { - var m = context.getElementById( id ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && !documentIsXML ) { - var m = context.getElementById( id ); - - return m ? - m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? - [m] : - undefined : - []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.tagNameNoComments ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { - return context.getElementsByTagName( tag ); - } - } : - function( tag, context ) { - var elem, - tmp = [], - i = 0, - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Name - Expr.find["NAME"] = support.getByName && function( tag, context ) { - if ( typeof context.getElementsByName !== strundefined ) { - return context.getElementsByName( name ); - } - }; - - // Class - Expr.find["CLASS"] = support.getByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && !documentIsXML ) { - return context.getElementsByClassName( className ); - } - }; - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21), - // no need to also add to buggyMatches since matches checks buggyQSA - // A support test would require too much code (would include document ready) - rbuggyQSA = [ ":focus" ]; - - if ( (support.qsa = isNative(doc.querySelectorAll)) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explictly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - div.innerHTML = ""; - - // IE8 - Some boolean attributes are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - }); - - assert(function( div ) { - - // Opera 10-12/IE8 - ^= $= *= and empty values - // Should not select anything - div.innerHTML = ""; - if ( div.querySelectorAll("[i^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector || - docElem.mozMatchesSelector || - docElem.webkitMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = new RegExp( rbuggyMatches.join("|") ); - - // Element contains another - // Purposefully does not implement inclusive descendent - // As in, an element does not contain itself - contains = isNative(docElem.contains) || docElem.compareDocumentPosition ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - // Document order sorting - sortOrder = docElem.compareDocumentPosition ? - function( a, b ) { - var compare; - - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - if ( (compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b )) ) { - if ( compare & 1 || a.parentNode && a.parentNode.nodeType === 11 ) { - if ( a === doc || contains( preferredDoc, a ) ) { - return -1; - } - if ( b === doc || contains( preferredDoc, b ) ) { - return 1; - } - return 0; - } - return compare & 4 ? -1 : 1; - } - - return a.compareDocumentPosition ? -1 : 1; - } : - function( a, b ) { - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - - // Parentless nodes are either documents or disconnected - } else if ( !aup || !bup ) { - return a === doc ? -1 : - b === doc ? 1 : - aup ? -1 : - bup ? 1 : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - // Always assume the presence of duplicates if sort doesn't - // pass them to our comparison function (as in Google Chrome). - hasDuplicate = false; - [0, 0].sort( sortOrder ); - support.detectDuplicates = hasDuplicate; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - // rbuggyQSA always contains :focus, so no need for an existence check - if ( support.matchesSelector && !documentIsXML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) { - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch(e) {} - } - - return Sizzle( expr, document, null, [elem] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - var val; - - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - if ( !documentIsXML ) { - name = name.toLowerCase(); - } - if ( (val = Expr.attrHandle[ name ]) ) { - return val( elem ); - } - if ( documentIsXML || support.attributes ) { - return elem.getAttribute( name ); - } - return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ? - name : - val && val.specified ? val.value : null; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -// Document sorting and removing duplicates -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - i = 1, - j = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - results.sort( sortOrder ); - - if ( hasDuplicate ) { - for ( ; (elem = results[i]); i++ ) { - if ( elem === results[ i - 1 ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - return results; -}; - -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -// Returns a function to use in pseudos for input types -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -// Returns a function to use in pseudos for buttons -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -// Returns a function to use in pseudos for positionals -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - for ( ; (node = elem[i]); i++ ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (see #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[5] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[4] ) { - match[2] = match[4]; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeName ) { - if ( nodeName === "*" ) { - return function() { return true; }; - } - - nodeName = nodeName.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, outerCache, node, diff, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - outerCache = parent[ expando ] || (parent[ expando ] = {}); - cache = outerCache[ type ] || []; - nodeIndex = cache[0] === dirruns && cache[1]; - diff = cache[0] === dirruns && cache[2]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - outerCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - // Use previously-cached element index if available - } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { - diff = cache[1]; - - // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) - } else { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { - // Cache the index of each encountered element - if ( useCache ) { - (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifider - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsXML ? - elem.getAttribute("xml:lang") || elem.getAttribute("lang") : - elem.lang) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), - // not comment, processing instructions, or others - // Thanks to Diego Perini for the nodeName shortcut - // Greater than "@" means alpha characters (specifically not starting with "#" or "?") - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) - // use getAttribute instead to test this case - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -function tokenize( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( tokens = [] ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push( { - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - } ); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push( { - value: matched, - type: type, - matches: match - } ); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -} - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var data, cache, outerCache, - dirkey = dirruns + " " + doneName; - - // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { - if ( (data = cache[1]) === true || data === cachedruns ) { - return data === true; - } - } else { - cache = outerCache[ dir ] = [ dirkey ]; - cache[1] = matcher( elem, context, xml ) || cachedruns; - if ( cache[1] === true ) { - return true; - } - } - } - } - } - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - // A counter to specify which element is currently being matched - var matcherCachedRuns = 0, - bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, expandContext ) { - var elem, j, matcher, - setMatched = [], - matchedCount = 0, - i = "0", - unmatched = seed && [], - outermost = expandContext != null, - contextBackup = outermostContext, - // We must always have either seed elements or context - elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); - - if ( outermost ) { - outermostContext = context !== document && context; - cachedruns = matcherCachedRuns; - } - - // Add elements passing elementMatchers directly to results - // Keep `i` a string if there are no elements so `matchedCount` will be "00" below - for ( ; (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - cachedruns = ++matcherCachedRuns; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // Apply set filters to unmatched elements - matchedCount += i; - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !group ) { - group = tokenize( selector ); - } - i = group.length; - while ( i-- ) { - cached = matcherFromTokens( group[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - } - return cached; -}; - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function select( selector, context, results, seed ) { - var i, tokens, token, type, find, - match = tokenize( selector ); - - if ( !seed ) { - // Try to minimize operations if there is only one group - if ( match.length === 1 ) { - - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && !documentIsXML && - Expr.relative[ tokens[1].type ] ) { - - context = Expr.find["ID"]( token.matches[0].replace( runescape, funescape ), context )[0]; - if ( !context ) { - return results; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && context.parentNode || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, slice.call( seed, 0 ) ); - return results; - } - - break; - } - } - } - } - } - - // Compile and execute a filtering function - // Provide `match` to avoid retokenization if we modified the selector above - compile( selector, match )( - seed, - context, - documentIsXML, - results, - rsibling.test( selector ) - ); - return results; -} - -// Deprecated -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Easy API for creating new setFilters -function setFilters() {} -Expr.filters = setFilters.prototype = Expr.pseudos; -Expr.setFilters = new setFilters(); - -// Initialize with the default document -setDocument(); - -// Override sizzle attribute retrieval -Sizzle.attr = jQuery.attr; -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.pseudos; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - -})( window ); -var runtil = /Until$/, - rparentsprev = /^(?:parents|prev(?:Until|All))/, - isSimple = /^.[^:#\[\.,]*$/, - rneedsContext = jQuery.expr.match.needsContext, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend({ - find: function( selector ) { - var i, ret, self, - len = this.length; - - if ( typeof selector !== "string" ) { - self = this; - return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }) ); - } - - ret = []; - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, this[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = ( this.selector ? this.selector + " " : "" ) + selector; - return ret; - }, - - has: function( target ) { - var i, - targets = jQuery( target, this ), - len = targets.length; - - return this.filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - not: function( selector ) { - return this.pushStack( winnow(this, selector, false) ); - }, - - filter: function( selector ) { - return this.pushStack( winnow(this, selector, true) ); - }, - - is: function( selector ) { - return !!selector && ( - typeof selector === "string" ? - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - rneedsContext.test( selector ) ? - jQuery( selector, this.context ).index( this[0] ) >= 0 : - jQuery.filter( selector, this ).length > 0 : - this.filter( selector ).length > 0 ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - ret = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - cur = this[i]; - - while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { - if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { - ret.push( cur ); - break; - } - cur = cur.parentNode; - } - } - - return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; - } - - // index in selector - if ( typeof elem === "string" ) { - return jQuery.inArray( this[0], jQuery( elem ) ); - } - - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context ) : - jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), - all = jQuery.merge( this.get(), set ); - - return this.pushStack( jQuery.unique(all) ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter(selector) - ); - } -}); - -jQuery.fn.andSelf = jQuery.fn.addBack; - -function sibling( cur, dir ) { - do { - cur = cur[ dir ]; - } while ( cur && cur.nodeType !== 1 ); - - return cur; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ); - - if ( !runtil.test( name ) ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; - - if ( this.length > 1 && rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - - return this.pushStack( ret ); - }; -}); - -jQuery.extend({ - filter: function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 ? - jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : - jQuery.find.matches(expr, elems); - }, - - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, keep ) { - - // Can't pass null or undefined to indexOf in Firefox 4 - // Set to 0 to skip string check - qualifier = qualifier || 0; - - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - var retVal = !!qualifier.call( elem, i, elem ); - return retVal === keep; - }); - - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem ) { - return ( elem === qualifier ) === keep; - }); - - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); - - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } - - return jQuery.grep(elements, function( elem ) { - return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; - }); -} -function createSafeFragment( document ) { - var list = nodeNames.split( "|" ), - safeFrag = document.createDocumentFragment(); - - if ( safeFrag.createElement ) { - while ( list.length ) { - safeFrag.createElement( - list.pop() - ); - } - } - return safeFrag; -} - -var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + - "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", - rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, - rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rtbody = /\s*$/g, - - // We have to close these tags to support XHTML (#13200) - wrapMap = { - option: [ 1, "" ], - legend: [ 1, "
      ", "
      " ], - area: [ 1, "", "" ], - param: [ 1, "", "" ], - thead: [ 1, "", "
      " ], - tr: [ 2, "", "
      " ], - col: [ 2, "", "
      " ], - td: [ 3, "", "
      " ], - - // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, - // unless wrapped in a div with non-breaking characters in front of it. - _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
      ", "
      " ] - }, - safeFragment = createSafeFragment( document ), - fragmentDiv = safeFragment.appendChild( document.createElement("div") ); - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -jQuery.fn.extend({ - text: function( value ) { - return jQuery.access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); - }, null, value, arguments.length ); - }, - - wrapAll: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapAll( html.call(this, i) ); - }); - } - - if ( this[0] ) { - // The elements to wrap the target around - var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); - - if ( this[0].parentNode ) { - wrap.insertBefore( this[0] ); - } - - wrap.map(function() { - var elem = this; - - while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { - elem = elem.firstChild; - } - - return elem; - }).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapInner( html.call(this, i) ); - }); - } - - return this.each(function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - }); - }, - - wrap: function( html ) { - var isFunction = jQuery.isFunction( html ); - - return this.each(function(i) { - jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); - }); - }, - - unwrap: function() { - return this.parent().each(function() { - if ( !jQuery.nodeName( this, "body" ) ) { - jQuery( this ).replaceWith( this.childNodes ); - } - }).end(); - }, - - append: function() { - return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.insertBefore( elem, this.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, false, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, false, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - // keepData is for internal use only--do not document - remove: function( selector, keepData ) { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - if ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) { - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - } - - // Remove any remaining nodes - while ( elem.firstChild ) { - elem.removeChild( elem.firstChild ); - } - - // If this is a select, ensure that it displays empty (#12336) - // Support: IE<9 - if ( elem.options && jQuery.nodeName( elem, "select" ) ) { - elem.options.length = 0; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function () { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return jQuery.access( this, function( value ) { - var elem = this[0] || {}, - i = 0, - l = this.length; - - if ( value === undefined ) { - return elem.nodeType === 1 ? - elem.innerHTML.replace( rinlinejQuery, "" ) : - undefined; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && - ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && - !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1>" ); - - try { - for (; i < l; i++ ) { - // Remove element nodes and prevent memory leaks - elem = this[i] || {}; - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch(e) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function( value ) { - var isFunc = jQuery.isFunction( value ); - - // Make sure that the elements are removed from the DOM before they are inserted - // this can help fix replacing a parent with child elements - if ( !isFunc && typeof value !== "string" ) { - value = jQuery( value ).not( this ).detach(); - } - - return this.domManip( [ value ], true, function( elem ) { - var next = this.nextSibling, - parent = this.parentNode; - - if ( parent ) { - jQuery( this ).remove(); - parent.insertBefore( elem, next ); - } - }); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, table, callback ) { - - // Flatten any nested arrays - args = core_concat.apply( [], args ); - - var first, node, hasScripts, - scripts, doc, fragment, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[0], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[0] = value.call( this, index, table ? self.html() : undefined ); - } - self.domManip( args, table, callback ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - table = table && jQuery.nodeName( first, "tr" ); - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( - table && jQuery.nodeName( this[i], "table" ) ? - findOrAppend( this[i], "tbody" ) : - this[i], - node, - i - ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Hope ajax is available... - jQuery.ajax({ - url: node.src, - type: "GET", - dataType: "script", - async: false, - global: false, - "throws": true - }); - } else { - jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); - } - } - } - } - - // Fix #11809: Avoid leaking memory - fragment = first = null; - } - } - - return this; - } -}); - -function findOrAppend( elem, tag ) { - return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - var attr = elem.getAttributeNode("type"); - elem.type = ( attr && attr.specified ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - if ( match ) { - elem.type = match[1]; - } else { - elem.removeAttribute("type"); - } - return elem; -} - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var elem, - i = 0; - for ( ; (elem = elems[i]) != null; i++ ) { - jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); - } -} - -function cloneCopyEvent( src, dest ) { - - if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { - return; - } - - var type, i, l, - oldData = jQuery._data( src ), - curData = jQuery._data( dest, oldData ), - events = oldData.events; - - if ( events ) { - delete curData.handle; - curData.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - - // make the cloned public data object a copy from the original - if ( curData.data ) { - curData.data = jQuery.extend( {}, curData.data ); - } -} - -function fixCloneNodeIssues( src, dest ) { - var nodeName, e, data; - - // We do not need to do anything for non-Elements - if ( dest.nodeType !== 1 ) { - return; - } - - nodeName = dest.nodeName.toLowerCase(); - - // IE6-8 copies events bound via attachEvent when using cloneNode. - if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { - data = jQuery._data( dest ); - - for ( e in data.events ) { - jQuery.removeEvent( dest, e, data.handle ); - } - - // Event data gets referenced instead of copied if the expando gets copied too - dest.removeAttribute( jQuery.expando ); - } - - // IE blanks contents when cloning scripts, and tries to evaluate newly-set text - if ( nodeName === "script" && dest.text !== src.text ) { - disableScript( dest ).text = src.text; - restoreScript( dest ); - - // IE6-10 improperly clones children of object elements using classid. - // IE10 throws NoModificationAllowedError if parent is null, #12132. - } else if ( nodeName === "object" ) { - if ( dest.parentNode ) { - dest.outerHTML = src.outerHTML; - } - - // This path appears unavoidable for IE9. When cloning an object - // element in IE9, the outerHTML strategy above is not sufficient. - // If the src has innerHTML and the destination does not, - // copy the src.innerHTML into the dest.innerHTML. #10324 - if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { - dest.innerHTML = src.innerHTML; - } - - } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { - // IE6-8 fails to persist the checked state of a cloned checkbox - // or radio button. Worse, IE6-7 fail to give the cloned element - // a checked appearance if the defaultChecked value isn't also set - - dest.defaultChecked = dest.checked = src.checked; - - // IE6-7 get confused and end up setting the value of a cloned - // checkbox/radio button to an empty string instead of "on" - if ( dest.value !== src.value ) { - dest.value = src.value; - } - - // IE6-8 fails to return the selected option to the default selected - // state when cloning options - } else if ( nodeName === "option" ) { - dest.defaultSelected = dest.selected = src.defaultSelected; - - // IE6-8 fails to set the defaultValue to the correct value when - // cloning other types of input fields - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - i = 0, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone(true); - jQuery( insert[i] )[ original ]( elems ); - - // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() - core_push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -}); - -function getAll( context, tag ) { - var elems, elem, - i = 0, - found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : - typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : - undefined; - - if ( !found ) { - for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { - if ( !tag || jQuery.nodeName( elem, tag ) ) { - found.push( elem ); - } else { - jQuery.merge( found, getAll( elem, tag ) ); - } - } - } - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], found ) : - found; -} - -// Used in buildFragment, fixes the defaultChecked property -function fixDefaultChecked( elem ) { - if ( manipulation_rcheckableType.test( elem.type ) ) { - elem.defaultChecked = elem.checked; - } -} - -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var destElements, node, clone, i, srcElements, - inPage = jQuery.contains( elem.ownerDocument, elem ); - - if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { - clone = elem.cloneNode( true ); - - // IE<=8 does not properly clone detached, unknown element nodes - } else { - fragmentDiv.innerHTML = elem.outerHTML; - fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); - } - - if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && - (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - // Fix all IE cloning issues - for ( i = 0; (node = srcElements[i]) != null; ++i ) { - // Ensure that the destination node is not null; Fixes #9587 - if ( destElements[i] ) { - fixCloneNodeIssues( node, destElements[i] ); - } - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0; (node = srcElements[i]) != null; i++ ) { - cloneCopyEvent( node, destElements[i] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - destElements = srcElements = node = null; - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var j, elem, contains, - tmp, tag, tbody, wrap, - l = elems.length, - - // Ensure a safe fragment - safe = createSafeFragment( context ), - - nodes = [], - i = 0; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || safe.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - - tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; - - // Descend through wrappers to the right content - j = wrap[0]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Manually add leading whitespace removed by IE - if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { - nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); - } - - // Remove IE's autoinserted from table fragments - if ( !jQuery.support.tbody ) { - - // String was a , *may* have spurious - elem = tag === "table" && !rtbody.test( elem ) ? - tmp.firstChild : - - // String was a bare or - wrap[1] === "
      " && !rtbody.test( elem ) ? - tmp : - 0; - - j = elem && elem.childNodes.length; - while ( j-- ) { - if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { - elem.removeChild( tbody ); - } - } - } - - jQuery.merge( nodes, tmp.childNodes ); - - // Fix #12392 for WebKit and IE > 9 - tmp.textContent = ""; - - // Fix #12392 for oldIE - while ( tmp.firstChild ) { - tmp.removeChild( tmp.firstChild ); - } - - // Remember the top-level container for proper cleanup - tmp = safe.lastChild; - } - } - } - - // Fix #11356: Clear elements from fragment - if ( tmp ) { - safe.removeChild( tmp ); - } - - // Reset defaultChecked for any radios and checkboxes - // about to be appended to the DOM in IE 6/7 (#8060) - if ( !jQuery.support.appendChecked ) { - jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); - } - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( safe.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - tmp = null; - - return safe; - }, - - cleanData: function( elems, /* internal */ acceptData ) { - var elem, type, id, data, - i = 0, - internalKey = jQuery.expando, - cache = jQuery.cache, - deleteExpando = jQuery.support.deleteExpando, - special = jQuery.event.special; - - for ( ; (elem = elems[i]) != null; i++ ) { - - if ( acceptData || jQuery.acceptData( elem ) ) { - - id = elem[ internalKey ]; - data = id && cache[ id ]; - - if ( data ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Remove cache only if it was not already removed by jQuery.event.remove - if ( cache[ id ] ) { - - delete cache[ id ]; - - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( deleteExpando ) { - delete elem[ internalKey ]; - - } else if ( typeof elem.removeAttribute !== core_strundefined ) { - elem.removeAttribute( internalKey ); - - } else { - elem[ internalKey ] = null; - } - - core_deletedIds.push( id ); - } - } - } - } - } -}); -var iframe, getStyles, curCSS, - ralpha = /alpha\([^)]*\)/i, - ropacity = /opacity\s*=\s*([^)]*)/, - rposition = /^(top|right|bottom|left)$/, - // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" - // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rmargin = /^margin/, - rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), - rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), - rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), - elemdisplay = { BODY: "block" }, - - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: 0, - fontWeight: 400 - }, - - cssExpand = [ "Top", "Right", "Bottom", "Left" ], - cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; - -// return a css property mapped to a potentially vendor prefixed property -function vendorPropName( style, name ) { - - // shortcut for names that are not vendor prefixed - if ( name in style ) { - return name; - } - - // check for vendor prefixed names - var capName = name.charAt(0).toUpperCase() + name.slice(1), - origName = name, - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in style ) { - return name; - } - } - - return origName; -} - -function isHidden( elem, el ) { - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); -} - -function showHide( elements, show ) { - var display, elem, hidden, - values = [], - index = 0, - length = elements.length; - - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - values[ index ] = jQuery._data( elem, "olddisplay" ); - display = elem.style.display; - if ( show ) { - // Reset the inline display of this element to learn if it is - // being hidden by cascaded rules or not - if ( !values[ index ] && display === "none" ) { - elem.style.display = ""; - } - - // Set elements which have been overridden with display: none - // in a stylesheet to whatever the default browser style is - // for such an element - if ( elem.style.display === "" && isHidden( elem ) ) { - values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); - } - } else { - - if ( !values[ index ] ) { - hidden = isHidden( elem ); - - if ( display && display !== "none" || !hidden ) { - jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); - } - } - } - } - - // Set the display of most of the elements in a second loop - // to avoid the constant reflow - for ( index = 0; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - if ( !show || elem.style.display === "none" || elem.style.display === "" ) { - elem.style.display = show ? values[ index ] || "" : "none"; - } - } - - return elements; -} - -jQuery.fn.extend({ - css: function( name, value ) { - return jQuery.access( this, function( elem, name, value ) { - var len, styles, - map = {}, - i = 0; - - if ( jQuery.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - }, - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - var bool = typeof state === "boolean"; - - return this.each(function() { - if ( bool ? state : isHidden( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - }); - } -}); - -jQuery.extend({ - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Exclude the following css properties to add px - cssNumber: { - "columnCount": true, - "fillOpacity": true, - "fontWeight": true, - "lineHeight": true, - "opacity": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: { - // normalize float css property - "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" - }, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = jQuery.camelCase( name ), - style = elem.style; - - name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); - - // gets hook for the prefixed version - // followed by the unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // convert relative number strings (+= or -=) to relative numbers. #7345 - if ( type === "string" && (ret = rrelNum.exec( value )) ) { - value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); - // Fixes bug #9237 - type = "number"; - } - - // Make sure that NaN and null values aren't set. See: #7116 - if ( value == null || type === "number" && isNaN( value ) ) { - return; - } - - // If a number was passed in, add 'px' to the (except for certain CSS properties) - if ( type === "number" && !jQuery.cssNumber[ origName ] ) { - value += "px"; - } - - // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, - // but it would mean to define eight (for every problematic property) identical functions - if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { - - // Wrapped to prevent IE from throwing errors when 'invalid' values are provided - // Fixes bug #5509 - try { - style[ name ] = value; - } catch(e) {} - } - - } else { - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var num, val, hooks, - origName = jQuery.camelCase( name ); - - // Make sure that we're working with the right name - name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); - - // gets hook for the prefixed version - // followed by the unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - //convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Return, converting to number if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; - } - return val; - }, - - // A method for quickly swapping in/out CSS properties to get correct calculations - swap: function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; - } -}); - -// NOTE: we've included the "window" in window.getComputedStyle -// because jsdom on node.js will break without it. -if ( window.getComputedStyle ) { - getStyles = function( elem ) { - return window.getComputedStyle( elem, null ); - }; - - curCSS = function( elem, name, _computed ) { - var width, minWidth, maxWidth, - computed = _computed || getStyles( elem ), - - // getPropertyValue is only needed for .css('filter') in IE9, see #12537 - ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, - style = elem.style; - - if ( computed ) { - - if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right - // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels - // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values - if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret; - }; -} else if ( document.documentElement.currentStyle ) { - getStyles = function( elem ) { - return elem.currentStyle; - }; - - curCSS = function( elem, name, _computed ) { - var left, rs, rsLeft, - computed = _computed || getStyles( elem ), - ret = computed ? computed[ name ] : undefined, - style = elem.style; - - // Avoid setting ret to empty string here - // so we don't default to auto - if ( ret == null && style && style[ name ] ) { - ret = style[ name ]; - } - - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - // but not position css attributes, as those are proportional to the parent element instead - // and we can't measure the parent instead because it might trigger a "stacking dolls" problem - if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { - - // Remember the original values - left = style.left; - rs = elem.runtimeStyle; - rsLeft = rs && rs.left; - - // Put in the new values to get a computed value out - if ( rsLeft ) { - rs.left = elem.currentStyle.left; - } - style.left = name === "fontSize" ? "1em" : ret; - ret = style.pixelLeft + "px"; - - // Revert the changed values - style.left = left; - if ( rsLeft ) { - rs.left = rsLeft; - } - } - - return ret === "" ? "auto" : ret; - }; -} - -function setPositiveNumber( elem, value, subtract ) { - var matches = rnumsplit.exec( value ); - return matches ? - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : - value; -} - -function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { - var i = extra === ( isBorderBox ? "border" : "content" ) ? - // If we already have the right measurement, avoid augmentation - 4 : - // Otherwise initialize for horizontal or vertical properties - name === "width" ? 1 : 0, - - val = 0; - - for ( ; i < 4; i += 2 ) { - // both box models exclude margin, so add it if we want it - if ( extra === "margin" ) { - val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); - } - - if ( isBorderBox ) { - // border-box includes padding, so remove it if we want content - if ( extra === "content" ) { - val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // at this point, extra isn't border nor margin, so remove border - if ( extra !== "margin" ) { - val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } else { - // at this point, extra isn't content, so add padding - val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // at this point, extra isn't content nor padding, so add border - if ( extra !== "padding" ) { - val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - return val; -} - -function getWidthOrHeight( elem, name, extra ) { - - // Start with offset property, which is equivalent to the border-box value - var valueIsBorderBox = true, - val = name === "width" ? elem.offsetWidth : elem.offsetHeight, - styles = getStyles( elem ), - isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // some non-html elements return undefined for offsetWidth, so check for null/undefined - // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 - // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 - if ( val <= 0 || val == null ) { - // Fall back to computed then uncomputed css if necessary - val = curCSS( elem, name, styles ); - if ( val < 0 || val == null ) { - val = elem.style[ name ]; - } - - // Computed unit is not pixels. Stop here and return. - if ( rnumnonpx.test(val) ) { - return val; - } - - // we need the check for style in case a browser which returns unreliable values - // for getComputedStyle silently falls back to the reliable elem.style - valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); - - // Normalize "", auto, and prepare for extra - val = parseFloat( val ) || 0; - } - - // use the active box-sizing model to add/subtract irrelevant styles - return ( val + - augmentWidthOrHeight( - elem, - name, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles - ) - ) + "px"; -} - -// Try to determine the default display value of an element -function css_defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - // Use the already-created iframe if possible - iframe = ( iframe || - jQuery("