<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Get Started With The A* Pathfinding Project - A* Pathfinding Project</title> <style>/*! * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=ca1d29b8c16a782c676c) * Config saved to config.json and https://gist.github.com/ca1d29b8c16a782c676c */ /*! * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ html { font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-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: bold; } dfn { font-style: italic; } h1 { font-size: 2em; margin: 0.67em 0; } mark { background: #ff0; color: #000; } small { font-size: 80%; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } img { border: 0; } svg:not(:root) { overflow: hidden; } figure { margin: 1em 40px; } hr { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; height: 0; } pre { overflow: auto; } code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } button, input, optgroup, select, textarea { color: inherit; font: inherit; margin: 0; } 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 { border: 0; padding: 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-appearance: textfield; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; } input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } legend { border: 0; padding: 0; } textarea { overflow: auto; } optgroup { font-weight: bold; } table { border-collapse: collapse; border-spacing: 0; } td, th { padding: 0; } /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ @media print { *, *:before, *:after { background: transparent !important; color: #000 !important; -webkit-box-shadow: none !important; box-shadow: none !important; text-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; } .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.woff2') format('woff2'), 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: normal; 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"; } .glyphicon-cd:before { content: "\e201"; } .glyphicon-save-file:before { content: "\e202"; } .glyphicon-open-file:before { content: "\e203"; } .glyphicon-level-up:before { content: "\e204"; } .glyphicon-copy:before { content: "\e205"; } .glyphicon-paste:before { content: "\e206"; } .glyphicon-alert:before { content: "\e209"; } .glyphicon-equalizer:before { content: "\e210"; } .glyphicon-king:before { content: "\e211"; } .glyphicon-queen:before { content: "\e212"; } .glyphicon-pawn:before { content: "\e213"; } .glyphicon-bishop:before { content: "\e214"; } .glyphicon-knight:before { content: "\e215"; } .glyphicon-baby-formula:before { content: "\e216"; } .glyphicon-tent:before { content: "\26fa"; } .glyphicon-blackboard:before { content: "\e218"; } .glyphicon-bed:before { content: "\e219"; } .glyphicon-apple:before { content: "\f8ff"; } .glyphicon-erase:before { content: "\e221"; } .glyphicon-hourglass:before { content: "\231b"; } .glyphicon-lamp:before { content: "\e223"; } .glyphicon-duplicate:before { content: "\e224"; } .glyphicon-piggy-bank:before { content: "\e225"; } .glyphicon-scissors:before { content: "\e226"; } .glyphicon-bitcoin:before { content: "\e227"; } .glyphicon-btc:before { content: "\e227"; } .glyphicon-xbt:before { content: "\e227"; } .glyphicon-yen:before { content: "\00a5"; } .glyphicon-jpy:before { content: "\00a5"; } .glyphicon-ruble:before { content: "\20bd"; } .glyphicon-rub:before { content: "\20bd"; } .glyphicon-scale:before { content: "\e230"; } .glyphicon-ice-lolly:before { content: "\e231"; } .glyphicon-ice-lolly-tasted:before { content: "\e232"; } .glyphicon-education:before { content: "\e233"; } .glyphicon-option-horizontal:before { content: "\e234"; } .glyphicon-option-vertical:before { content: "\e235"; } .glyphicon-menu-hamburger:before { content: "\e236"; } .glyphicon-modal-window:before { content: "\e237"; } .glyphicon-oil:before { content: "\e238"; } .glyphicon-grain:before { content: "\e239"; } .glyphicon-sunglasses:before { content: "\e240"; } .glyphicon-text-size:before { content: "\e241"; } .glyphicon-text-color:before { content: "\e242"; } .glyphicon-text-background:before { content: "\e243"; } .glyphicon-object-align-top:before { content: "\e244"; } .glyphicon-object-align-bottom:before { content: "\e245"; } .glyphicon-object-align-horizontal:before { content: "\e246"; } .glyphicon-object-align-left:before { content: "\e247"; } .glyphicon-object-align-vertical:before { content: "\e248"; } .glyphicon-object-align-right:before { content: "\e249"; } .glyphicon-triangle-right:before { content: "\e250"; } .glyphicon-triangle-left:before { content: "\e251"; } .glyphicon-triangle-bottom:before { content: "\e252"; } .glyphicon-triangle-top:before { content: "\e253"; } .glyphicon-console:before { content: "\e254"; } .glyphicon-superscript:before { content: "\e255"; } .glyphicon-subscript:before { content: "\e256"; } .glyphicon-menu-left:before { content: "\e257"; } .glyphicon-menu-right:before { content: "\e258"; } .glyphicon-menu-down:before { content: "\e259"; } .glyphicon-menu-up:before { content: "\e260"; } * { -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: #333333; background-color: #ffffff; } input, button, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit; } a { color: #337ab7; text-decoration: none; } a:hover, a:focus { color: #23527c; 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 { padding: 4px; line-height: 1.42857143; background-color: #ffffff; border: 1px solid #dddddd; border-radius: 4px; -webkit-transition: all 0.2s ease-in-out; -o-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; display: inline-block; max-width: 100%; height: auto; } .img-circle { border-radius: 50%; } hr { margin-top: 20px; margin-bottom: 20px; border: 0; border-top: 1px solid #eeeeee; } .sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; 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; } [role="button"] { cursor: pointer; } 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: normal; line-height: 1; color: #777777; } 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 { background-color: #fcf8e3; padding: .2em; } .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: #777777; } .text-primary { color: #337ab7; } a.text-primary:hover, a.text-primary:focus { color: #286090; } .text-success { color: #3c763d; } a.text-success:hover, a.text-success:focus { color: #2b542c; } .text-info { color: #31708f; } a.text-info:hover, a.text-info:focus { color: #245269; } .text-warning { color: #8a6d3b; } a.text-warning:hover, a.text-warning:focus { color: #66512c; } .text-danger { color: #a94442; } a.text-danger:hover, a.text-danger:focus { color: #843534; } .bg-primary { color: #fff; background-color: #337ab7; } a.bg-primary:hover, a.bg-primary:focus { background-color: #286090; } .bg-success { background-color: #dff0d8; } a.bg-success:hover, a.bg-success:focus { background-color: #c1e2b3; } .bg-info { background-color: #d9edf7; } a.bg-info:hover, a.bg-info:focus { background-color: #afd9ee; } .bg-warning { background-color: #fcf8e3; } a.bg-warning:hover, a.bg-warning:focus { background-color: #f7ecb5; } .bg-danger { background-color: #f2dede; } a.bg-danger:hover, a.bg-danger:focus { background-color: #e4b9b9; } .page-header { padding-bottom: 9px; margin: 40px 0 20px; border-bottom: 1px solid #eeeeee; } 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; list-style: none; margin-left: -5px; } .list-inline > li { display: inline-block; padding-left: 5px; padding-right: 5px; } dl { margin-top: 0; margin-bottom: 20px; } dt, dd { line-height: 1.42857143; } dt { font-weight: bold; } dd { margin-left: 0; } @media (min-width: 768px) { .dl-horizontal dt { float: left; width: 160px; clear: left; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .dl-horizontal dd { margin-left: 180px; } } abbr[title], abbr[data-original-title] { cursor: help; border-bottom: 1px dotted #777777; } .initialism { font-size: 90%; text-transform: uppercase; } blockquote { padding: 10px 20px; margin: 0 0 20px; font-size: 17.5px; border-left: 5px solid #eeeeee; } 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: #777777; } blockquote footer:before, blockquote small:before, blockquote .small:before { content: '\2014 \00A0'; } .blockquote-reverse, blockquote.pull-right { padding-right: 15px; padding-left: 0; border-right: 5px solid #eeeeee; border-left: 0; text-align: right; } .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: #ffffff; background-color: #333333; border-radius: 3px; -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); } kbd kbd { padding: 0; font-size: 100%; font-weight: bold; -webkit-box-shadow: none; box-shadow: none; } pre { display: block; padding: 9.5px; margin: 0 0 10px; font-size: 13px; line-height: 1.42857143; word-break: break-all; word-wrap: break-word; color: #333333; background-color: #f5f5f5; border: 1px solid #cccccc; 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 { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px; } @media (min-width: 768px) { .container { width: 750px; } } @media (min-width: 992px) { .container { width: 970px; } } @media (min-width: 1200px) { .container { width: 1170px; } } .container-fluid { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px; } .row { margin-left: -15px; margin-right: -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-left: 15px; padding-right: 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: #777777; 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 #dddddd; } .table > thead > tr > th { vertical-align: bottom; border-bottom: 2px solid #dddddd; } .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 #dddddd; } .table .table { background-color: #ffffff; } .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 #dddddd; } .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 #dddddd; } .table-bordered > thead > tr > th, .table-bordered > thead > tr > td { border-bottom-width: 2px; } .table-striped > tbody > tr:nth-of-type(odd) { background-color: #f9f9f9; } .table-hover > tbody > tr:hover { background-color: #f5f5f5; } table col[class*="col-"] { position: static; float: none; display: table-column; } table td[class*="col-"], table th[class*="col-"] { position: static; float: none; display: table-cell; } .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 { overflow-x: auto; min-height: 0.01%; } @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 #dddddd; } .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 { padding: 0; margin: 0; border: 0; min-width: 0; } legend { display: block; width: 100%; padding: 0; margin-bottom: 20px; font-size: 21px; line-height: inherit; color: #333333; border: 0; border-bottom: 1px solid #e5e5e5; } label { display: inline-block; max-width: 100%; margin-bottom: 5px; font-weight: bold; } 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: #555555; } .form-control { display: block; width: 100%; height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555555; background-color: #ffffff; background-image: none; border: 1px solid #cccccc; border-radius: 4px; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 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, 0.6); box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); } .form-control::-moz-placeholder { color: #999999; opacity: 1; } .form-control:-ms-input-placeholder { color: #999999; } .form-control::-webkit-input-placeholder { color: #999999; } .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { background-color: #eeeeee; opacity: 1; } .form-control[disabled], fieldset[disabled] .form-control { cursor: not-allowed; } textarea.form-control { height: auto; } input[type="search"] { -webkit-appearance: none; } @media screen and (-webkit-min-device-pixel-ratio: 0) { input[type="date"].form-control, input[type="time"].form-control, input[type="datetime-local"].form-control, input[type="month"].form-control { line-height: 34px; } input[type="date"].input-sm, input[type="time"].input-sm, input[type="datetime-local"].input-sm, input[type="month"].input-sm, .input-group-sm input[type="date"], .input-group-sm input[type="time"], .input-group-sm input[type="datetime-local"], .input-group-sm input[type="month"] { line-height: 30px; } input[type="date"].input-lg, input[type="time"].input-lg, input[type="datetime-local"].input-lg, input[type="month"].input-lg, .input-group-lg input[type="date"], .input-group-lg input[type="time"], .input-group-lg input[type="datetime-local"], .input-group-lg input[type="month"] { line-height: 46px; } } .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: normal; cursor: pointer; } .radio input[type="radio"], .radio-inline input[type="radio"], .checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"] { position: absolute; margin-left: -20px; margin-top: 4px \9; } .radio + .radio, .checkbox + .checkbox { margin-top: -5px; } .radio-inline, .checkbox-inline { position: relative; display: inline-block; padding-left: 20px; margin-bottom: 0; vertical-align: middle; font-weight: normal; 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; min-height: 34px; } .form-control-static.input-lg, .form-control-static.input-sm { padding-left: 0; padding-right: 0; } .input-sm { height: 30px; padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } select.input-sm { height: 30px; line-height: 30px; } textarea.input-sm, select[multiple].input-sm { height: auto; } .form-group-sm .form-control { height: 30px; padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } .form-group-sm select.form-control { height: 30px; line-height: 30px; } .form-group-sm textarea.form-control, .form-group-sm select[multiple].form-control { height: auto; } .form-group-sm .form-control-static { height: 30px; min-height: 32px; padding: 6px 10px; font-size: 12px; line-height: 1.5; } .input-lg { height: 46px; padding: 10px 16px; font-size: 18px; line-height: 1.3333333; border-radius: 6px; } select.input-lg { height: 46px; line-height: 46px; } textarea.input-lg, select[multiple].input-lg { height: auto; } .form-group-lg .form-control { height: 46px; padding: 10px 16px; font-size: 18px; line-height: 1.3333333; border-radius: 6px; } .form-group-lg select.form-control { height: 46px; line-height: 46px; } .form-group-lg textarea.form-control, .form-group-lg select[multiple].form-control { height: auto; } .form-group-lg .form-control-static { height: 46px; min-height: 38px; padding: 11px 16px; font-size: 18px; line-height: 1.3333333; } .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, .input-group-lg + .form-control-feedback, .form-group-lg .form-control + .form-control-feedback { width: 46px; height: 46px; line-height: 46px; } .input-sm + .form-control-feedback, .input-group-sm + .form-control-feedback, .form-group-sm .form-control + .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, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .has-success .form-control:focus { border-color: #2b542c; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; } .has-success .input-group-addon { color: #3c763d; border-color: #3c763d; background-color: #dff0d8; } .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, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .has-warning .form-control:focus { border-color: #66512c; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; } .has-warning .input-group-addon { color: #8a6d3b; border-color: #8a6d3b; background-color: #fcf8e3; } .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, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .has-error .form-control:focus { border-color: #843534; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; } .has-error .input-group-addon { color: #a94442; border-color: #a94442; background-color: #f2dede; } .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 { margin-top: 0; margin-bottom: 0; padding-top: 7px; } .form-horizontal .radio, .form-horizontal .checkbox { min-height: 27px; } .form-horizontal .form-group { margin-left: -15px; margin-right: -15px; } @media (min-width: 768px) { .form-horizontal .control-label { text-align: right; margin-bottom: 0; padding-top: 7px; } } .form-horizontal .has-feedback .form-control-feedback { right: 15px; } @media (min-width: 768px) { .form-horizontal .form-group-lg .control-label { padding-top: 14.333333px; font-size: 18px; } } @media (min-width: 768px) { .form-horizontal .form-group-sm .control-label { padding-top: 6px; font-size: 12px; } } .btn { display: inline-block; margin-bottom: 0; font-weight: normal; text-align: center; vertical-align: middle; -ms-touch-action: manipulation; touch-action: manipulation; cursor: pointer; background-image: none; border: 1px solid transparent; white-space: nowrap; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; border-radius: 4px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .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: #333333; text-decoration: none; } .btn:active, .btn.active { outline: 0; background-image: none; -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } .btn.disabled, .btn[disabled], fieldset[disabled] .btn { cursor: not-allowed; opacity: 0.65; filter: alpha(opacity=65); -webkit-box-shadow: none; box-shadow: none; } a.btn.disabled, fieldset[disabled] a.btn { pointer-events: none; } .btn-default { color: #333333; background-color: #ffffff; border-color: #cccccc; } .btn-default:focus, .btn-default.focus { color: #333333; background-color: #e6e6e6; border-color: #8c8c8c; } .btn-default:hover { color: #333333; background-color: #e6e6e6; border-color: #adadad; } .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default { color: #333333; background-color: #e6e6e6; border-color: #adadad; } .btn-default:active:hover, .btn-default.active:hover, .open > .dropdown-toggle.btn-default:hover, .btn-default:active:focus, .btn-default.active:focus, .open > .dropdown-toggle.btn-default:focus, .btn-default:active.focus, .btn-default.active.focus, .open > .dropdown-toggle.btn-default.focus { color: #333333; background-color: #d4d4d4; border-color: #8c8c8c; } .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: #ffffff; border-color: #cccccc; } .btn-default .badge { color: #ffffff; background-color: #333333; } .btn-primary { color: #ffffff; background-color: #337ab7; border-color: #2e6da4; } .btn-primary:focus, .btn-primary.focus { color: #ffffff; background-color: #286090; border-color: #122b40; } .btn-primary:hover { color: #ffffff; background-color: #286090; border-color: #204d74; } .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { color: #ffffff; background-color: #286090; border-color: #204d74; } .btn-primary:active:hover, .btn-primary.active:hover, .open > .dropdown-toggle.btn-primary:hover, .btn-primary:active:focus, .btn-primary.active:focus, .open > .dropdown-toggle.btn-primary:focus, .btn-primary:active.focus, .btn-primary.active.focus, .open > .dropdown-toggle.btn-primary.focus { color: #ffffff; background-color: #204d74; border-color: #122b40; } .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: #337ab7; border-color: #2e6da4; } .btn-primary .badge { color: #337ab7; background-color: #ffffff; } .btn-success { color: #ffffff; background-color: #5cb85c; border-color: #4cae4c; } .btn-success:focus, .btn-success.focus { color: #ffffff; background-color: #449d44; border-color: #255625; } .btn-success:hover { color: #ffffff; background-color: #449d44; border-color: #398439; } .btn-success:active, .btn-success.active, .open > .dropdown-toggle.btn-success { color: #ffffff; background-color: #449d44; border-color: #398439; } .btn-success:active:hover, .btn-success.active:hover, .open > .dropdown-toggle.btn-success:hover, .btn-success:active:focus, .btn-success.active:focus, .open > .dropdown-toggle.btn-success:focus, .btn-success:active.focus, .btn-success.active.focus, .open > .dropdown-toggle.btn-success.focus { color: #ffffff; background-color: #398439; border-color: #255625; } .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: #ffffff; } .btn-info { color: #ffffff; background-color: #5bc0de; border-color: #46b8da; } .btn-info:focus, .btn-info.focus { color: #ffffff; background-color: #31b0d5; border-color: #1b6d85; } .btn-info:hover { color: #ffffff; background-color: #31b0d5; border-color: #269abc; } .btn-info:active, .btn-info.active, .open > .dropdown-toggle.btn-info { color: #ffffff; background-color: #31b0d5; border-color: #269abc; } .btn-info:active:hover, .btn-info.active:hover, .open > .dropdown-toggle.btn-info:hover, .btn-info:active:focus, .btn-info.active:focus, .open > .dropdown-toggle.btn-info:focus, .btn-info:active.focus, .btn-info.active.focus, .open > .dropdown-toggle.btn-info.focus { color: #ffffff; background-color: #269abc; border-color: #1b6d85; } .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: #ffffff; } .btn-warning { color: #ffffff; background-color: #f0ad4e; border-color: #eea236; } .btn-warning:focus, .btn-warning.focus { color: #ffffff; background-color: #ec971f; border-color: #985f0d; } .btn-warning:hover { color: #ffffff; background-color: #ec971f; border-color: #d58512; } .btn-warning:active, .btn-warning.active, .open > .dropdown-toggle.btn-warning { color: #ffffff; background-color: #ec971f; border-color: #d58512; } .btn-warning:active:hover, .btn-warning.active:hover, .open > .dropdown-toggle.btn-warning:hover, .btn-warning:active:focus, .btn-warning.active:focus, .open > .dropdown-toggle.btn-warning:focus, .btn-warning:active.focus, .btn-warning.active.focus, .open > .dropdown-toggle.btn-warning.focus { color: #ffffff; background-color: #d58512; border-color: #985f0d; } .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: #ffffff; } .btn-danger { color: #ffffff; background-color: #d9534f; border-color: #d43f3a; } .btn-danger:focus, .btn-danger.focus { color: #ffffff; background-color: #c9302c; border-color: #761c19; } .btn-danger:hover { color: #ffffff; background-color: #c9302c; border-color: #ac2925; } .btn-danger:active, .btn-danger.active, .open > .dropdown-toggle.btn-danger { color: #ffffff; background-color: #c9302c; border-color: #ac2925; } .btn-danger:active:hover, .btn-danger.active:hover, .open > .dropdown-toggle.btn-danger:hover, .btn-danger:active:focus, .btn-danger.active:focus, .open > .dropdown-toggle.btn-danger:focus, .btn-danger:active.focus, .btn-danger.active.focus, .open > .dropdown-toggle.btn-danger.focus { color: #ffffff; background-color: #ac2925; border-color: #761c19; } .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: #ffffff; } .btn-link { color: #337ab7; font-weight: normal; 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: #23527c; 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: #777777; text-decoration: none; } .btn-lg, .btn-group-lg > .btn { padding: 10px 16px; font-size: 18px; line-height: 1.3333333; 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 0.15s linear; -o-transition: opacity 0.15s linear; transition: opacity 0.15s linear; } .fade.in { opacity: 1; } .collapse { display: none; } .collapse.in { display: block; } tr.collapse.in { display: table-row; } tbody.collapse.in { display: table-row-group; } .collapsing { position: relative; height: 0; overflow: hidden; -webkit-transition-property: height, visibility; -o-transition-property: height, visibility; transition-property: height, visibility; -webkit-transition-duration: 0.35s; -o-transition-duration: 0.35s; transition-duration: 0.35s; -webkit-transition-timing-function: ease; -o-transition-timing-function: ease; transition-timing-function: ease; } .caret { display: inline-block; width: 0; height: 0; margin-left: 2px; vertical-align: middle; border-top: 4px dashed; border-top: 4px solid \9; border-right: 4px solid transparent; border-left: 4px solid transparent; } .dropup, .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; list-style: none; font-size: 14px; text-align: left; background-color: #ffffff; border: 1px solid #cccccc; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 4px; -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); -webkit-background-clip: padding-box; background-clip: padding-box; } .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: normal; line-height: 1.42857143; color: #333333; white-space: nowrap; } .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { text-decoration: none; color: #262626; background-color: #f5f5f5; } .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { color: #ffffff; text-decoration: none; outline: 0; background-color: #337ab7; } .dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { color: #777777; } .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { text-decoration: none; background-color: transparent; background-image: none; filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); cursor: not-allowed; } .open > .dropdown-menu { display: block; } .open > a { outline: 0; } .dropdown-menu-right { left: auto; right: 0; } .dropdown-menu-left { left: 0; right: auto; } .dropdown-header { display: block; padding: 3px 20px; font-size: 12px; line-height: 1.42857143; color: #777777; white-space: nowrap; } .dropdown-backdrop { position: fixed; left: 0; right: 0; bottom: 0; top: 0; z-index: 990; } .pull-right > .dropdown-menu { right: 0; left: auto; } .dropup .caret, .navbar-fixed-bottom .dropdown .caret { border-top: 0; border-bottom: 4px dashed; border-bottom: 4px solid \9; content: ""; } .dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { top: auto; bottom: 100%; margin-bottom: 2px; } @media (min-width: 768px) { .navbar-right .dropdown-menu { left: auto; right: 0; } .navbar-right .dropdown-menu-left { left: 0; right: auto; } } .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 + .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, .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-bottom-right-radius: 0; border-top-right-radius: 0; } .btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { border-bottom-left-radius: 0; border-top-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:not(:last-child) > .btn:last-child, .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { border-bottom-right-radius: 0; border-top-right-radius: 0; } .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { border-bottom-left-radius: 0; border-top-left-radius: 0; } .btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { outline: 0; } .btn-group > .btn + .dropdown-toggle { padding-left: 8px; padding-right: 8px; } .btn-group > .btn-lg + .dropdown-toggle { padding-left: 12px; padding-right: 12px; } .btn-group.open .dropdown-toggle { -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); box-shadow: inset 0 3px 5px rgba(0, 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-bottom-left-radius: 4px; border-top-right-radius: 0; border-top-left-radius: 0; } .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-right-radius: 0; border-top-left-radius: 0; } .btn-group-justified { display: table; width: 100%; table-layout: fixed; border-collapse: separate; } .btn-group-justified > .btn, .btn-group-justified > .btn-group { float: none; display: table-cell; 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-left: 0; padding-right: 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.3333333; 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: normal; line-height: 1; color: #555555; text-align: center; background-color: #eeeeee; border: 1px solid #cccccc; 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-bottom-right-radius: 0; border-top-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-bottom-left-radius: 0; border-top-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 { z-index: 2; margin-left: -1px; } .nav { margin-bottom: 0; padding-left: 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: #eeeeee; } .nav > li.disabled > a { color: #777777; } .nav > li.disabled > a:hover, .nav > li.disabled > a:focus { color: #777777; text-decoration: none; background-color: transparent; cursor: not-allowed; } .nav .open > a, .nav .open > a:hover, .nav .open > a:focus { background-color: #eeeeee; border-color: #337ab7; } .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 #dddddd; } .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: #eeeeee #eeeeee #dddddd; } .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { color: #555555; background-color: #ffffff; border: 1px solid #dddddd; border-bottom-color: transparent; cursor: default; } .nav-tabs.nav-justified { width: 100%; border-bottom: 0; } .nav-tabs.nav-justified > li { float: none; } .nav-tabs.nav-justified > li > a { text-align: center; margin-bottom: 5px; } .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 #dddddd; } @media (min-width: 768px) { .nav-tabs.nav-justified > li > a { border-bottom: 1px solid #dddddd; 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: #ffffff; } } .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: #ffffff; background-color: #337ab7; } .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 { text-align: center; margin-bottom: 5px; } .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 #dddddd; } @media (min-width: 768px) { .nav-tabs-justified > li > a { border-bottom: 1px solid #dddddd; 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: #ffffff; } } .tab-content > .tab-pane { display: none; } .tab-content > .active { display: block; } .nav-tabs .dropdown-menu { margin-top: -1px; border-top-right-radius: 0; border-top-left-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 { overflow-x: visible; padding-right: 15px; padding-left: 15px; border-top: 1px solid transparent; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); -webkit-overflow-scrolling: touch; } .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; } .navbar-collapse.in { overflow-y: visible; } .navbar-fixed-top .navbar-collapse, .navbar-static-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { padding-left: 0; padding-right: 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; padding: 15px 15px; font-size: 18px; line-height: 20px; height: 50px; } .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; margin-right: 15px; padding: 9px 10px; margin-top: 8px; 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 { margin-left: -15px; margin-right: -15px; padding: 10px 15px; border-top: 1px solid transparent; border-bottom: 1px solid transparent; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); margin-top: 8px; margin-bottom: 8px; } @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; border: 0; margin-left: 0; margin-right: 0; padding-top: 0; padding-bottom: 0; -webkit-box-shadow: none; box-shadow: none; } } .navbar-nav > li > .dropdown-menu { margin-top: 0; border-top-right-radius: 0; border-top-left-radius: 0; } .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { margin-bottom: 0; border-top-right-radius: 4px; border-top-left-radius: 4px; 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-left: 15px; margin-right: 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: #777777; } .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus { color: #5e5e5e; background-color: transparent; } .navbar-default .navbar-text { color: #777777; } .navbar-default .navbar-nav > li > a { color: #777777; } .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { color: #333333; background-color: transparent; } .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { color: #555555; background-color: #e7e7e7; } .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus { color: #cccccc; background-color: transparent; } .navbar-default .navbar-toggle { border-color: #dddddd; } .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { background-color: #dddddd; } .navbar-default .navbar-toggle .icon-bar { background-color: #888888; } .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 { background-color: #e7e7e7; color: #555555; } @media (max-width: 767px) { .navbar-default .navbar-nav .open .dropdown-menu > li > a { color: #777777; } .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { color: #333333; 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: #555555; 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: #cccccc; background-color: transparent; } } .navbar-default .navbar-link { color: #777777; } .navbar-default .navbar-link:hover { color: #333333; } .navbar-default .btn-link { color: #777777; } .navbar-default .btn-link:hover, .navbar-default .btn-link:focus { color: #333333; } .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: #cccccc; } .navbar-inverse { background-color: #222222; border-color: #080808; } .navbar-inverse .navbar-brand { color: #9d9d9d; } .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus { color: #ffffff; 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: #ffffff; background-color: transparent; } .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { color: #ffffff; background-color: #080808; } .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus { color: #444444; background-color: transparent; } .navbar-inverse .navbar-toggle { border-color: #333333; } .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus { background-color: #333333; } .navbar-inverse .navbar-toggle .icon-bar { background-color: #ffffff; } .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 { background-color: #080808; color: #ffffff; } @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: #ffffff; 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: #ffffff; 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: #444444; background-color: transparent; } } .navbar-inverse .navbar-link { color: #9d9d9d; } .navbar-inverse .navbar-link:hover { color: #ffffff; } .navbar-inverse .btn-link { color: #9d9d9d; } .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus { color: #ffffff; } .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: #444444; } .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 { content: "/\00a0"; padding: 0 5px; color: #cccccc; } .breadcrumb > .active { color: #777777; } .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; line-height: 1.42857143; text-decoration: none; color: #337ab7; background-color: #ffffff; border: 1px solid #dddddd; margin-left: -1px; } .pagination > li:first-child > a, .pagination > li:first-child > span { margin-left: 0; border-bottom-left-radius: 4px; border-top-left-radius: 4px; } .pagination > li:last-child > a, .pagination > li:last-child > span { border-bottom-right-radius: 4px; border-top-right-radius: 4px; } .pagination > li > a:hover, .pagination > li > span:hover, .pagination > li > a:focus, .pagination > li > span:focus { z-index: 3; color: #23527c; background-color: #eeeeee; border-color: #dddddd; } .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: #ffffff; background-color: #337ab7; border-color: #337ab7; cursor: default; } .pagination > .disabled > span, .pagination > .disabled > span:hover, .pagination > .disabled > span:focus, .pagination > .disabled > a, .pagination > .disabled > a:hover, .pagination > .disabled > a:focus { color: #777777; background-color: #ffffff; border-color: #dddddd; cursor: not-allowed; } .pagination-lg > li > a, .pagination-lg > li > span { padding: 10px 16px; font-size: 18px; line-height: 1.3333333; } .pagination-lg > li:first-child > a, .pagination-lg > li:first-child > span { border-bottom-left-radius: 6px; border-top-left-radius: 6px; } .pagination-lg > li:last-child > a, .pagination-lg > li:last-child > span { border-bottom-right-radius: 6px; border-top-right-radius: 6px; } .pagination-sm > li > a, .pagination-sm > li > span { padding: 5px 10px; font-size: 12px; line-height: 1.5; } .pagination-sm > li:first-child > a, .pagination-sm > li:first-child > span { border-bottom-left-radius: 3px; border-top-left-radius: 3px; } .pagination-sm > li:last-child > a, .pagination-sm > li:last-child > span { border-bottom-right-radius: 3px; border-top-right-radius: 3px; } .pager { padding-left: 0; margin: 20px 0; list-style: none; text-align: center; } .pager li { display: inline; } .pager li > a, .pager li > span { display: inline-block; padding: 5px 14px; background-color: #ffffff; border: 1px solid #dddddd; border-radius: 15px; } .pager li > a:hover, .pager li > a:focus { text-decoration: none; background-color: #eeeeee; } .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: #777777; background-color: #ffffff; cursor: not-allowed; } .label { display: inline; padding: .2em .6em .3em; font-size: 75%; font-weight: bold; line-height: 1; color: #ffffff; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: .25em; } a.label:hover, a.label:focus { color: #ffffff; text-decoration: none; cursor: pointer; } .label:empty { display: none; } .btn .label { position: relative; top: -1px; } .label-default { background-color: #777777; } .label-default[href]:hover, .label-default[href]:focus { background-color: #5e5e5e; } .label-primary { background-color: #337ab7; } .label-primary[href]:hover, .label-primary[href]:focus { background-color: #286090; } .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: bold; color: #ffffff; line-height: 1; vertical-align: middle; white-space: nowrap; text-align: center; background-color: #777777; border-radius: 10px; } .badge:empty { display: none; } .btn .badge { position: relative; top: -1px; } .btn-xs .badge, .btn-group-xs > .btn .badge { top: 0; padding: 1px 5px; } a.badge:hover, a.badge:focus { color: #ffffff; text-decoration: none; cursor: pointer; } .list-group-item.active > .badge, .nav-pills > .active > a > .badge { color: #337ab7; background-color: #ffffff; } .list-group-item > .badge { float: right; } .list-group-item > .badge + .badge { margin-right: 5px; } .nav-pills > li > a > .badge { margin-left: 3px; } .jumbotron { padding-top: 30px; padding-bottom: 30px; margin-bottom: 30px; color: inherit; background-color: #eeeeee; } .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-top: 48px; padding-bottom: 48px; } .container .jumbotron, .container-fluid .jumbotron { padding-left: 60px; padding-right: 60px; } .jumbotron h1, .jumbotron .h1 { font-size: 63px; } } .thumbnail { display: block; padding: 4px; margin-bottom: 20px; line-height: 1.42857143; background-color: #ffffff; border: 1px solid #dddddd; border-radius: 4px; -webkit-transition: border 0.2s ease-in-out; -o-transition: border 0.2s ease-in-out; transition: border 0.2s ease-in-out; } .thumbnail > img, .thumbnail a > img { margin-left: auto; margin-right: auto; } a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { border-color: #337ab7; } .thumbnail .caption { padding: 9px; color: #333333; } .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: bold; } .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 { background-color: #dff0d8; border-color: #d6e9c6; color: #3c763d; } .alert-success hr { border-top-color: #c9e2b3; } .alert-success .alert-link { color: #2b542c; } .alert-info { background-color: #d9edf7; border-color: #bce8f1; color: #31708f; } .alert-info hr { border-top-color: #a6e1ec; } .alert-info .alert-link { color: #245269; } .alert-warning { background-color: #fcf8e3; border-color: #faebcc; color: #8a6d3b; } .alert-warning hr { border-top-color: #f7e1b5; } .alert-warning .alert-link { color: #66512c; } .alert-danger { background-color: #f2dede; border-color: #ebccd1; color: #a94442; } .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 { overflow: hidden; height: 20px; margin-bottom: 20px; background-color: #f5f5f5; border-radius: 4px; -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); } .progress-bar { float: left; width: 0%; height: 100%; font-size: 12px; line-height: 20px; color: #ffffff; text-align: center; background-color: #337ab7; -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); -webkit-transition: width 0.6s ease; -o-transition: width 0.6s ease; transition: width 0.6s ease; } .progress-striped .progress-bar, .progress-bar-striped { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.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, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.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, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.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, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.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, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .media { margin-top: 15px; } .media:first-child { margin-top: 0; } .media, .media-body { zoom: 1; overflow: hidden; } .media-body { width: 10000px; } .media-object { display: block; } .media-object.img-thumbnail { max-width: none; } .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 { margin-bottom: 20px; padding-left: 0; } .list-group-item { position: relative; display: block; padding: 10px 15px; margin-bottom: -1px; background-color: #ffffff; border: 1px solid #dddddd; } .list-group-item:first-child { border-top-right-radius: 4px; border-top-left-radius: 4px; } .list-group-item:last-child { margin-bottom: 0; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; } a.list-group-item, button.list-group-item { color: #555555; } a.list-group-item .list-group-item-heading, button.list-group-item .list-group-item-heading { color: #333333; } a.list-group-item:hover, button.list-group-item:hover, a.list-group-item:focus, button.list-group-item:focus { text-decoration: none; color: #555555; background-color: #f5f5f5; } button.list-group-item { width: 100%; text-align: left; } .list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus { background-color: #eeeeee; color: #777777; cursor: not-allowed; } .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: #777777; } .list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { z-index: 2; color: #ffffff; background-color: #337ab7; border-color: #337ab7; } .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: #c7ddef; } .list-group-item-success { color: #3c763d; background-color: #dff0d8; } a.list-group-item-success, button.list-group-item-success { color: #3c763d; } a.list-group-item-success .list-group-item-heading, button.list-group-item-success .list-group-item-heading { color: inherit; } a.list-group-item-success:hover, button.list-group-item-success:hover, a.list-group-item-success:focus, button.list-group-item-success:focus { color: #3c763d; background-color: #d0e9c6; } a.list-group-item-success.active, button.list-group-item-success.active, a.list-group-item-success.active:hover, button.list-group-item-success.active:hover, a.list-group-item-success.active:focus, button.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, button.list-group-item-info { color: #31708f; } a.list-group-item-info .list-group-item-heading, button.list-group-item-info .list-group-item-heading { color: inherit; } a.list-group-item-info:hover, button.list-group-item-info:hover, a.list-group-item-info:focus, button.list-group-item-info:focus { color: #31708f; background-color: #c4e3f3; } a.list-group-item-info.active, button.list-group-item-info.active, a.list-group-item-info.active:hover, button.list-group-item-info.active:hover, a.list-group-item-info.active:focus, button.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, button.list-group-item-warning { color: #8a6d3b; } a.list-group-item-warning .list-group-item-heading, button.list-group-item-warning .list-group-item-heading { color: inherit; } a.list-group-item-warning:hover, button.list-group-item-warning:hover, a.list-group-item-warning:focus, button.list-group-item-warning:focus { color: #8a6d3b; background-color: #faf2cc; } a.list-group-item-warning.active, button.list-group-item-warning.active, a.list-group-item-warning.active:hover, button.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus, button.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, button.list-group-item-danger { color: #a94442; } a.list-group-item-danger .list-group-item-heading, button.list-group-item-danger .list-group-item-heading { color: inherit; } a.list-group-item-danger:hover, button.list-group-item-danger:hover, a.list-group-item-danger:focus, button.list-group-item-danger:focus { color: #a94442; background-color: #ebcccc; } a.list-group-item-danger.active, button.list-group-item-danger.active, a.list-group-item-danger.active:hover, button.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus, button.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: #ffffff; border: 1px solid transparent; border-radius: 4px; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); } .panel-body { padding: 15px; } .panel-heading { padding: 10px 15px; border-bottom: 1px solid transparent; border-top-right-radius: 3px; border-top-left-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, .panel-title > small, .panel-title > .small, .panel-title > small > a, .panel-title > .small > a { color: inherit; } .panel-footer { padding: 10px 15px; background-color: #f5f5f5; border-top: 1px solid #dddddd; 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-right-radius: 3px; border-top-left-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 > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { border-top-right-radius: 0; border-top-left-radius: 0; } .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-left: 15px; padding-right: 15px; } .panel > .table:first-child, .panel > .table-responsive:first-child > .table:first-child { border-top-right-radius: 3px; border-top-left-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-left-radius: 3px; border-bottom-right-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 #dddddd; } .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 { border: 0; margin-bottom: 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 #dddddd; } .panel-group .panel-footer { border-top: 0; } .panel-group .panel-footer + .panel-collapse .panel-body { border-bottom: 1px solid #dddddd; } .panel-default { border-color: #dddddd; } .panel-default > .panel-heading { color: #333333; background-color: #f5f5f5; border-color: #dddddd; } .panel-default > .panel-heading + .panel-collapse > .panel-body { border-top-color: #dddddd; } .panel-default > .panel-heading .badge { color: #f5f5f5; background-color: #333333; } .panel-default > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #dddddd; } .panel-primary { border-color: #337ab7; } .panel-primary > .panel-heading { color: #ffffff; background-color: #337ab7; border-color: #337ab7; } .panel-primary > .panel-heading + .panel-collapse > .panel-body { border-top-color: #337ab7; } .panel-primary > .panel-heading .badge { color: #337ab7; background-color: #ffffff; } .panel-primary > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #337ab7; } .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; left: 0; bottom: 0; height: 100%; width: 100%; border: 0; } .embed-responsive-16by9 { padding-bottom: 56.25%; } .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, 0.05); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); } .well blockquote { border-color: #ddd; border-color: rgba(0, 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: bold; line-height: 1; color: #000000; text-shadow: 0 1px 0 #ffffff; opacity: 0.2; filter: alpha(opacity=20); } .close:hover, .close:focus { color: #000000; text-decoration: none; cursor: pointer; opacity: 0.5; filter: alpha(opacity=50); } button.close { padding: 0; cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; } .modal-open { overflow: hidden; } .modal { display: none; overflow: hidden; position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1050; -webkit-overflow-scrolling: touch; outline: 0; } .modal.fade .modal-dialog { -webkit-transform: translate(0, -25%); -ms-transform: translate(0, -25%); -o-transform: translate(0, -25%); transform: translate(0, -25%); -webkit-transition: -webkit-transform 0.3s ease-out; -o-transition: -o-transform 0.3s ease-out; transition: transform 0.3s ease-out; } .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: #ffffff; border: 1px solid #999999; border: 1px solid rgba(0, 0, 0, 0.2); border-radius: 6px; -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); -webkit-background-clip: padding-box; background-clip: padding-box; outline: 0; } .modal-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1040; background-color: #000000; } .modal-backdrop.fade { opacity: 0; filter: alpha(opacity=0); } .modal-backdrop.in { opacity: 0.5; filter: alpha(opacity=50); } .modal-header { padding: 15px; border-bottom: 1px solid #e5e5e5; min-height: 16.42857143px; } .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-left: 5px; margin-bottom: 0; } .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, 0.5); box-shadow: 0 5px 15px rgba(0, 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-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-style: normal; font-weight: normal; letter-spacing: normal; line-break: auto; line-height: 1.42857143; text-align: left; text-align: start; text-decoration: none; text-shadow: none; text-transform: none; white-space: normal; word-break: normal; word-spacing: normal; word-wrap: normal; font-size: 12px; opacity: 0; filter: alpha(opacity=0); } .tooltip.in { opacity: 0.9; filter: alpha(opacity=90); } .tooltip.top { margin-top: -3px; padding: 5px 0; } .tooltip.right { margin-left: 3px; padding: 0 5px; } .tooltip.bottom { margin-top: 3px; padding: 5px 0; } .tooltip.left { margin-left: -3px; padding: 0 5px; } .tooltip-inner { max-width: 200px; padding: 3px 8px; color: #ffffff; text-align: center; background-color: #000000; 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: #000000; } .tooltip.top-left .tooltip-arrow { bottom: 0; right: 5px; margin-bottom: -5px; border-width: 5px 5px 0; border-top-color: #000000; } .tooltip.top-right .tooltip-arrow { bottom: 0; left: 5px; margin-bottom: -5px; border-width: 5px 5px 0; border-top-color: #000000; } .tooltip.right .tooltip-arrow { top: 50%; left: 0; margin-top: -5px; border-width: 5px 5px 5px 0; border-right-color: #000000; } .tooltip.left .tooltip-arrow { top: 50%; right: 0; margin-top: -5px; border-width: 5px 0 5px 5px; border-left-color: #000000; } .tooltip.bottom .tooltip-arrow { top: 0; left: 50%; margin-left: -5px; border-width: 0 5px 5px; border-bottom-color: #000000; } .tooltip.bottom-left .tooltip-arrow { top: 0; right: 5px; margin-top: -5px; border-width: 0 5px 5px; border-bottom-color: #000000; } .tooltip.bottom-right .tooltip-arrow { top: 0; left: 5px; margin-top: -5px; border-width: 0 5px 5px; border-bottom-color: #000000; } .popover { position: absolute; top: 0; left: 0; z-index: 1060; display: none; max-width: 276px; padding: 1px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-style: normal; font-weight: normal; letter-spacing: normal; line-break: auto; line-height: 1.42857143; text-align: left; text-align: start; text-decoration: none; text-shadow: none; text-transform: none; white-space: normal; word-break: normal; word-spacing: normal; word-wrap: normal; font-size: 14px; background-color: #ffffff; -webkit-background-clip: padding-box; background-clip: padding-box; border: 1px solid #cccccc; border: 1px solid rgba(0, 0, 0, 0.2); border-radius: 6px; -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); box-shadow: 0 5px 10px rgba(0, 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 { margin: 0; padding: 8px 14px; 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 { border-width: 10px; content: ""; } .popover.top > .arrow { left: 50%; margin-left: -11px; border-bottom-width: 0; border-top-color: #999999; border-top-color: rgba(0, 0, 0, 0.25); bottom: -11px; } .popover.top > .arrow:after { content: " "; bottom: 1px; margin-left: -10px; border-bottom-width: 0; border-top-color: #ffffff; } .popover.right > .arrow { top: 50%; left: -11px; margin-top: -11px; border-left-width: 0; border-right-color: #999999; border-right-color: rgba(0, 0, 0, 0.25); } .popover.right > .arrow:after { content: " "; left: 1px; bottom: -10px; border-left-width: 0; border-right-color: #ffffff; } .popover.bottom > .arrow { left: 50%; margin-left: -11px; border-top-width: 0; border-bottom-color: #999999; border-bottom-color: rgba(0, 0, 0, 0.25); top: -11px; } .popover.bottom > .arrow:after { content: " "; top: 1px; margin-left: -10px; border-top-width: 0; border-bottom-color: #ffffff; } .popover.left > .arrow { top: 50%; right: -11px; margin-top: -11px; border-right-width: 0; border-left-color: #999999; border-left-color: rgba(0, 0, 0, 0.25); } .popover.left > .arrow:after { content: " "; right: 1px; border-right-width: 0; border-left-color: #ffffff; bottom: -10px; } .carousel { position: relative; } .carousel-inner { position: relative; overflow: hidden; width: 100%; } .carousel-inner > .item { display: none; position: relative; -webkit-transition: 0.6s ease-in-out left; -o-transition: 0.6s ease-in-out left; transition: 0.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 0.6s ease-in-out; -o-transition: -o-transform 0.6s ease-in-out; transition: transform 0.6s ease-in-out; -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-perspective: 1000px; perspective: 1000px; } .carousel-inner > .item.next, .carousel-inner > .item.active.right { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); left: 0; } .carousel-inner > .item.prev, .carousel-inner > .item.active.left { -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); left: 0; } .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); left: 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; left: 0; bottom: 0; width: 15%; opacity: 0.5; filter: alpha(opacity=50); font-size: 20px; color: #ffffff; text-align: center; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); } .carousel-control.left { background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); } .carousel-control.right { left: auto; right: 0; background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); } .carousel-control:hover, .carousel-control:focus { outline: 0; color: #ffffff; text-decoration: none; opacity: 0.9; filter: alpha(opacity=90); } .carousel-control .icon-prev, .carousel-control .icon-next, .carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right { position: absolute; top: 50%; margin-top: -10px; 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; line-height: 1; 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%; margin-left: -30%; padding-left: 0; list-style: none; text-align: center; } .carousel-indicators li { display: inline-block; width: 10px; height: 10px; margin: 1px; text-indent: -999px; border: 1px solid #ffffff; border-radius: 10px; cursor: pointer; background-color: #000 \9; background-color: rgba(0, 0, 0, 0); } .carousel-indicators .active { margin: 0; width: 12px; height: 12px; background-color: #ffffff; } .carousel-caption { position: absolute; left: 15%; right: 15%; bottom: 20px; z-index: 10; padding-top: 20px; padding-bottom: 20px; color: #ffffff; text-align: center; text-shadow: 0 1px 2px rgba(0, 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 { left: 20%; right: 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 { content: " "; display: table; } .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-left: auto; margin-right: 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; } .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 !important; } 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 !important; } 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 !important; } 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 !important; } 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 !important; } 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; } } </style> <style>.com { color: #93a1a1; } .lit { color: #195f91; } .pun, .opn, .clo { color: #93a1a1; } .fun { color: #dc322f; } .str, .atv { color: #D14; } .kwd, .prettyprint .tag { color: #1e347b; } .typ, .atn, .dec, .var { color: teal; } .pln { color: #48484c; } .prettyprint { padding: 8px; background-color: #f7f7f9; border: 1px solid #e1e1e8; } .prettyprint.linenums { -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; } /* Specify class=linenums on a pre to get line numbering */ ol.linenums { margin: 0 0 0 33px; /* IE indents via margin-left */ } ol.linenums li { padding-left: 12px; color: #bebec5; line-height: 20px; text-shadow: 0 1px 0 #fff; } .str { color:#181; font-style:italic } .kwd { color:#369 } .com { color:#666 } .typ { color:#c40 } .lit { color:#900 } .pun { color:#000; font-weight:bold } .pln { color:#333 } .tag { color:#369; font-weight:bold } .atn { color:#939; font-weight:bold } .atv { color:#181 } .dec { color:#606 } .com{ color: #A62A00; } .typ{ color: #0A67A3; } .kwd{ color: #3B0470; }</style> <style>nav.sidebar { width: 300px; margin-top: 75px; box-shadow: inset 2px 0px 0px 0px #CCC; flex-grow: 0; flex-shrink: 0; } nav.sidebar #searchfield { width: 100%; background-color: #f5f5f5; border-radius: 4px; } nav.sidebar .sidebar-package-header { padding-left: 18px; padding-bottom: 5px; padding-top: 10px; position: relative; vertical-align: baseline; } nav.sidebar .sidebar-brand { font-size: 14pt; font-family: bitter; color: #333; } nav.sidebar .sidebar-brand:hover { text-decoration: none; color: #000; } nav.sidebar .package-version { font-family: bitter; margin-left: 8px; right: 10px; position: absolute; padding-right: 10px; } nav.navbar span.package-version { display: inline-block; font-size: 18px; line-height: 20px; color: #777; } nav.navbar .navbar-header { display: flex; flex-direction: row; align-items: center; } nav.navbar .dropdown.package-version { font-size: 18px; margin-right: 8px; } nav.navbar .dropdown.package-version button { background-color: rgba(255, 255, 255, 0); border-color: rgba(255, 255, 255, 0); transition: background-color 0.1s, border-color 0.1s, color 0.1s; color: #777; } nav.navbar .dropdown.package-version button .caret { opacity: 0.5; transition: opacity 0.1s; } nav.navbar .dropdown.package-version button:hover { border-color: #adadad; color: #333333; } nav.navbar .dropdown.package-version button:hover .caret { opacity: 1; } nav.navbar .dropdown.package-version button:active { border-color: #999; } nav.navbar .dropdown.package-version li a { gap: 5px; display: flex; flex-direction: row; justify-content: flex-start; } nav.navbar .dropdown.package-version .item-version { width: 50px; flex-grow: 0; flex-shrink: 0; } nav.navbar .dropdown.package-version .item-date { color: #666; margin-right: 25px; flex-grow: 1; } nav.navbar .dropdown.package-version .dropdown-menu { max-height: 385px; overflow-y: scroll; } nav.navbar .version-badge { font-size: 10px; padding: 2px 8px; background: #3872d7; color: white; border-radius: 3px; font-weight: bold; } .wrapper { display: flex; align-items: start; } .sidenav-l0 { padding-left: 0px; font-weight: bold; line-height: 1.5; margin-bottom: 0px; } .sidenav-l0 li { position: relative; display: block; list-style: none; } .sidenav-l0 a { position: relative; display: block; padding-left: 10px; padding-top: 0px; padding-bottom: 5px; } .sidenav-l0 a:hover, .sidenav-l0 a:focus { text-decoration: none; } .sidenav-l0 li > a:hover, .sidenav-l0 li.active > a { padding-left: 8px; border-width: 0px 0px 0px 2px; border-color: #000000; border-style: solid; background-color: transparent; } .sidenav-l0 li.active > a { font-weight: bold; } li p { margin-bottom: 0px; } .sidenav-l1 { font-weight: normal; padding-left: 0px; } .sidenav-l1 li > a { padding-left: 30px; } .sidenav-l1 li > a:hover, .sidenav-l1 li.active > a { padding-left: 28px; } .sidenav-l2 { font-weight: normal; padding-left: 0px; } .sidenav-l2 li > a { padding-left: 40px; } .sidenav-l2 li > a:hover, .sidenav-l2 li.active > a { padding-left: 38px; } .sidenav-l3 { font-weight: normal; padding-left: 0px; } .sidenav-l3 li > a { padding-left: 50px; } .sidenav-l3 li > a:hover, .sidenav-l3 li.active > a { padding-left: 48px; } .sidenav-l4 { font-weight: normal; padding-left: 0px; } .sidenav-l4 li > a { padding-left: 60px; } .sidenav-l4 li > a:hover, .sidenav-l4 li.active > a { padding-left: 58px; } .arrow-down { width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 4px solid #333; margin-right: 4px; display: inline-block; } .arrow-none { width: 0; height: 0; margin-right: 12px; display: inline-block; } .arrow-right { width: 0; height: 0; border-top: 4px solid transparent; border-bottom: 4px solid transparent; border-left: 4px solid #333; margin-right: 8px; display: inline-block; } .container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px; padding-top: 25px; } /*@media (min-width: 768px) { .container { width: 750px; } } @media (min-width: 992px) { .container { width: 970px; } } @media (min-width: 1200px) { .container { width: 1170px; } } @media (min-width: 1200px + 300px) { .container { width: 1170px + 300px; } }*/ body { font-family: "Source Sans Pro", sans-serif; font-size: 15px; } h1, h2, h3, h4 { font-family: "Bitter", serif; } span.file-location { color: #BDBDBD; } .sidebar { display: block; font-size: 80%; line-height: 50%; } .memberdef { position: relative; border-width: 2px; border-style: solid; border-width: 2px; border-color: black; box-shadow: 0px 2px 5px #CCC; -webkit-border-radius: 5; -moz-border-radius: 5; border-radius: 5; margin: 5px; padding: 5px; } .memberdef h3 { margin-top: 0px; padding-top: 3px; font-size: 20px; line-height: normal; } table.compound-view tr { margin: 4px; } table.compound-view tr td { font-size: 11px; } table.compound-view tr a { transition: background-color 0.1s; -webkit-transition: background-color 0.1s; display: block; border-radius: 5px; border-style: solid; border-width: 1px; border-color: #FFF; height: 60px; background-color: #EEE; text-align: center; padding: 5px; color: #222; } table.compound-view tr a b { color: #0D5484; } table.compound-view tr a:hover { text-decoration: none; background-color: #DDD; } video, .youtube-video { border-radius: 3px; margin: 5px; margin-left: auto; margin-right: auto; max-width: 100%; max-height: 800px; display: block; border: 1px solid #444; } img { border-radius: 3px; margin: 5px; margin-left: auto; margin-right: auto; max-width: 100%; max-height: 800px; display: block; border: 1px solid #444; } .borderless img { border: none; } code { display: block; white-space: pre; overflow: auto; margin-top: 5px; } /** Needs a bit of resetting since it can turn out basically anywhere in the DOM */ .tooltip { margin: 0px; font-size: 11px; font-weight: normal; font-style: normal; text-decoration: none; line-height: normal; white-space: normal; font-family: Hevetica, Arial, Sans-serif; text-shadow: none; } .tooltip p { display: inline; margin: 0px; } .label { margin-right: 2px; margin-left: 2px; } .empty-section { font-size: 0.9em; color: #BBB; } .compound-kind { color: #888; } .simplesect { border-style: solid; border-width: 0px 0px 0px 4px; padding-left: 5px; margin-bottom: 5px; } .simplesect h3 { font-size: 16px; line-height: normal; margin-top: 2px; margin-bottom: 3px; } .simplesect > p { margin-top: 0px; margin-bottom: 0px; margin-left: 14px; } .simplesect-return { border-color: #505050; } .simplesect-author, .simplesect-authors { border-color: #0BAA0B; } .simplesect-version { border-color: #0BAA0B; } .simplesect-since { border-color: #D48B0D; } .simplesect-date { border-color: #505050; } .simplesect-note { border-color: #15458C; } .simplesect-warning { border-color: #D40D0D; } .simplesect-pre { border-color: #505050; } .simplesect-post { border-color: #505050; } .simplesect-copyright { border-color: #505050; } .simplesect-invariant { border-color: #505050; } .simplesect-remark { border-color: #15458C; } .simplesect-attention { border-color: #D48B0D; } .simplesect-par { border-color: #505050; } .simplesect-rcs { border-color: #505050; } .simplesect-see { border-color: #0BAA0B; } .simplesect-deprecated { border-color: #303030; } .member-list .member-brief { font-family: monospace; } .member-list .member-brief .member-name { color: #337ab7; font-weight: bold; } .member-list .member-brief .member-paramlist { color: #5b5b5b; } .member-list .member-desc p { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } .member-prot { white-space: nowrap; } .member-list-item-header { padding-top: 5px; padding-bottom: 1px; cursor: pointer; } .member-list-item-header p { margin-top: 0px; margin-bottom: 0px; } .member-list-item-header:focus, .member-list-item-header:hover { background-color: rgba(0, 0, 0, 0.05); } table.member-list-section td { padding-top: 0.1em; padding-bottom: 0.1em; } table.member-list-section .member-desc { width: 100%; } table.member-list-section .member-desc, table.member-list-section .member-name, table.member-list-section .member-type { font-size: 0.9em; margin-bottom: 0px; padding-bottom: 0px; } table.member-list-section a, table.member-list-section p, table.member-list-section span { -webkit-margin-after: 0px; line-height: 1.5em; vertical-align: center; } .member-detailed { background: #EEE; border-bottom: 1px #AAA solid; } .member-detailed .member-name { font-weight: bold; } @media print { .member-detailed { display: block; } } .member-params-detail { margin-left: 30px; margin-top: 5px; } .member-params-detail td, .member-params-detail th { padding-left: 8px; padding-right: 8px; padding-top: 2px; padding-bottom: 2px; vertical-align: top; } .member-params-detail td p, .member-params-detail th p { margin: 0 0 5px; } .member-params-detail .param-name { color: #000; font-weight: bold; } .protection { display: inline; padding: 0.4em 0.6em 0em 0.6em; margin-right: 0.2em; font-size: 75%; font-weight: bold; line-height: 1; color: #ffffff; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: 0.3em; background-color: #fc20e6; } .member-side-prot { margin: 5px 5px 5px 0px; } @media (min-width: 908px) { .member-side-prot { margin: 0px; position: absolute; left: -75px; width: 70px; text-align: right; } .member-side-prot span { margin-bottom: 3px; } } .member-top-prot { position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; background: #EEE; display: none; padding: 5px 5px 5px 15px; line-height: 50%; border-top: 1px #AAA solid; } .member-top-prot .protection { display: inline-block; padding: 0.4em 0.6em 0.4em 0.6em; } .member-side-prot { line-height: 50%; } .member-side-prot .protection { display: inline-block; padding: 0.4em 0.6em 0.4em 0.6em; } .deprecated { text-decoration: line-through; text-decoration-color: #555; } .protection-public { background-color: #5cb85c; } .protection-private { background-color: #666666; } .protection-protected { background-color: #c1c1c1; } .protection-package { background-color: #7f3b2c; } .protection-abstract { background-color: #865add; } .protection-readonly { background-color: #f0ad4e; } .protection-static { background-color: #5bc0de; } a:focus { outline: none; } .member-list { list-style-type: none; padding-left: 0px; } .member-list ul { list-style-type: none; padding-left: 0px; } .member-depth-1 { padding-left: 32px; } .member-depth-2 { padding-left: 52px; } .member-depth-3 { padding-left: 72px; } .member-depth-4 { padding-left: 92px; } .member-depth-5 { padding-left: 112px; } .member-depth-6, .member-depth-7, .member-depth-8 { padding-left: 132px; } .header-version { position: absolute; right: 20px; top: 0; vertical-align: center; line-height: 50px; color: #777; } .inner-dropdown-menu { list-style: none; font-size: 14px; text-align: left; padding-left: 0px; } .inner-dropdown-menu > li > a { display: block; padding: 3px 20px 3px 40px; clear: both; font-weight: normal; line-height: 1.42857143; color: #333333; white-space: nowrap; } .inner-dropdown-menu > li > a:hover, .inner-dropdown-menu > li > a:focus { text-decoration: none; color: #262626; background-color: #f5f5f5; } .inner-dropdown-menu > .active > a, .inner-dropdown-menu > .active > a:hover, .inner-dropdown-menu > .active > a:focus { color: #ffffff; text-decoration: none; outline: 0; background-color: #337ab7; } .dropdown-menu a { height: 26px; } .dropdown-menu a .glyphicon { margin-right: 8px; padding-top: 1px; } .dropdown-menu a small { float: right; margin-left: 10px; line-height: 182%; } .search-dropdown-align { margin-left: 0px; min-width: 208px; } @keyframes shadowPulse { 0% { box-shadow: 0px 0px 0px rgba(71, 91, 118, 0.7); } 10% { box-shadow: 0px 0px 0px rgba(71, 91, 118, 0.7); } 50% { box-shadow: 0px 0px 10px rgba(71, 91, 118, 0.7); } 100% { box-shadow: 0px 0px 0px rgba(71, 91, 118, 0.7); } } .shadowPulse { animation-name: shadowPulse; animation-duration: 1s; animation-iteration-count: 2; animation-timing-function: ease; } #banner { width: 100%; display: block; text-align: center; background: #f0af0b; padding-top: 7px; color: #000; overflow: hidden; padding-bottom: 6px; } #banner a { color: #000; text-decoration: underline; } h1 { margin-top: 0px; } table.table-filled { border: 1px solid #e1e1e8; border-radius: 3px; border-collapse: separate; background-color: #f7f7f9; } table.horizontalAlternative2D3D th { text-align: center; } table.horizontalAlternative2D3D th.Alt2D { background: #6599e7; } table.horizontalAlternative2D3D th.Alt3D { background: #ed8585; } table.horizontalAlternative2D3D td { padding: 10px; width: 50%; vertical-align: top; } table.horizontalAlternative2D3D td.Alt2D { background: #6599e755; } table.horizontalAlternative2D3D td.Alt3D { background: #ed858555; } .inspector-field { margin-left: 20px; } .prettyprint { margin-bottom: 10px; } /*# sourceMappingURL=style.css.map */ </style> <style>@font-face { font-family: 'Bitter'; font-style: normal; font-weight: 400; src: local('Bitter Regular'), local('Bitter-Regular'), url(https://fonts.gstatic.com/s/bitter/v13/rax8HiqOu8IVPmn7f4xs.ttf) format('truetype'); } </style> <script type="text/javascript"> var pathToRoot = ""; var packageVersion = "4.2.19"; var packageBranch = "master_Pro"; var documentation_collection_base_url = "https://arongranberg.com/astar/documentation"; var packageIsBeta = false; </script> </head> <body> <div id="banner"></div> <div class="container"> <div class="wrapper"> <nav class="sidebar hidden-print hidden-sm hidden-xs"> <ul class="sidenav-l0"> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/changelog.html'><span class='arrow-none'></span>Changelog</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/beginner.html'><span class='arrow-down'></span>Get Started</a> <ul class='sidenav-l1'> <li class='active'> <a href='https://arongranberg.com/astar/documentation/stable/getstarted.html'><span class='arrow-down'></span>Get Started With The A* Pathfinding Project</a> <ul class='sidenav-l2'> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/custom_movement_script.html'><span class='arrow-none'></span>Writing a movement script</a> </li> </ul> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/getstarted2.html'><span class='arrow-right'></span>Using navmeshes</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/inspector.html'><span class='arrow-none'></span>The A* Inspector</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/graphtypes.html'><span class='arrow-none'></span>Graph Types</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/architecture.html'><span class='arrow-none'></span>Architecture overview</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/migratingfromunity.html'><span class='arrow-none'></span>Migrating from Unity Navigation</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/errormessages.html'><span class='arrow-none'></span>Error messages</a> </li> </ul> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/agentmovement.html'><span class='arrow-right'></span>Agent Movement</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/graphgeneration.html'><span class='arrow-right'></span>Graph Generation</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/deploying.html'><span class='arrow-right'></span>Deploying</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/misc.html'><span class='arrow-right'></span>Misc</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/deprecated.html'><span class='arrow-none'></span>Deprecated List</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/examples2.html'><span class='arrow-none'></span>Examples</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/groups.html'><span class='arrow-none'></span>Groups</a> </li> <li class=''> <a href='https://arongranberg.com/astar/documentation/stable/classes.html'><span class='arrow-none'></span>Classes</a> </li> </ul> </nav> <div style="flex-grow: 1; min-width: 0;"> <nav class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header" id="navbar-header"> <a class="navbar-brand" href="index.html">A* Pathfinding Project</a> <div class="dropdown package-version"> <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> 4.2.19 <span class="caret"></span> </button> <ul class="dropdown-menu" id="package-version-alternatives"> <li><a href="https://arongranberg.com/astar/documentation/stable/#">4.2.19</a></li> </ul> </div> </div> <div class="collapse navbar-collapse"> <ul class="nav navbar-nav"> </ul> <ul class="nav navbar-nav navbar-right"> <li> <form id="searchform" style="display: none;" class="navbar-form"> <div class="form-group"> <input type="text" autocomplete="off" id="searchfield" class="form-control" placeholder="Search"> </div> </form> <ul id="search-dropdown" class="dropdown-menu search-dropdown-align"> <li><a href="https://arongranberg.com/astar/documentation/stable/#">Action</a></li> <li><a href="https://arongranberg.com/astar/documentation/stable/#">Another action</a></li> <li><a href="https://arongranberg.com/astar/documentation/stable/#">Something else here</a></li> <li role="separator" class="divider"></li> <li><a href="https://arongranberg.com/astar/documentation/stable/#">Separated link</a></li> </ul> </li> </ul> </div> </div> </nav> <div class="row"> <article class="col-md-12"> <h1>Get Started With The A* Pathfinding Project</h1><div class='alert alert-danger' role='alert'>This is an excerpt from the full documentation. You can view the full documentation <a href='https://arongranberg.com/astar/documentation/stable'>here</a>. Most links on this page will just take you to the full documentation.</div> <p>Get Started with the A* Pathfinding Project. </p> <p>Pathfinding is all about finding the best path between point A and B. This is what the A* Pathfinding Project does, in this tutorial you will learn how to set up the project in a new scene and get a simple AI moving while avoiding obstacles.</p><p>This AI you will write will not be very advanced, it is just the minimal amount of code needed to get moving and following a path. If you want a more advanced AI, you can either extend the script you will write in this tutorial or use (or extend) the AIPath or <a href='https://arongranberg.com/astar/documentation/stable/richai.html'>RichAI </a> scripts included in the package (see part 2 for basic usage of the RichAI component).</p><h3 id='downloading' >Downloading</h3><p>The first thing you need to do, if you haven't done so already, is to download the A* Pathfinding Project.</p><p>The project can be downloaded from <a href='https://www.arongranberg.com/astar/download' >here</a>. You can either download the free version with some limited features (but still very powerful) or buy the pro version which has more cool stuff included. If you want, you can explore the different example scenes in the project before you start with the next section.</p><h3 id='usingIphone' >Deploying for Mobile/UWP</h3><p>Depending on which platform you are building for, you might want to read this page first: <a href='https://arongranberg.com/astar/documentation/stable/iphone.html'>Deploying for mobile/uwp</a></p><h3 id='errors' >Troubleshooting</h3><p>At this stage, if you are getting any compiler errors from the code, you can first check the <a href='https://arongranberg.com/astar/documentation/stable/upgrading.html'>Upgrade Guide</a>.</p><p>If you are still getting errors, take a look at the forums (see <a href='https://forum.arongranberg.com' >https://forum.arongranberg.com</a>) to see if anyone else has the same problem, or post a new question there.</p><h3 id='overview' >Overview</h3><p>There are several different parts of the package. Broadly, they can be grouped into:<ul><li><p>Movement scripts, which tell the agent how to move and where it should move (see <a href='https://arongranberg.com/astar/documentation/stable/movementscripts.html'>Movement scripts</a>).</p> </li><li><p>Graphs, which describe where an agent can move (see <a href='https://arongranberg.com/astar/documentation/stable/graphtypes.html'>Graph Types</a>).</p> </li><li><p>Temporary obstacles, which cut holes in the navmesh or update it in other ways (see <a href='https://arongranberg.com/astar/documentation/stable/graphupdates.html'>Graph Updates during Runtime</a>).</p> </li><li><p>Off-mesh links, which allow an agent to move or jump between otherwise disconnected parts of the navmesh (see <a href='https://arongranberg.com/astar/documentation/stable/nodelink2.html'>NodeLink2</a>).</p> </li><li><p>Path modifiers, which post-process paths to for example smooth them (see <a href='https://arongranberg.com/astar/documentation/stable/modifiers2.html'>Using Modifiers</a>).</p> </li></ul> </p><p>What you will primarily interact with is the movement script and the <a href='https://arongranberg.com/astar/documentation/stable/seeker.html'>Seeker</a> component. Both need to be attached to an agent that needs to move. The movement script controls how the agent should move, its velocity, rotation, and so on, as well as what the current destination of the agent is and when it should recalculate its path. The <a href='https://arongranberg.com/astar/documentation/stable/seeker.html'>Seeker</a> component is controlled by the movement script. The movement script tells it to calculate a path, and the Seeker will chug along and later (possibly in a later frame) return the result to the movement script.</p><p>The <a href='https://arongranberg.com/astar/documentation/stable/astarpath.html'>AstarPath</a> component holds all the graph data in a scene. It follows the <a href='https://en.wikipedia.org/wiki/Singleton_pattern' >singleton pattern</a>, so there should only be one such component in a scene. It may contain one or many graphs, of the same or different types. Each graph, in turn, contains and manages all its nodes (of which there may be many, sometimes up to millions).</p><p>There are a number of included movement scripts in the package (e.g <a href='https://arongranberg.com/astar/documentation/stable/aipath.html'>AIPath</a>, <a href='https://arongranberg.com/astar/documentation/stable/richai.html'>RichAI</a>, <a href='https://arongranberg.com/astar/documentation/stable/ailerp.html'>AILerp</a>). You may use one of the included ones, or you can write your own (see <a href='https://arongranberg.com/astar/documentation/stable/custom_movement_script.html'>Writing a movement script</a>). You can find a comparison of the built-in movement scripts here: <a href='https://arongranberg.com/astar/documentation/stable/movementscripts.html'>Movement scripts</a>.</p><h3 id='video' >Video Tutorial</h3><p>If you prefer a video tutorial instead of a text tutorial. Here is a video for you. The video tutorial takes a more high-level approach, and you will learn how to use the built-in movement scripts instead of writing a custom one. Since the video and text tutorials cover slightly different ground, it is not a bad idea to take a look at both.</p><p> <iframe class="youtube-video" width="690" height="400" src="https://www.youtube.com/embed/5QT5Czfe0YE" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p><p>You can also take a look at the excellent tutorial by Gabriel Williams (Unity Cookie) in part 8 of the series on making a Tower Defence game: <a href='https://www.youtube.com/watch?feature=player_embedded&v=PUJSvd53v4k' >https://www.youtube.com/watch?feature=player_embedded&v=PUJSvd53v4k</a> The video covers most things which will be discussed in the text tutorial.</p><h3 id='newscene' >New Scene</h3><p>Create a new scene, name it "PathfindingTest". Now let's create something which an AI could walk on and something for it to avoid: add a plane to the scene, place it in the scene origin (0,0,0) and scale it to 10,10,10.</p><p>Create a new layer (Edit → Project Settings → Tags) named "Ground" and place the plane in that layer. Now create some cubes of different scales and place them on the plane, these will be obstacles which the AI should avoid. Place them in a new layer named "Obstacles".</p><p>Your scene should now look something like this: <img class="tinyshadow" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxsAAAGPCAIAAAC71FriAAAWa2lDQ1BJQ0MgUHJvZmlsZQAAeAHVWFdUFE23re6JMGSGnHPOOeecc5Sc40gQAZUgogQFEREBQUDJiqIEURAQREVJIiigEkREQRFFQEBuo8vv/x7u/3Zfbq3VPXtO1Zyu6XOqap8NAHOhN4kUBtMAEB4RE2VrpMvt7OLKjZsCaEAGyAEMeL19o0k61tbm4L+2H+MA2u98LrHv678O+987aP38o30BgKyRbh+/aN9wBN9G8KovKSoGAPgKgofjYkgIRiEXIEYhE0TwqX0c+AeX7GOfP/jG7zH2tnrImF4A8BTe3lGBABCGETv3Id9AxAdhFQAsXYRfcAQAdGgEa/oGefsBwKyPjBEPD4/cxyQEC/v8y0/gv7C3t88/Pr29A//Bf/4L8kvkwfrB0aQw7/jfX/4vb+Fhscj7+t3okDtFRJjlfmzwyPXBz1vf7C8mhf2O2W+7f4SD3V97hI+l1V8cEGVo+xeTYnT/ha3t/9oTgvQs/2L/aIN//IR4m1r/tUfF2jr8xdGH7Az+4oQge6e/2M9f/x97QLChyV97cIzJP88KjTT7Zw4gGFgAb+Ab4394P+5AL5IUHxUcGBTDrYNkmb84t0mEr6Q4t6y0jMx+9/+btr++/kz2m+3vdQMxDv3HFiUGgJoEkvd0/7F5Ie+ktQoAGon/2PhdAKCUBKDrs29s1KE//pBUBgCDrFpqQAQsgBPwAWEgAWSBIlAD2sAAmAIrYA9cgAfwBUEgHESBOHAEpIB0kAVywXlQBMpAJagB10ATaAX3QDd4CAbAMHgBpsAMWACfwCr4AbYhCMJBlBA9xAJxQQKQGCQLKUOakAFkDtlCLpAXFAhFQLHQEeg4lAXlQUVQOVQL3YTuQN3QY2gEegXNQkvQGvQTRsEUMBHmgAVhKVgZ1oHNYHv4ABwIH4QT4DT4DFwIV8ANcAvcDQ/AL+AZ+BO8jgIoAooRxYOSQCmj9FBWKFdUACoKdQyViSpAVaCuo9pR/ajnqBnUMmoLjUXTo7nREmg1tDHaAe2LPog+hs5GF6Fr0C3oXvRz9Cx6Ff0LQ4lhx4hhVDEmGGdMICYOk44pwFRhmjF9mBeYBcwPLBbLiBXCKmGNsS7YEGwiNht7CduI7cKOYOex6zgcjgUnhtPAWeG8cTG4dNxFXAPuPm4Ut4DbxBPwXHhZvCHeFR+BT8UX4OvwnfhR/CJ+m4yGTIBMlcyKzI8sniyH7ApZO9kQ2QLZNjktuRC5Brk9eQh5Cnkh+XXyPvJp8m8EAoGXoEKwIQQTkgmFhBuER4RZwhYFHYUohR6FO0UsxRmKaoouilcU3ygpKQUptSldKWMoz1DWUj6gfEO5SUVPJUllQuVHlURVTNVCNUr1mZqMWoBah9qDOoG6gPoW9RD1Mg0ZjSCNHo03zTGaYpo7NBM067T0tDK0VrThtNm0dbSPaT/Q4egE6Qzo/OjS6CrpHtDN06Po+ej16H3pj9Nfoe+jXyBiiUJEE2IIMYt4jThIXGWgY5BncGQ4zFDM0MEww4hiFGQ0YQxjzGFsYhxn/MnEwaTD5M+UwXSdaZRpg5mNWZvZnzmTuZH5BfNPFm4WA5ZQlrMsrSyvWdGsoqw2rHGspax9rMtsRDY1Nl+2TLYmtkl2mF2U3ZY9kb2S/Sn7OgcnhxEHieMixwOOZU5GTm3OEM58zk7OJS56Lk2uYK58rvtcH7kZuHW4w7gLuXu5V3nYeYx5YnnKeQZ5tnmFeB14U3kbeV/zkfMp8wXw5fP18K3yc/Fb8B/hr+efFCATUBYIErgg0C+wISgk6CR4UrBV8IMQs5CJUIJQvdC0MKWwlvBB4QrhMRGsiLJIqMglkWFRWFRBNEi0WHRIDBZTFAsWuyQ2Io4RVxGPEK8Qn5CgkNCROCRRLzEryShpLpkq2Sr5WYpfylXqrFS/1C9pBekw6SvSUzJ0MqYyqTLtMmuyorK+ssWyY3KUcoZySXJtcl/lxeT95UvlXyrQK1gonFToUdhVVFKMUryuuKTEr+SlVKI0oUxUtlbOVn6kglHRVUlSuaeypaqoGqPapPpFTUItVK1O7YO6kLq/+hX1eQ1eDW+Nco0ZTW5NL83LmjNaPFreWhVac9p82n7aVdqLOiI6IToNOp91pXWjdJt1N/RU9Y7qdemj9I30M/UHDegMHAyKDN4Y8hoGGtYbrhopGCUadRljjM2MzxpPmHCY+JrUmqyaKpkeNe01ozCzMysymzMXNY8yb7eALUwtzllMWwpYRli2WgErE6tzVq+thawPWt+1wdpY2xTbvLeVsT1i229Hb+dpV2f3w17XPsd+ykHYIdahx5Ha0d2x1nHDSd8pz2nGWcr5qPOAC6tLsEubK87V0bXKdd3NwO2824K7gnu6+/gBoQOHDzz2YPUI8+jwpPb09rzlhfFy8qrz2vG28q7wXvcx8SnxWfXV873g+8lP2y/fb8lfwz/PfzFAIyAv4EOgRuC5wKUgraCCoOVgveCi4K8hxiFlIRuhVqHVoXthTmGN4fhwr/A7EXQRoRG9kZyRhyNHSGKkdNLMQdWD5w+uRplFVUVD0Qei22KICJF5GisceyJ29pDmoeJDm3GOcbcO0x6OOPw0XjQ+I34xwTDhaiI60Tex5wjPkZQjs0d1jpYfg475HOtJ4ktKS1pINkquSSFPCU15liqdmpf6/bjT8fY0jrTktPkTRifq06nSo9InTqqdLDuFPhV8ajBDLuNixq9Mv8wnWdJZBVk72b7ZT07LnC48vXcm4MxgjmJOaS42NyJ3/KzW2Zo82ryEvPlzFuda8rnzM/O/n/c8/7hAvqDsAvmF2AszheaFbRf5L+Ze3CkKKnpRrFvcWMJeklGyccnv0mipdun1Mo6yrLKfl4Mvvyw3Km+pEKwoqMRWHqp8f8XxSv9V5au1VaxVWVW71RHVMzW2Nb21SrW1dex1OfVwfWz9UoN7w/A1/Wtt1yWulzcyNmbdADdib3y86XVzvMmsqeeW8q3rtwVulzTTN2e2QC3xLautQa0zbS5tI3dM7/S0q7U335W8W32P515xB0NHTid5Z1rn3v2E++tdpK7l7sDu+R7PnqkHzg/Gem16B/vM+h49NHz4oF+n//4jjUf3Hqs+vvNE+UnrgOJAy1OFp83PFJ41DyoOtgwpDbUNqwy3j6iPdI5qjXY/13/+cMxkbOCF5YuRcYfxlxPuEzMv/V5+eBX26uvkocntqeRpzHTma5rXBW/Y31S8FXnbOKM40zGrP/t0zm5uat53/tO76Hc7C2nvKd8XLHIt1n6Q/XBvyXBp+KPbx4VPpE/by+krtCsln4U/3/6i/eXpqvPqwteor3tr2d9YvlV/l//es269/uZH+I/tjcxNls2aLeWt/p9OPxe343ZwO4W7Irvtv8x+Te+F7+2RvKO8f3MBFHKHAwIAWKtGeALCFegR/ktO9Yf//h6B0GOEtMMIpgI64DLECV2CVeBPqGvoFIwv1hHnjPchSyUvIfRRbFBxUFvRHKVtpBun32EgMoozqTBbsXiwxrBls1/luM85zjXPvcLzlXeVb4l/TmBCcECoU7hRpFw0TyxFnCThIWklpSktLSMsyyHHIE+lgFbYUvyk9EZ5RKVHtUmtQj1PI0kzXMtd21RHUZdPj1pvS3/W4LHhDaMC4yMm3qYGZsLmBPNliyHLW1aF1sk24bbudub2Gg4SjuxO5E4bzvMuQ6533arczx5I9PD3tPXS81b2kfEV9xPy5wvgDGQKog0mD4FCNkO/hC2ET0eMRQ6Thg++iHodvRizFrsbhztMG8+WwJcodkT2qPIxzSTtZO0U9VT546JpXCfo0jHpmyeXTk1mDGTey6rPLj6ddeZITmRu4Fm/vIBzoflR5xMKUi9kFOZcPF9UVFxWUnmpurS+7NbljvKBiqnKz1fhKoZqkRqNWqs6n/rYhpPXCq/XN3bcGLm52LR7m9gs1qLT6tQWdie5PR/J3faOoc7FLky3WI/rg9zeJw9x/QaPUh/ff7LzVPlZ1GD90NwI/aju84ixCy/uj79/SfFKdtJp6sh0+euHb5ZnGGb15mLn69/NvWdZtPpwYunOx8/LvCv2n1O+XF29+7Vrrflb+feT6yE/zDckN2k217bGfrZsF+4k7Lr90tjj3NtD4k8BlEEGBEMxMAauRnmihTEAM4d9g5vAz5H9IMAUXJTaVN7UqTQVtN10k/RLxHVGFBOemZmFn1WezZjdmcOfM4KLxB3M481rw6fFLyHALAgEPwmNCd8VqRA9JRYpbi+hLMkhBUstSY/KdMjWyOXLpyiEKTooaSoLq9CorKtOqXWrV2lkaUZq2Wor6DDpbOm+0mvTv2BwyNDBSNaYyvijSZ/pZbNEcwcLKUu85bxVl/VlmzTbYDsbeyUHLkes44rTqHOrS7Frkpuvu9EBUQ9KjzXPSa+H3s0+1b4lfrn+JwLiAyOCvIPtQwxDlcNEwtkiKCPhyC3S94NrUd+jN2N+HYKRTCDEUyXQJNIfYTjKeIwxiZhMk4JP2U1dPT6bNnKiK73x5KVT2RnxmYFZ9tk6pyXPsOdQ5ILczbPreevnNvN3C6ALmEKyi5RFNMV0JcRLTKWsZZyXBculK7Qqra/4XI2pOll9saau9m7dQP1Uw8drPxvJb7DflGoyuOV+O7o5q6Wy9W7b6J2l9r17jB2Sncb3g7pyuu/3bPWq9SU9fPiI8NjmyYWBqWdcgz5DlcOzo+zP7ceyXnSPb7wUe+U5eW7q0fTOG7m34TMNs2vz2u/yFt4vqn3IXXr3SWk5Y+XVF95Vn6+Fa73fPqxjf/BsqG06bEX8PLldttO6O/Rr8Xf8CUAGHAZzCHefgANQeFQrOg5jiOXBYfEQfoMcIqApWCllqYyoA2hSaMvoWulHiO8Y9piYmJVZHFnj2ArZmzmecE5yzXLP8EzyPuPr5m8SqBDME0oRJokcEDUWkxPnksBJfJWckuqTbpQpkc2Qi5MPULBV1FQSUaZX3lFZUH2mdlu9WCNF01/LRFtchwphGs/06vUzDAINDYy4jbaNx01umGaY+ZirWdBZLFl2WxVbx9k42irZsdjt2L916HascDru7Oei78rnBrvNuHceKPFI9HT30vYW9KHx2fX96PfSvy/gZmBpUEZwTIhnqEmYXDhHBD7ie+Q8afzg06iH0T0xnbF3D7XENR2+Fl+TUJFYfCT/6OljaUnxyaEpLqn6xyXSGNJ2TsynPz7ZeCofyQGPLN1swdPkp7+ceZHTmVt/tjTv/Lmc/Kzz6QUpFxILYy9GFgUVe5U4X7IpNS0zuKxfblhhXulwxetqaNWh6pSarNqCusv1dQ23r3Ve7298fmPm5pemvds0zTwtsq16bfZ3/NsP3U2/V9BR03nv/suu3R7JBwG9V/re9ws/Cnnc8GTlqcSz8MGGoY8jAqOezy+MDY5jJlRfkl5VTb6epntt+ibt7YNZyjnP+fYFtvfHFueXjD42LNOuHP78dtXka/M33u+563sb4ZvTP023W3cFfuXtx/+PDrJ/JmAVAbiyAYDjSQAskdqyXBAAAaTepyQCYE0JgL0KgDGcAHrTBqAnGv+cH1ik3mQB/EAaaCAVpgsIRKrKU+AiqAf3wXOwBPYgJkgGqQ1DoAyoHnoGrcFMsCbsD+fAd+D3SC1njDqKakatInVaOLoR/R2jhknDDGM5sZHYbhwjLgzXg2fDx+JHyKTJ8sg2yD3I+wnyhEoKIkUGJaCMp1yniqFap46ngWiyaVlpG+i06V7SRxNpiU0MTgy7jFeZLJl+MJeyGLN8Z61kc2AnsPdyJHNqcUFcD7nP8Ljw8vN+5mvlTxIwFqQXnBG6KXxCxE1UQYxObE38hUS7ZLnUKelwGWtZWTmi3Ib8tEKv4nWlYuVMlaOqUWoh6v4avpqBWiTtZJ0C3Zt6w/rfDFmM9IxJJpdNx8wJFgaWqchOtWuraBdqf8lh0HHPWdYl0LXMbeoAq4eb52WvDz6yvsf8HgfQB7oGlQcvhkqGxYX3RFKTPA82ReNiPGLb4hgOR8c/T5RDsnE9yTm5I1XgeE7abnr4ydkMp8zhbLPT/Tk6uS15/Oey8j8VGF0oL/xZ5FB88xJ1aWTZSLlCRckVLLLvvK/xqJ2u92xYvB5zA3Wz4JbY7QctB1p/3im6q37vbWdqF393z4MDvesPsx/xPb434Px0Y7BwWH1k7nnmCwXkpKmYJE07vfGayZobWRBaTF9aWrb63PaV/1v+D9xm0s/t3cTf+wcO0AJ2RGlQAHrABlFsDoJUREuoQfSDEfABiT4LJAdZQ5FQLtQETUA7MB9S58fAZfBTeBup4n1RxagJNCPaCV2MnsOIYg5herEM2CBsJ44JF4Ubwkviz+BXyezJ2sn5yHPIfxEiCfMUbhQvKG0pR6kcqKao/ahXaZJo6Whr6HToXtMfJXIT+xkOMnIyDjEdZ1ZlXmOpZ/VlY2cbZz/HYctJRPapSm4SjzYvPe8SXw9/qUCCoIOQlDCZ8JxIp2iJ2FFxLwkjSRkpTmkqGUjmh+yK3Dv5SYVBxW6l28rVKpdUz6vlqp/RyNHM0yrULte5ptuhN6q/YkhlpGDsY3LO9JE5sFC3TLDqsIFtzewK7N85yjmlOA+40rrZuxcceOnJ5uXjXe+z4WfoXxiwEmQQXBqyFWYX3hAJkxwP1kXtxTjF3oijOBwWP5goe6ToGCYpKnkm1ep45wmJ9JJThIwjmV+y/U5P5zjmPs+zPTd23rHgVaHLxbFi45JbpYxlMZeHK8QqT15ZqNKvrqolq4usn7imc73xBvfN87dobp9poW0tuMPVXntPsaPvvlPXx56kXsa+hn6dR6NPvAY+PAsZ/DgcNLL4PGBscTx44vOr2Mlf05lv2N7emnWcx77rfZ/7Ifij+bLiZ75V4hr+29765sb3rW/b67tbv+OPB/SAG0giq98CUZYif0e/Dln7L8AKhEEUIlXIEVGD8qEW6CUSfW7YEA6Hz8P3Ea7JijJDJaPaUN/QsugoRJPZxuhhTmMmsaLYI9hhnDAuBfcar4Yvxu+QeZH1kUuSXyTgCIcJyxQ+FNOUzpQTVK5UM9TB1Os0J2hZaG/QmdIt0p8iShDHGJIZpRhnmQqZbVgoWB6xprHpsO2xd3GkcZpzMXEtcLfyZPP68+nw8wigBN4LPhKqE84SCRO1FlMS55GgkvgluYYwlXmZGdkZuVn5eYV3inNKM8qvVaZUp9Vm1Bc1VjV3tSl0uHQV9Cz0QwxOGzYbvTfhMHUxKzafsRSxirXus2WxI9kPOIo4ZTmvuFq5NRxAezh71nnt+tj5NvjjAwIDnwRLhxSFYcNjIt6RbA92RgvFnI5di3M+3JUgmnjhKO5YfNJKin/q2zS3E5MnXU69zHTKGj/teOZlrvvZOYR3/ihIKyRerC5WLxkp9S/7Wh5d8emK29WH1ZI1+bU79QENI9e1Ghtvcjfl3yY0p7WCtuR21N3MDobOii6Z7gcPnHqXHx5/xP64dcDu6cpg+jDryNXnImPV49wTBa8oJlOmNl+T3izN+M2+nXd9N/HebnFoyexj/7LeStcXjdV7a+rfOta1f/Rumm6NbrvtLPyK2o9/dICc7P7pASAKXUR+fLO39w05N3B5AOye3dvbrtjb261Eio1pRKsM+6Ot7w/G0gBQcm8fPQyKSN7//Hf7H/A1VgBBufPdAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVR4Aezda9AtVXkn8JeLAnITRRCCXAMiotyOcpGLAUYSE+MQYpKZcYqqaGUuIanMTFU+SDIxyWSqZjKTD6l8mPjFMdYYHQMmjtdEFEUFhosIaCAM4cCBwyXi4XqAw21+51057T699+7du7t37+7eT9ep9/Tuva7/tXavf/+fZz29y0UXXbQWRyAQCAQCgUAgEAgEAoFADQR2rZE3sgYCgUAgEAgEAoFAIBAIbEcgGFXMg0AgEAgEAoFAIBAIBOoiEIyqLoKRPxAIBAKBQCAQCAQCgWBUMQcCgUAgEAgEAoFAIBCoi0AwqroIRv5AIBAIBAKBQCAQCASCUcUcCAQCgUAgEAgEAoFAoC4CwajqIhj5A4FAIBAIBAKBQCAQCEYVcyAQCAQCgUAgEAgEAoG6CASjqotg5A8EAoFAIBAIBAKBQCAYVcyBQCAQCAQCgUAgEAgE6iIQjKougpE/EAgEAoFAIBAIBAKBYFQxBwKBQCAQCAQCgUAgEKiLQDCqughG/kAgEAgEAoFAIBAIBIJRxRwIBAKBQCAQCAQCgUCgLgLBqOoiGPkDgUAgEAgEAoFAIBAIRhVzIBAIBAKBQCAQCAQCgboIBKOqi2DkDwQCgUAgEAgEAoFAIBhVzIFAIBAIBAKBQCAQCATqIhCMqi6CkT8QCAQCgUAgEAgEAoFgVDEHAoFAIBAIBAKBQCAQqItAMKq6CEb+QCAQCAQCgUAgEAgEglHFHAgEAoFAIBAIBAKBQKAuAsGo6iIY+QOBQCAQCAQCgUAgEAhGFXMgEAgEAoFAIBAIBAKBuggEo6qLYOQPBAKBQCAQCAQCgUAgGFXMgUAgEAgEAoFAIBAIBOoiEIyqLoKRPxAIBAKBQCAQCAQCgWBUMQcCgUAgEAgEAoFAIBCoi0AwqroIRv5AIBAIBAKBQCAQCASCUcUcCAQCgUAgEAgEAoFAoC4CwajqIhj5A4FAIBAIBAKBQCAQCEYVcyAQCAQCgUAgEAgEAoG6CASjqotg5A8EAoFAIBAIBAKBQCAYVcyBQCAQCAQCgUAgEAgE6iIQjKougpE/EAgEChB4zWteU/BtfBUIBAKBwGAQ2H0wPYmOBAKBQKcQwKXe/va3/+RP/uQPf/jD/7d+pJNONTIaEwgEAoFAUwjsctFFFzVVVpQTCAQCgQAEMi41jkYiVf/3//5fFGv827gSCAQCgUB/EQhG1d+xi5YHAl1EgCjlmNky1CqxqyRfzUwfCQKBQCAQ6DgCwag6PkDRvECgNwiU5FLj/cmoFe1q/Nu4EggEAoFALxAIRtWLYYpGBgKdRuDHf/zH//k//+f1ndBRK/1MNsEwC3Z6yKNxgUAgMIZAMKoxSOJCIBAIlEagKS41XmEIV+OYxJVAIBDoMgLBqLo8OtG2QKC7CFCk6FIYVQtNxK5CuGoB56giEAgE6iAQjKoOepE3EFhFBHApLlMiI7Tf+Uy4YhNMJsL22xA1BgKBQCAwEYFgVBNhiYuBQCAwAYGCsAgTUi/4UmJXEYhhwTBH8YFAIFAWgWBUZZGKdIHAKiPQKS6VGwjUyoFa+Rv+7Dlw4mMgEAi0hkAwqtagjooCgb4iUDksQvsdTqQKr0Kw2q89agwEAoFVRiAY1SqPfvQ9EJiBQI+4VK4n22WrHW+/CeEqB058DAQCgUUgEIxqEahGmYFA7xFIvueMfb3vydpaRq1CuBrAaEYXAoHOIhCMqrNDEw0LBJaDwOJCTC2nPyO1olY+JWf2EK5GgInTQCAQaACBYFQNgBhFBALDQIAi1VqIqaUjFsLV0ocgGhAIDAyBYFQDG9DoTiBQBYGV4lLjACV2lbSr8W/jSiAQCAQCZRAIRlUGpUgTCAwWgS6HRWgf9Ey4SiftNyBqDAQCgf4iEIyqv2MXLQ8EaiEQXKoYvhCuivGJbwOBQCCHQDCqHCDxMRAYPgLBpeYaY9QqsSvO7OHPPhd0kTgQWCkEglGt1HBHZwOBtf6GmOrC4GXUKgIxdGE4og2BQKcQCEbVqeGIxgQCC0QguFSD4KJWSotADA1CGkUFAn1HIBhV30cw2h8IzEZgwCGmZnd+8SlCuFo8xlFDINADBIJR9WCQoomBQGUEuExddtll/lYuITLOhQB2FcLVXIhF4kBgMAgEoxrMUEZHAoGdEMCiVidc504978aHTLjizJ5MhN1oV7QiEAgEFoVAMKpFIRvlBgLLQgCXSm/lW1YDot4cAoldRQTRHCzxMRAYGALBqAY2oNGdlUYAl3r729+OTq00Ch3uPGrlQK38jUAMHR6oaFogUAWBYFRVUIs8gUDXEAgu1bURmdmeRKrwKgRrZuJIEAgEAt1HIBhV98coWhgIzEAgwiLMAKjbX2+XrdYlK+zK0e3GRusCgUBgKgLBqKZCE18EAt1HILhU98dorhZm1CqEq7lwi8SBQBcQCEbVhVGINgQCcyOQfM8Z++bOGRn6gABqpZnJmT2Eqz6MWLQxEFgLRhWTIBDoGQIRrrNnA1a7uSFc1YYwCggE2kAgGFUbKEcdgUAjCFCkIsRUI0j2t5DErpJ21d9eRMsDgUEiEIxqkMManRoaArhUMvMNrWPRn6oIZMJVOqlaTOQLBAKBxhAIRtUYlFHQiiDw2te+Vk9RnAMOOMD5yy+/7Nxx7bXX3nTTTY2DoOQIMdU4qgMrMISrgQ1odKenCOze03ZHswOBxSGAJ61zpO1/MsKkOg5MBZVeffXVBd9W+Cq4VAXQVjNLmiqYN2qV2NV6HIYIxLCa0yF6vTQEglEtDfqouFMIJP8kK1PlVt1+++0vvfTSrrvuWrmELGNwqQyKOJkLATPHkah/Rq0iEMNcGEbiQKAyAsGoKkMXGQeFgOf7mv35wQ9+sP/++9dnVBFiquZARPaEAGplVjvMqIxdRSCGmB6BwOIQCEa1OGyj5N4gYNVppK1bt25FqioXFVyqMnSRsQCBdd0qhKsChOKrQKAZBIJRNYNjlLLiCPzt3/4tBFj9quEQIaaq4Ra55kUgE66YuQlXEUF0XgAjfSBQgEAwqgJw4qtVQaDY5bwMCv/wD/8g2Ysvvvj888+/4hWvKJMlpbHCXXbZZf6WzxIpA4FGEDDryKKKGrUJOm+k8CgkEFhBBIJRreCgR5fzCNRnVFmJ5RmV9SzCdWa4xckSETAV1x2uttu+E7uKCKJLHI6our8IBKPq79hFyxtDoL5ElKx+GoRRzWxW0gaact7KqnvZcrh162tf9arsSpwEAvMikLGrTLhKJ/OWE+kDgRVEIBjVCg56dHknBJplNsWuVGm5SqaWnRrRxIdd1tYSnXpxbe2xoFZNQLrKZWTUCggZu4pADKs8JaLvMxEIRjUTokgQCMxGINOoprlSLZRL5dq32wi1evyZZ16z1165BPExEJgLgYxdRSCGuXCLxKuGQDCqVRvx6G8egUacqASjysodd6VaVlgE1CrRKapVUKtsgOKkMgKolSP9ZEK4qgxjZBwqAsGohjqy0a+yCDTCqEYrG3WlWhyXEkr0scce23PPPV/5yleO1j7xPKjVRFjiYh0EUKvkz56s2BGIoQ6YkXcYCASjGsY4Ri+qI2BhqJ55PWdm8kvlJFeqY4899uKLLz700ENrFj4tu1q2bdv2zDPP7L777uI1BLWaBlRcXzQC6ReUeFUIV4tGO8rvMgLBqLo8OtG2hSPQiFt6CkaVtZUrFfUI0Xn1q1+dXVzEyW677aauF9YP1GqXXXfdc489glotAuoosyQCmXCVIoh66U0EYigJXSQbAALBqAYwiNGF6gjUF6gm1k1A2nfffcvY4yZmL3mRNEWmyhK//NJLeJVDGIU99tpr7zAIZtDEyTIQyNhVJlylk2W0JeoMBNpAIBhVGyhHHZ1FoBFGlbP66SxGtd9++9GQFtpxjO3pp58er0IYBeZA/1546SWa1X57712G24Wv1TiScaURBDJqpbREqkK4agTYKKRrCASj6tqIRHtaRaBxt/Ss9du1opdf3mUX9GZRx0zGtvuuu764bduWbdue27ZNS177mte8qkT8z6BWixqwKNfm0x3+7KiVA7Xyl3EwsAkEBoBAMKoBDGJ0oToCC9KoNOiggw6q3qxyOTEq4tOo4W9avj3W9wM++eSTXL5QqwMPPHAuauX9z49FXKtp4Mb1Sgj46TkiEEMl8CJTRxEIRtXRgYlmtYBAI27p09r52te+VoCDad8u6zq/dVUnaqV5qNVeJeJ/6kaKa4VaiWt1QIksy+pg1NtHBFCrLBBDkqyoViFc9XEoV7zNwahWfAKsdPfdxxvp/2h4z6zAMkwlS1z5JOecXr6cRK2eeOIJqlWiVulKcQmoVaJT26nVs88esM7PirPEt4FAeQS2y1YhXJXHK1J2DIFgVB0bkGhOiwi4d9evbdwtXZmIzj777FO/8Jkl4G0TndNnZswS7LHHHs4ff/zxRx55hBmRsVLjs2+nnWynVut0KqjVNIjiek0E/DyTcJUCMUQE0Zp4RvYWEAhG1QLIUUVHEWjELT0XjCp1FU0ps72uU7gkasXm8txzzyFVr3vd64TUmtnCoFYzIWowwfMc2p56as9dd923xA6DButdelHYVS6CKJugubr0hkUDAoFRBGbfMUdTx3kgMCQEGtGoJgJCOiqj9EzMO9dFqpKKRt97M1f2iYkTtXr00Uf5vCv89a9//cRkuYtBrXKALOIj8fB1O7TPH27b9uLWra9bcBTZRfSiTpmZcKWQ5HEVgRjq4Bl5m0UgGFWzeEZpvUGgKbf0aVa/dhgVuClJzTKqbAiTzHbPPfekgKUldy9m1Eqg0cfC1ypDs+mT19i/ub6FU0SyJx9//PX77990DV0vL2NXmTN7Oul6u6N9w0UgGNVwxzZ6VojA4gQq1e6///6CURXW39iXZWxzdSpLcRZ0B7XyVyx4BsEyBYrElXytglqVgatymr3X1vZep1N82h55+uldnnvu4CYcBCu3p/2MGbVSdQhX7eMfNWYIBKPKoIiT1UKgMqMiCAnphMfYHOev7XLjwB1wwAEzw2+O56p2pTUxLFErehVqxSAoPITgC2XavBO1eu65A9Z94ctkjDQQuOWWW0ynI444YiYa1MHX7733mn9ra1uQ36eees2++87MNbAEGbtCrRK7Wo/DEBFEBzbOHe1OMKqODkw0a9EIFLilowuJDzF7JR9zzAmLSvEFnDiy5p166qnf/e53s4/pBNtYtHSU1Sj2gQa36QiPWjm8pBm1wi911pG1p+BkO7Vap1PbVaugVgVIjXx12GGHgfrOO+/k2YZaHX/88aPTbyThTqcHmKLrdMp7H59Yd2bfZ/Wc2bGriCC607SIDwtGYJeLLrpowVVE8YFAFxH4wz/8Q81KUhOZx0k6kuSzzpp+RJsKOvDQQw+9733vyyX4t//235555pllVr5cxgof0an7779/73VlokL2RrJ45c4LL7xgAXPMVSBq9fhzz706VKsR1KhLNpCKwoo/wfPhhx8e+XL7qVAXTz311MEHH/xjP/Zjua+KP255/vkXOLOvnsdVBgvVynkEYsgAiZNmEQiNqlk8o7R+IIB/2MLWSMgo5Zxyyinf+c53RntOs2mHTqkUEdyyZctyGVUKZ0qv2rhxI0EFD8AGRgGZdo60JjoV1CpBxKh69913X3HFFXY82Apw1FFHXXLJJTn0eOk5XLzrrrsee+wxycrYBKU/QKSx9YxbCVer6swOh1wgBgQrh3B8DASqIbBbge2jWomRKxDoPgLW/uOOO449pZGmPvjgg5xdRot617ve9eoWt7Xz5br22mufffZZbuMI1mhLWj6n8LE/IlXiyLNSMZ6WCcWukagVrzQniVql85Ybv/Tq4GYifepTn/q7v/u7dT+op4RvPffcc6c1jEkatTLiDzzwgCyEK55tZai8KAz77Ih3v+W555gFs4/T6hredY8BRL63vOUtCJadv+mpIIlYw+ts9KgdBJZ5822nh1FLIJBDwFOEKMwYj0WrzPKTyz7+kUb10Y9+NLuOUmA22cdFn+gC3xoEEa+68cYbGYlOOukkC22bnlXjfUzrE5JHP4Mz0W6//fYbTzZ+ZWVVK2bTb3zjG5///OfHzXzjKOWumMwOFwW+TzZBwlXJB4btnm3rVtcn19ZeWNWXNlJVc8JV8mrP4RwfA4FiBIJRFeMT3w4KAfdNXCrpsiKDW+/Twl+zk4cccshoCZSD1jb6ZfXyT7emXnDBBcxGvJivu+46PAa1YtlcrmqVEOZolZ7+iSglja07Uatt2169Hnsp6+/wTjZv3vzNb34zR6dKGk9H0UCmHa7MaxPc/hCw/g7sF9fWnnr22V1femnVIrMDwC0ivfrGeSJVEUEUFHGURCAYVUmgIlm/EUjPoKNRPfEeJpVGGFXOlYpL07JIDL0KmTth/UCt7BtHrVw58cQTtQrrWuIoJqhhzhqonVSrkr5f26nVOp1iEHxi2zbi2xJ7sbiqeZofe+yxf//3f0+saqQWomDSBTFsRti0T7DMHNhNQLUdNsEnXnxx2zPPYMGNNKlfhWTsCrVyoFb++k31qxfR2jYRCEbVJtpR1xIQSLfFJOnnqmcma8qF/OSTT86c09GpMutWrjGNf9QGpkAHfYiTDWqF+R1zzDECHzRe11wFJs8qTj+WeY00BCWbhFolOjVIaoXiMx/ffvvt9913H30xQWr2zoXtxMTrJsHtNkFbCOfdJ7jfbrutrdOpZwlXTz994FK3lE7sXQsXjYIjaduJVOFV4c/eAvK9qyI803s3ZNHgsgi4CZ533nkf+MAHpm2/IAaU0ZO2bt3KZdhf+6rYCp3Y2W5l4iGEFiQZgOHv05/+dGoZ/xX1doFUpfbwFsel3vrWt1Ip7CO76aabLN68rJYlpGXjpwH0M9EfqFbw1KQUuiJLMO0EtdrTSr/uxk61SufTEvfoOnuoOUamoi+mZnOdpi822AV01ow1OW2nMBlIhhhtmfI9fL9qhzq43Zn96adX0JkdUKTW5M9O8ObV7ibjIppVBsNIM3gEQqMa/BCvYgfd5tzvJupSo3BYwlGiJJngSZYZqztFx0qPbDlsCcSlkve6v9lJVsif/dmffehDH/Jx1PDnJS1WxPZdqbJWTTvBqM4+++yzzjqLCkILwQs5WnGiL8ljphVb/3oaAu0hogAZgCWtsZlqpQ2P998gCIcUicPevUymqg/vxBK2WwTX9wqk2KF0rDe84Q0ld1RkzuxPra09v8LO7CFcTZxaq3wxGNUqj/4w+45IFXMpDunIE8Zj0SKNeExHnjK2lJ1Ax3mBkGP5zyx9EhOB0kfEpYN0KhtsfT9y/UAfUavrr78+NZ5ct/RmJ2rFGmvPmnZyYy9JrXRhGAbBww8/HKliDzVLdSpJINnYLeIkswl6qBCuFvgeD8gwZera7l016szutY/rH8vkHVKa9AjnKc7Gl+RxFa++GdL4lu9LMKryWEXKriOASLmpzVyESFOjtEmvCmhTQZ/FYLQCXX311cIwomUYQErM6pfKL8jbha/gwB7qsJRytBJ5AX3BC3k1Lb39GbVKe994bZekVqOqFYPgfjsMVV0AvEwbdHzDhg2iUomDv2iZarw9mXBlPrA/Ilv88MaTjV8ZdWZ/8sUXbaNdTY8ryLj/pCe68LganyeDvxKMavBDvBIdRAs8Hc7kUgmLjPo0As3/+B//g62E1uXhPhVI6Vk6I5mraygUz3pcCi/kW3PDDTekaN0lScxcdc2bOLUBtvx+DNyhhx6KCJYsJKNT/aJW9KHTTjuNTMUATe8s2dlmk2UhGNI+wWQTTFbCmRXtu9tu+647sD+3tvbkqjqzQyknXCVn9tgqOHP+9DpBMKpeD180fvttKwsx1TIc1jw1CiPk76icYNVvuSWNVIevoIaJWqEvllJ/uUVb1HmyN1JFnUJSqAW7AdA+nBXtKK8s/ohaPf/8ft7E0u2DTEVqJVPde++9S29pZhNE7+iFfN3YBEvOcJNmjx17Ax/bto1wdXC5KK9L73XjDcjYVSZcpZPGK4oCl4tAMKrl4h+1V0dgiVwqNZoflZNRLuUjBaUL/KM6rGtrqBW+4uCYf88997AGWk2pJnaiLd2HXb8StbI9ELVCqjgele9sRqee6Da14pt/6qmnciYr37UWUmY2QbFDUVtUWwCtkvVujyi2Li4+ve7M/uqVdLeCVUatnCdSFRFES06hXiQLRtWLYYpG7oRAuisVu5/vlGExH5JGlSublaq8dpLL27WP+BM3GqsmH3aSlVcHuvLmN7+5Cz7ssErUSsNsLCCloIDlAew4tSJTobBkKlO9fKdaS5lRK+BzwvMUYZ9gSZvg3lq5w5n96eee20Vk9pVnV6hVYlfhz97aHF5QRcGoFgRsFLsQBDrCpVLfkkaV6yefpMEwqtQ1PmFUN15Wou+ICsEfn2rFPigwexd82HGp1E6ru1AXPpa0SaVc3aRWMOfKRqZq1ucvN1frfxy1CaZXCpbfJ8iZfb8d1uQnX3pp27PPivRav0l9LMFtzcEZVOMzahURRPs4lLtcdNFFfWx3tHnVEHDHKRNiqk1Y3v/+949XZzn/8Ic/jGqMfzWYK3gVZeKOO+5AYohY1v60Na8jHbRJjUFQzFVHhSZ1xCDImiwq1caNG2lvhM8e7XVIwW/9YMvbBLNh2uZFQ1u3Hjjon0/W2eIT1EqCZBMMf/ZirLrzbTCq7oxFtGQqAgx8S7fx5RpHoPp3/+7f5S7Scs4///z3vve9JV8GnMveyEfvhGNM2X/H038jZU4rBLXiUnPbbbcJnsSl3Qax8hvxppXZ4HXUigcYXiX4wlzFYjOOp154IXNpnyt7U4nByzkdczXZmNWOOOIIzHXpMcPK9y5RW1NCWPYK7JYzO+HqoFV1Zh/FOYSrUTS6fB6MqsujE21b6yCXSqPyjW984yMf+UhuhCx4P/MzP/Oe97ynC8seF+C1bdv2Lh1rINeX8h8T//DulO9///tcmjhaIZSdMn1STRK1IqfN7JfuoDKpU3IhBEtX4KDq+N73voe/wvb444/vnbueTYIIFl41l7tbGqwVd2bPzVjsKoSrHCbd+RiMqjtjES3ZCYG5QkztlLOVDxMZFe+iSy655Nxzz+2UVPPkCy/su3tLHpNkBRGtqFYQEHmB83inPIFQK3Kadd1muonTJONSGJXtbF7jiIR1Z/Om5tmAiVrxZoNtcmXrwgbMiWBOvFjHJuhlh0+ttjP7KKSZcJVORr+K82UhEIxqWchHvVMR6DiXSu2+cv3I9cF+csGxTj/99E7RiNTINq2BaqRJ8LKy8HMsO/roo7vmWGZdR/5Qq+w9wUmUyv4KWZ6YCu7VHUaVzbdErYiCbILamchrp3h81tRpJyQr3ni0TO8aqmATXHFn9hyqiVRFIIYcLO1/DEbVPuZR41QEeLMuK1zn1DZN+eJP//RPr7nmmtyXVt9LL73UtrgWGBVCUG0F9XbbXVqxBiZwxJjwShMEBVFGX5ZuQcsNmWjsVB871GxbS3QKWdHaDNtuMqqsF9psJuBVpEEX3/jGNxJKO0gBswZPPMG/vbMc1BVsgpzZn9y6dWX3CebwRK0cqJW/4c+eA6eFjy3ZAlroSVTRawRwKS5TdvP1pRcTg1ExxLQWUMA6ig1Y+HGUbPkvg972t9uuO1c9wfN68dZACoSDG9CmTZu++93vkiUwTqv+XG0u069qaVIUJaQKI9FIizpGNdo2F7tMUFJsi5NOOgmq2BVvNlGsbHV805vehCOaG73YJGg+OIwg8q3xfMXK7xP0TqKMTj32/PPbnnlmlZ3Z3Ugdnl6AmUgVXoVgVft1RK55EQiNal7EIn3DCPj9dy0sQpke/sZv/MY4qWLe+uAHPzhXFO8ydU1Mg1Fx9ElfcYS3dlbbYPj82trWtvYGai03JvvXOFpZ6ZEABLRTPuxPPf30Hjv78rPkplCiE0ehgxeT0oYgsgkSfoS3wGhNjxZ00wbRYBM0w01s+FewCXJm1/eD99n++BDHdtlqXbKKCKKLngyhUS0a4Sh/KgI95VKpP+N0ynULwKi8MbXnTXwxup1QZEtP9siK2nnVpLcLl6zEW+5SqIV2rIGWdpYphwazVV133XVUIrFDtbkLS/7uuwk82e8DVXXQeBz0NtTKDsGHHnqIQe2oo46C/+jM6WxXCWxZ2/AAmy5Rq8MOOyy7WHwiMvve63RquzP7tm0m2yFLeud0cTvb+Xa7bBXCVStYh0bVCsxRyRgCnQ2LMNbSCRcmBqOSzqL1oQ99SFimCXkWcIlG5Tl+vGBLpoUTu3KMfzvzSpt7A9nU7Kdj6+HGzpnpyCOPnIsOzuzLvAmw0hzh6J1GNbHLqBVfJeqgvQJ0QfEXuqYOTmx27qL9BPPaBEdLePzll1985pnXRPjQHaAQriIQww4wmvk/NKpmcIxSyiPQay6VujlRoPKVdas8DotLmSQraw9ywGI1L0dJoRbasQYy+TlOOeUUFsDNmzfjVV5mIqIVHrMU7yUms8WNyxJLpv8h+kB2mBjcrW644QYTI8VfqMa82++OLjjUa554ltAp0kt5m+D+u+yytk6nPIU8hVqt6vsEs4GDnruxj5lNMDyuMnCqnYRGVQ23yFUFgeR77mdcJXOX8kwMRqWBjFm/+Zu/2RoV4ClidZwJDF5lyUyq1czE4wnasQZm9VoprfdCLuGFln/OYW3GW2JdwvCyxjgZhkY12qPs3C4BUPNpg3B6AXZrUzdrQ/0T2tu8NsHRSh9//vnnRGZf94sfvb6y54ldJe1qZUGo3PFgVJWhi4xzINCLEFPl+zMxGJXsXOz/9b/+16098eMc09SyiX1J1kDKRM6wNTHx+MV29gameql9qBXfagdSldb7as0e70jBlXFGxc3LUZBlAF8lanX77bdjkwyCtt3h373rF5ugZwyN50BWofFbRWEIZ/YR4DLhKp2MfBOnUxEIRjUVmviiEQQoUmV3Bq4AACAASURBVH0JMVW+vxODUcnuFTQ///M/nxM5yhc7b8p5GVUqP0lW8zqwZ21jDfTewFe38t5AlaJWusmHnWplz9oxxxyDEfK8ztrT+IlICqNlrgKjyvqr72JxUa1wLIIrfQ61WijaWdUNntgnyDnPPNd+AWbnLTk5s0NAjLJ58w41fQhXJUd2J327ZJ5IFgiUQWCQXCp1fJoyJIJlmxvWEjea6JxeMEAICiXGwWJYwYHd3sBEp9qxBsLTYTMgmYoCgVrZ+SUigMBRi9BResceCga6wld4tv2AjkSt7Bgw1QnMKcxpCxphhTaPZxnfJ+iKV02Pp5x4Zde1NW/ITi/JfuLll18IZ/a1NTdzArwDtUrsKgIxTJw8wagmwhIXayGQfn7J57FWQV3NbK/fxKZxA295SbYEzsuospajVkiVw0pZwYG95UiheBW56G1ve9tpp53mbs6xmg5x8sknu9igmbXl4cvGomsn49TKjgF6zxFHHEEjbE2FrQ/L9sihO2KHVrAJ7rfDmZ1uyV0rnNnd2x0RQXTazAyr3zRk4noVBPzYPMcMmEslUN7//vdPROd3fud33GvaXJXRqSzO58Qmlb+YFK+kWpXPlaVs2RpoU57ICyQrwZaQLSHCuVvVX+kVhahlnXKyUla/0Y7nzqlWyDfAN27cmMVfQLxyybr/0e8FBafRulmV3yc42q/HX3hBZPbXhTP7DlCoVk4jEAMQglHtmBTxfz0EVoRLAWlaMCqry+///u8LSdUmo6rmSlU81KgVXlXZgb0da+BoF3Age9a84kabkw87YjSaoPy5jEjqaAwFRG3UilS+qKGm5NmGXaFWQlvZG4jLEjgblAnbxC3tE5zLJjjavGfWI7O/LiKzj4CS2QRXMxBDMKqRuRCnVREgSg1el8qwsZD8wR/8QfYxO7H0/u7v/u7BBx+cXWnn5OGHH15ERUmyQhPRlGrlt7k3MLXQiw5TsFDaA2cgUsq8LceG0YVRRqX73OPmLWcV0kMJ+xQaCrvCRIW28hPoY/wFg1Vzn6AgZluff/6ZrVsPbCu6by8mGHa1asJVMKpezMzuNnKluFQahmnBqHCp3/qt37K9qOXR4jtMqVpcpUmyIkJU0yFatgbCwUrP0Yo10A39xBNPTBvWSuIzzqiUVt6puWQtA0uWUSsPGwCkWjGVolZtirVNQcom6CmCTRCNrmYTfGFt7flnn92rh+EnmsJwvJxMuPLDdD6eYDBXwjN9MEPZdkcGFmKqPHzTNvolUad8OX1JWdOBveW9gVC1kK+/1O7YzBrohDWQh/K8pJCFy3B7PU4fHYZam2AAx5+EY7Ulk8Jn1RR/gdOVWwRnABbkykbY1rqQVZSeiIhtruiIGAquzEWpram777mnKddTuS6DosGT5BPCxVaZiV0NNYJoMKoGp82qFOXncdlll/m7Kh3euZ/TNvql92PsnHZQn1ArZjUrJV5SwYG95b2BoLek0Usc3tZ333332R5o7U+OVgU+7Jb/pPn5yxiEUdFgBjWQC+sMeM0N5j8HMsqHXYBWc+boo49O0S48dSys8uYLXt8muK9ymZJ5XBHeSsYORcXSbrjm29T/EjN2hVo5UCt/Idb/nm3vQTCqYYxjS73wYxheuM55sZumUXmWnVcCmbfqiemtUkwVbvcTv238Ip6xPZjVM88ka2AFB/b91l/z0qY1EP8TwsqBDlodb7rpJs7UDIIaPy6foAJAs5HQjf7BBx985zvfuZRhbXzgWi4QsIiUI1Er7AqYBx10EP82sBcw2pbbWaa69dcJbn+fIJ9FIRhM/mKbYJK4ypS8ymmsJo5EPROpwqv67s8eflSrPKXn6Lupz2UqybZzZBti0t/4jd+YSKoETH/f+97X/lM4w8SXvvQl8sBJJ52EKLQMuf4iHHUc2J9cW7O/zm6x1lqOLVkXvXTFDsHDDz/8yCOPtMan2sHI25rpiqbFcHPuuediY601bNgVoVb0Kp7sSK2JmsTC/ppTqVZ+evYJmkKjA/f9O+444g1vaP+XONqG/p6jVhm76qNwFYyqv3OvpZbjUqsQYmommhbaxJYuvfTSiYk/+MEPWoDHNY+JiZu9SDfy5g3vaSEDkF48Ure/UCXJCrtyVOtd+3sDWQMfeOABW9WsjoyDVkfUyjlBRXfe8Y53tA9jNej6lQu1wmiBzJPdbPEmQfyjv15HTMO0TyZCr0jCyBk6GT37NSLdbG1GrXokXAWj6uZc6kSrVpNL0SewIgdxwoLqRu8u6dzfdPzar/3aLbfcMj5Cv/qrv3rGGWdIM/5Va1eoLx7s3NO1HLWqED6gflNxEQtkpvrMW2Cb1sCsbQb9nnvugZvFfq999jnxTW8SHzwR6CxNnCwCAaQ2Ic9ZDallL+uvKOi3/+gPf3jwQQe5cy4Cq5UtE7XS9+TM3nHhKhjVys7SGR0ffFgE5AMEmIen5MSc/HW4mJjTNIC++MUv/uf//J/HvxWMitfIchlV1iqSFX5ABmAKXJZkBVirY2XJSqTQ7c7sLR7oFLXP0l65zS02dmhVsbGiVjYJwt9Lmk3a9BjTo356DPvhli2H/diPhclvcaPWceEqGNXihr6vJQ+MS2FOWA6piTOse7S/jjLMadr4PfTQQ/ylct8qsP2A6bk2jH/kQstthW2FWGVz+7IkK7CTrCpLPl76sf+6M/t4B+PK8BBI1OrWW29lZ2cQ5APux1t58rSJj0aS3MTacIdps96VrSuxq6RddQSEYFQdGYhONCP5ng9Jsk57tos1pwrQ//qv//p3vvOd0Yy22n34wx+2lWn0YkfOSS+PPvooR2w7lUhWmtr+Hd9ik7TAflkDOzKCq9kMjMr+AI8EvJREhBJBNz0XdRMNNxkPMLyphnT/7CbU463KhKt0Mp6gtStBpVuDutMVDTVcp3vcIoSZk08+Oceo6PydNRUxRmCWP/ETPwENdsDrr7/eysR5dhHITJvlWcwFq2MyBc4LVxYp1N7A7TGC4hg6AmaI+5KDzGwDgY2ZjzzyCL6S9mYmmbk7GGBUKKBfVneatDotMStsn3Lo8nKFq9CoVmfWTe6puTjgEFPEGK8untzzGlfHDX+HHXbYb//2b/fCf8L6ZDubjYGbNm1CDZciWcGeaoVa1YncE9bAGlO4l1nxcoycauUVQ8TO9FQwLzVfUM/D5LcgYCsXi1oxCIosU7mEChlDo6oA2kCy4FKDDzGFPfBssHI3O2ZcJU455ZRRmQovcUtttpYFlYZlCkZ69tlnW5xSuEv2FMGgK9vjqrUzrY5Gx4qYVKt5y0nOVdu8pPa5514d2sC88PUwvZ+YH9rb3va2U089NVErwVrJQmmT4BL1IQKV2FR+Qe3b03s4jC012QKHVLVU2Y5qglHtQGKV/k8aKTq1Cp0WLaZxRgW3nOGP/6y7ar/wpKjhhR70bQzkZcWk4iNHkDZXhcwamCQra9K8xFTwq1eu06mwBvZr+tVpbUatTjvtNNTq7rvv9njDX9CDgQmMWrX8Y1SdZrgJ1OlU5G0cgfZDLQSjanwQO13gSnGpNBJUEEfjpOrd7373Rz/60WywOSrNSwWyvMs9sfzQqLQ/veP2G9/4ho/CQCxRsuIiU6H2zLkqrIHLnVFt1s5HEIXyeGPLRQoqhlrxZ0KtCLHmtgQttAejSkyuhbqiivIIhEZVHqtIOR8CK8ilMoAWwahyhj+373bu3Vmnmj3ReMuPF4Okl9/xP7A9kG3FOtEmU8wkK0/8Na2BS4kU2uygRGnlEcBpTBiBrBwY1b333ota2YqBWh144IHm9uKmcRKolN+muFsemZVN6SbWft9Do2of8yXUOLAQU/MiaHn2gpF5c81MP2r4a3Pf3MyG1UlAH4LVhRdeKCyQGKHXXXedjetLkawshw4LFX2xggN77A2sMw16nRe1QqQciVp5y5DHA6+IIcQuwtUJo/Jjwdt6DVo0vhEEglE1AmN3C1lxLpUGZkH+6byOMsOfSFRurN2dB3O2jGRl7aFRveUtb/mHf/iHG264ASvdsGFDy5KVVtd3YA9r4JyDP5zko9TKS5qFur3//vuxczqWR6AG4y/4sahrOMANoiftO1GBLRjVIObOpE6I4yIsAmPfpC9X7hpC0Lgr1SGHHJJwdDMd5P00WVKEn+BZhdnYGMjLirnzqKOOahzM4hmZWQOTZGUBq2DESXsDwxpYDPUgv/XzpCGdc845vNf5AJjJbIIu2iRYP5IcJdUvpYKMOkiou9OpYFTdGYt+twSLGnCIqWpj4zZaLWNBLtzip37qp7zmb/BPqBxEHF69bGOgfVU333yzlYl8ZRWpwGwKIJ35VSZZZdRqZpZcgkVYA4mgDm3rRUCyHCAr9ZH4Sp1ir/dSJqY61Mpk5mXldTcmc4XnBFzKvcW7CFcKxl50tn23dLCERtWLuVG2kcGlpiFlwavgny4LVwx53TGtlwJj8sYYrSIxKuuom/KQrH6jfczOdRCP4bpO/vRczsuK7ycvKzGsKyxFWbEVToyFw9DUcWCvbw1EK0UhssXMvgSMs0JHIsuyEEh2bTsEPRiYSKKGchl0EbVi2jafS/6cJfPbF8/d76JklmV1eaXqXYpbOoTjLjCQaYZLDT5cZ82hKghMlTEna6TbIrqwXXNYf8Vyukv6a/H+7Gc/+6EPfSg1A8dyMIf5iGc06JNRs5stZLfwIJHcqniSWYq+/e1v677FyVO+r1poQFYFXmWwHEmyqmZ5ySKFPv3MMwfstVdW+LQTk4S8YT4wJFWrcVrJcb19BMxY/MnspVqhVtzYUSs/bb5WiLKviqc0Sn3bbbfxOJQlGFX7wzetxqUIVBoTjGraiPTmOi7lfUYrEq6zzqgkkpT9VZR1kcDgSETKlYw/Oc+RJIs33wvcyz30qaee2rJ++N0K62dznPtpnbb1MS+sCDPsgB7ruf3yWoAP37IjjjjCU3vLPTI6KI7R4RxjFazg1saveNdXvMKU2Lrrrge8gm0wf6jCt6rwi2PndeRTxOc+I2A+m7eJWhnrjRs3Cnvrx85rMMVfGJchZcHm/fZtTCkmXn0GppdtD0bVy2FbbqODS82FPy7lfavjWdwKy9wNbRTyOj8aFaaFUbEApr9WWfu0V5BRJSQtKvQhT/Pp3SC8rLwYxEWhrZYuWSE92jY+4hOvGEerI5XCavrQenCjZ7wUcr/9jKxlFZFCnbngOCZmj4uDQcDsRZ6Yth1Gn0XPSzD92D0qpPgL2bOWlN4weO6555afZoNBqeMdWYpbOkxCo+r4xJjavAiLMBWaxXzxgx/8QMHiCIwXj5DFLRUsQOBN4mBgRUBh5dzj+7Ikq8zLaqaehEXhUhhVIsrIt6V0u3VvPXw8E6djfNzjyuARwJm4TjoStSJcPfjgg7g130FTYpddd3XuyUGywUPRrw6GRtWv8Vpma4NLFaOf1kK2PGukpZGoYEWvf8uz6E6sd//992f5GrcITEy8IhdhcsYZZ/CyspeKlxUbHCcVK1AZLbBZiMwBR0atplkDNcxXiJdRJlax6LLkemdcs42J0vqLQEatdMFqnTYJurdccMEF7c/q/sLYTsuX5Zaud6FRtTPEzdSSfM8Z+5opboiliDa09emnn3nqKes3mQTRIZNwrKnfV/as8ULcZxU+UwIZz7gKVxBZG6nEXLACsZts3ryZt69n+qVIVvQnBxXNeI27kxtHjIo1x7cYORPP1772NXT89NNPX4WRij5OREBsW2a+8a/cgT0wOJB1d5j6T2vjVcSVOggsy+SnzcGo6gxce3lZ9CNc5zS4aUc2mCXZnUfx/vvs45/EV111ldenuCfaDj0tb8nrDECO8cQZo4q76jg46QpksCi+JrQfRhPe6ygLmrUUWwkJapoDu3Y6UC78mMbmF6ephx12mACn07oW13uBgPlmZCs09Zprrvm5n/u5goxYuEe4Vne3FrQmvtqBQDCqHUjE/2MIeB6KcJ05VF5Y50+Zy3F2kkv22GOPecrkGWMdrennxIaIDeTK99GdmuLiCOV/HJzcFSjRqLik4DRiLtx44402CSJb0yxxuewNfjQfRiUrFCqbHsbRR61KXsmf//znf+mXfmm//fZrsPYoqk0EjDVx9OGHH0boCZAmIVWJGJn+aomL9GzXx1vlDQGCqjvGv8quTNgUmn0XJ0tCYFlOVLobGtWSxrxEtbhUMvOVSDv8JISojDmVmbUeTO15tqvfLi3yUrZkVkOKAWiiRqW05KdVrdgVzGUlowCJ90Gmsovq+uuvNzQp/Ho1IaEOhkmyyrysErXyVyMtsQ5RTD/5yU8GqaoD8nLzosjW1//zf/4Pj3I/YSNrmqXNeqi8u4TfL/vdWWedZb9qrqk2o1x55ZWXX3557nru4xNra8G4c5gs8eMSBSq9LrM2LRGcFa0al4oQUyWFqIlTxK3T4Y7pnfNWTe4O2YbnielnXqRR0brGk7k7e8ZVUftsYLwx/bpiJUOq0sZAxOXee+/1bhCrWvuSFdy2u69v28Z9Su0YFS5lQNklRYS3Ev/v//2/P/jBD/YL3mhthgDFkcp4zz33uCdkF7MTA23c/YrPPPNMczK7TqByTuTOrkw7qetSMK3cuF4JgSUKVNobJuBKg7awTEmX+o//8T9SpxZWSUcL5pGARWUHsp+JUtnFuU44wZAf3EY9ic6VcTyxSMrjF11JRiK344nfxsWZCGAwHN28wvbiiy+WmCmQamXU6g/ZzKrHE5gqFE0b/R555BEBIFArv0c7FrXnr//6r8fTN3hFfyeu9w1WsZpFIUzolHcbTPuRQp4WhT/ZvkeKzlDiROXcVza4ZBcnnlRx0ZpYUFxsAoHQqJpAsf9lrKYulXMqb2oY3UbZkjAq2pIHUAKV+6aLlcuf9qjKiOC51t/KJUdGCCCmdg+IsCAOBX8XsardFn0UwmApklVi4VrihI2SW/23vvUtJ41v/UtEykJuCtHnGKljPjSOgCl0+OGH+8t5DuDj5bvIS9JGFkPgppE8BDIilbypxnONXnl6bS3ilY0CssTzYFRLBL8rVa9OiKk6trzyo5XIE/HDiVUKr2LHKZ99POU0/cBCmNxuxrPElQoIwNMh/LqXgdAM8Bjw8rLiO1yhtJpZ8DzLMLojZroHHoG1FNgIqUpEyrTE9dkWHSaqjzUbHNknIuC3j5qLNEt3nJjARb4BKNTVV1/9sz/7s3hVMvmlxBm1mpbX9SXMzoLWrPZXy7X6xbP1kmffKnCpeZ3KmxoSd0YyQ9rVZdGqU+zE5x6rYLL6+Vun8MibQwCebDQ0KtusEGKS1aZNm3hZWRdr+sPlKirzUWOQPHOJ7U/kQIPOx7FMxvE0iUhx2NILpijqpsIVOJ4yrjSLwOtf/3ojaBwLaCuDL6Mzp6vzzz9/lEUlw1/xjr9mWxulVUZgibE9U5uDUVUeu7oZBxxiihCFYmQso6Y7VGWgCRtpDUtqf+Wly/OrciY2wz3a2h+MaiI49S9iHla4s88+GzPmvf7Vr37VuuiNgS1LVok6mwMOa60IVfMGqaJx6kKaLXx6UoE5fEyz3JX42AgC0KZ0gt10KmBU6hJvhTpF2x5lVK6XMfw9KxBDI82NQvqMQDCqJYweC8LAQkwxV3jQziZTdrIEcEeq5A9hlXIPdVgLKzMqdh8bhUYK/tEpOpWUhh9dirOmETCOQPZOGDIVrzi7BO677z68imNT+5KVLZ9f+cpX+NGXCVKViBTCrZ22DU4kUk2jFeVNQID19tBDD0XEp7lSpTzuEjYlXHHFFXSp0VJyBGv0q+w86FQGxRJPJhoT2mxPR9a+Nru8zLqGxKUW5FTe4PCQBKxh1mBlolaVlSSMaqIflfuvOzUvjcolN9jZwRdlKA0owx9PplNPPZWX1de//nWkCrXCt9rpvhFXEVL1mc98poBUmS0O08bE4Onsr6OdFkYtExHwO6Vu0jtzVGk8sVETDjR3PQx/OUA6+zEYVWeHpuGG4VJ9D9fZjlN5s7iT+oWkolFhVJX1DNknBqPSVAsng0KzbY7SihFArSyQiBTXFl6ot912myWQJzvRqPIQF9SoOkcuQSJVl1566eh1fMt8MFs0w8Sbl0iF1W8UzGbPjSBXKjdhM4f5tbjwiQNBpprpSrVtbe2VxUXHtwtGYLlu6ToXGtWCR3htzc+4v+E6RcTLHq77OFcsbJ4vSf1pR3S1wWYImJaRl3GKBjktQVxfEALWSGPK5eWd73ynvXgWvBtuuIFlh3viIiSriaSK+e/CCy8cJVLao1USj6dfEA5RbEkEcCmG1+9+97szGdXEArlSFb/jT66gUxOha+3i0t3S9bSPq2RrA1S3oj5yqZwQldGpulgsKT+bi1BSNcP8eAndtOZ7nHWnjuVzGj4tXCcF2ci5YcMGoTgfeugh27XQXAEXBLhahGQ12iMeXVxzPC+pK7nT1ZkJE6WR0erivA4CBkgABbY//DtZb+cqLQx/c8G1lMRLF6j0OhjVooa+L2ERuulU3tSoHHLIIddddx2NKm1Zr1YsU860jASJmpGuppUc1+dCAJXhZZV24RluXla33norxejoo4+uaZYtJkkWWuakcJOaa7CWktg4esRlGvZaoWrktYzhzxNprKlLGV+VBqNaFvKLrbf7XKr7TuVNjZD4m8LMcG3BqCpvuS/wdlyQ705T3V+1chL7oUbYFeilge6wN910E58nkpWRQrmqAZIIk32duFquhHmdpXLZ42NrCBgpDBv99X7uyoxqZmsrzrCZ5UaCEggU3KhL5G4mSUyAZnBMpSR/KU9CTRa6gLKWFSBqAV2ZXCTpCH+yL+u0DRs++pGPUCmKlYbJpaxfdfMtsBHYaxb6RAF6S/wKf2Ll+amf+ik0iPf6d77zHavpvJJVNm2coOYFM6F+T6st8/XrXZ0SWIG5ARCVDWWFXtOoyshUFUqOLI0gEBpVIzB2opABh+vsBL6zGoFCWUHdK9ORJd93n31sCqujJBUEo1ILt4xgVBna3TzBpz3qCGclRigTMFbE44rnU0nJKiNVyuGC080+RqvKIEBlFH3DwbGyGjkuw6jC8FdmLBpP0wW3dJ0KjaruyFKkBhausy4ibeVPPkwZkZpYLbrz7ne/m17lZjoxwcyLGFXBzVeEm5IL88yKIsFCETBb2P7Qay93sy7a82Uf6JFHHlnTy2qhbY7Cm0UAObbdz1MQVypuABUKN3Nm5oo1dSZEi0jQBZOffsXoVx9cXKrvIaaqd35JOZM5LydEjbcFB+IyzGGCDuzNEt4QJ+N4sjJX+GAVbBVE1DINo0xpkWa5CGDYFtSzzjoLUb777ru9MdD4nnDCCXYLFjDjdoa4YAPEckEbTO1G385cu1XKEKOJvbZxeOL13EUK2H5jMcxyaeJjswgEo2oWz1ZLw6X6G2KqVaRqV4YJZSoUIlVQnodOwTw3btzorodIiTrD2GekrJfVfNLRMuuuF54UVMpTp53ltqAN8VUFBEyqN64fJKu77rrrlltuKZas0igXqJUV2pDLstDCc3Wt7EfWXoyK4W88MHoZTDynCUx17rnnFifeO+hUMUAL+LYLTlS6FRrVfGMbXGo+vCqlTkKUrDZtFSgHEnisR6Sefvrpm2++2ZYuLModkyXuqKOOsgR6JEXClFBBoEp0yhtsbMKf1okU7kgDKpsUp5Uc11tDwN4CsazQbq9utDFQvTYJkqxMntSG7GTRTcpR8xR+3ezVgNxXi27JgMsHph1/bgvuCdW2AlxzzTUzGVVFPXzAuC+4ax0RqPQyGFXZoQ4uVRap+dMlxkNJmmnOy5WNzXg0EdcRkXJYflIJCkyMKp3kcs38yBLEBxlRM+gXXXQRYnfllVdOzPXNb36TTZA7zoEHHrjoeJITGxAXG0HAEHOxOv7447ds2cIayMvVprAjjjjCdFJ+IjT+LlRG8jyQnh9MP2H6+fpYJyz/XrBjduW6mZq00PbkahzGRwh74hK3zE2jGqMqafjzMtF9hgFZH3rREYEKVMGoSs2X7oeYKtWNLiXCdSxXGQeq1jSFeJRXCAOfp08nNRUFS5T1jOuVu61XmmgV/cnbJ8455xzPpjlexSbozSeCSR533HF0DumDV1Ubx47kMp2MoAO7IlkJuKBhBrdg6cXAmmo8RoXEc/7btGnT9773vQceeEDcBxIa8fWCCy7wwKCiRKScBJeqDLsnN0Ps5uN5rEIhJYOnB52qgG3lLN3RqHaz7b9yN1YhIy5lK59dQqvQ2UX30YplYaAHuKM5sc0qkarK9SoQAUKq8B7n2XpTrUALJ2mKMxbnZcdoIe7C3pOKVzkZdWtFqix7fDL8pN1qrXOJI2rMaPY47xcC/Je5VfGzoj7iTCy/BloQI9PD+I72xcTj5z56pcJ5Esb+8i//ktnx61//OqcuQoh5lSYkfu+BAV9XdRCpCvCOZ0mAQ3j8qzJX/NJnGv7KlBNpmkLgM5/5TOXRbKoNqZyd7g7NFt330iLEVP0RRCwSw8CcHPULHC8BLfNkP359risWKgqBpUsu5p5peZlgkl5FrCJZpWT4nLWWmYaPM15F0hD6iFmBxbC/dkBo6JSuIb546moSRL1GoD1NHXvssffee69YVjBp0GfOvGXaQ9A5O4vmgMYl1SSjTeabldvBUGWyZdenzc+4XgYBOKOnIGUqKlAfC4oqafjD1/YqKCW+ag6BsPo1h+UCSrIWRoipyrimdUj2mX7llasYzagWNdZcbKxk6BRyxsgyWvjEc+vcv/pX/wq1+shHPpLpVciHhyQrrnJEkuTdjFfZVeTGnVM1JpbZnYuWeZBaM9i8Eq8SalwUHxf1BUdkV101goVF0auM5he+8IXNmzdbkuuMl1VcISYJIiWYe/ZsDe2s2EsuuYSzPL+umhM7KzBOMgQ8ISDKROjKknZJw1/QqQzzhZ50JLZn6mNoVDuNdXCpneAo/SGxqMUJUcUNqbzqyIhLMQHgQ8lrqriiXzC+HAAAIABJREFU0W/xqssvvxyjoldlvEqBiVfRM8Q66h2vsrfRYmOlIdQlrc7i4fnPcccddyTSyRBmKxyjGAKKLNakF6OQdvyc6c02hU984hMMzdVYMp5KlPqLv/gLPlITo3IkUQpZT1O68sTuOJLLbZ7p7dlA3BMPCQWh5oobiQ1zAyhOE9+uIALBqP5x0HGpCNdZ/geAQuFPmUWvfMbGU1Y2+VmuLI1JkrFYVmuYuype5faKVyEfqZBRXsXFmNno9NNPR1CSBa1aRS3kIrCRoHIP7tv9tEc2munjnXfeyXWaS77VSJQK31qc/HxMBmxMO3MltNDy1qoQxwjd+dSnPoWCl98DAShECiVlKWbdG29tWPfGMVnoFVOUXd509QhhKCvUlT1EFefl+l5LzywuPb5dR6A7bumaE4xqzWIQ4TrL/DaTECVlZf5RppZ504zaSkrmxXjk4vbkhEmrZK6CZDxdUKukV+V4lYqI0ijIySefzA7I1kDa6SbnYI1KlKigp+v86kc7+XVWeMwbb7wxma48+jONObBt9lPdRDu62dmCPhZ8pS/EuXe+851f/OIXYVVMqvB1WpRZgXATLBHWXMnANHNY90weUzH3bXxcHALmp18i/Lk/VqvFzDeyM2WqoFPV4J0rVzCqueBaYOLgUsXgolCZCuUeVJy4L98mOkU2wGwapIZkBoc7LB3CCprxKk/Adr/bI8ZwZlkVWwi16iCvwi/L+JDlRjkRrDPPPNP11GXBnHTfzCH+oVYcsJgIiVjmzzCoFRbFmGtMhSLTtRwg6aNYR5bbr33tayJr2Do6nsYEsEPwF3/xFxMnCzo1DtFCryRm7P5vWvptVqvLPJ/JqKqVHLnmQsCtda70C028uhpVhJiaOLEyIcq9xjExTaculteorFu8pnApLIfSsIheIFVpM2AueBX5B+Hgh+SZ2Fb8jFdxee4Cz4DhTHVqJlzYlTT+MnE60V93OgcRC7XiZN0gf53ZmIUm8JhBbjSLrr/+etwoq8v4cjkXUErf77//fqQKT82+TSe80H7lV37l8MMPz12Pjy0jwMDN8Gf7hR9gNUZrfMu0+fm1tVeUSRdpKiHQKbd0PVhFRhVcKjd1E4vqC4XKNb7k/mfrX9qIhzpUEGNylRZ/nMarxDQa51Vcc5bLq7QKho2z5yRfWauU/+Uvf/noo48uBq1f33JqPuOMM0QBZdojchCliHNYFKpEt/CDstz6iL7nVmvD7dt+dXaQrXUf8Ds1S8mN1Trot2yUZ8pUQaeqwVsyl2e2kinbSbZaET6FmLrssssiXKd7ui1a7ilkA9I3j2kLqifvduZcg7UwLY27p4yXjzFIyQuVWNJgPKHxikavgNfddjwoKG6XjIDpNSP0IcYj4DuWoldpjKaOtrzBc53lZaUKq1fHHfPn7bXx8pqajRs32rVnuyjB461vfSvtM/2UDCUnKpv7UK7Rkv3crMT4ZeMUdrSWOJ+JgJnpIKBakks+lY2XaVbPZFTjueJKgwjQqPzQGiywZlGrwqgSlzrvvPN4z9SErKfZsajEnNLaZhHtKYsaxR9Jyq1Yo986d6+0nPNlwSCTWSqXYNEfC3gVkuduzk5E3mCOxKuMUcu8ShumOQPVR8aKhTW639FpMInkq16/2O6U4GbCr5whj7uYh5PMDR+dMpRoFpnK9BttsF+fb1kGg1SNwtL+ucHyMOPOIHYrGbVaAzBmFo+ZeZX+j6/dnpk0EsyJQHeipaeGD59RuZV/4AMfMO9XlksZafd3OCQWNeeM7XRyW8wKGJWF3E2T5UWsqdakqYl4FfMqS2/Gq7De1ngVcNTlmNjmmheBj86KYIlXqYKZjMvRguqq2dQ62S3MjonioplJweJKBYGsCozKkwwCjVTZo5Bdj5P2EfD0gvFjvZ4rqtWOLtOojGlx9qBTxfjU+RajqpO98bxDZlQ4xMUXXyz6uZPGgetXgWl5s673q9kzWztxI5Vc1jBki3nFEr4UaWpiyzNe5UY8GuBRa5eiV2FUo48ZmpF8qhIN9TFpLRP7MvOi7PY2orMZ27Djzxo2M+MwEph4mJYF214E/CnrVGJUPqZNEgNzL8u62YsTd0Ws135MrlTOq7XZgIbhrxp09XMx+Xlmq19OgyUMk1GhUAx8pCnODQ2C1euiCAYDMPONDoHln9Vv9Ep2jhPYeLV0aSprz+gJXrVhwwb+VUgVzpd9lXgVvYqZjB1Q7+hVVuUF2QFpJ8pXu4qs7j46PK87ED7oIXmEvWranr5Q3XQwo1NqMRyrE2AdsPoOQ0al0Vkq0GtGK9Poxz0q+wm0fOLHZapjveaqGVut9pKGvxfD8FcN38JcXiveKScqjR0ao8q4FMepwrFYxS/xjLSIDqPz6X0vE/vCXV20yYlfdeQiXpXiglpW08qaGob4WoYzXuVjctCheWTspGYXLB7IE6qUZDyWKSzKw7orfjUWeI/djHSivfOzxoEsPHPV6HFfFcnel2VUvpKr8bOskN6dgAI5hna2YNsbkTEq3UnrQZCqZY2snxXej1SN6ohzNSYMf3PB1WzirjlR6d1wGFVwqZmT1f3dHWQwOsE0t3T3OPfHClRgJoCNJ8Bd8Cp2SUqGZmflI1J6N8qrkl5VmVcZepggmsgTqoS0WcvViDkde+yxhBMmudF4UeRMTMtfCcZfTZO1c+IJ9qCK3KZ0bJ5GxcjYFC+cWHWnLhossNMwSCDZgp1jVBrMMOrbRZMqLTEuRsFodgqlJTbGVEw6t6Dbni4qt6Sk4U+Qhh7E96uMwjIyds2JCgYDcWuIEFMl57Pb92C8qSwPE3tt8XCLxBL0dJQlTEzchYsTX2KjYTro6RmvEu7olltuOeWUUwT+sDUP0SnT7MSirBkPP/ywclAoqzv+5Dqb48wSVMRNzWphJUYOZqZPCSQmyXAeyjEnlU4br5Il9zEZPurVh+Q65BUyE7uAegprhFEtiFSp14Gje8bwozCdfJzYkhW8aIDcIjzSjOrE8+JQMtTn5Pj681YW6Xcg0KmXz+xoVP8ZFS7lrXzhe56NaPGJG6sd+8OAS18mdtaCwcb01a9+1c52kkC6aU5M2Z2LiIuDi2vuJTZaSFhKvMpf926BJSWjNExkOYgLCuVAwkgjsjh54xvfqJBf+IVfmKu/arn22mtR8LlYKfARiBydUq/WUt00b/yruVrVr8S4rxdL859FMc1DQzyx/UjVV77yFdto5oJ6YlHZRVAbiyTWst4y3SbrbdCpDCInUEJk7UI1Un4jo1+VP/er9KwybXCzcnbJzuKkCQS6Ftsz9anHVr8sXOfofqUmRmrgZbileloddeboY4eRhlGHX13QI/2iS/lrbqARPCSwLgsJhcDf7ts7NB6P8YYTJ7kHX/217hIY6EZu37pj9cVOnCQWRQFCnuSiZn3r298GiPQWac8bxxxzDDTmHWU+T54CLTbwdJTJDm1hxCfe6YyOw3upV4pR/d7v/Z4oCf/9v//3//bf/pv3K3//+99HsMSvGgcT9ZGykSBVfuAGQoEAZ2k1T9DZBLvro8bl8Was2hWwAMo+DPPWSeXui/XqmJmdXT9srjNRKpmgg27pWt5LRkVi+cDKh5gqOe3Gk1mA3Vit2eNf9eIKPkF64eXj4dKq77UeRHt/rRwMVa74q3d4Nh5A8iFToR0eQK0lSJVlpuPdTLxqPNi6ZrvpUzt0nyGPncJ6wP9D3Oebb775W9deu+WHPyTOeW/xueecY22uwKJyyKTqwAs0GOa+zX1M8yq9KC33VfbRkM0sJ0vc95M///M/R0k//elP6zVO4y+Z0Ot1EX1ea+O9gzZSVTlIFfxxKcQawkQp8VT9IpyPUli8vLISM97gYVwxNH5N/As9gVTukXsL2/3M7EGnZkJUPkEH3dI1vuurSw5fXEp8KQpE7np8nAsBt11HSXecuUpeUGIsynMkMmE9SFY8awYWVVAdasWbG6lyu0wLOR5J45EdZXEbLcjbha8YESa+dFnbWOJY1izM/+/uuy2bnGOQp/e+972NN5vCYY3nF4WezmSi4P32t79dQJisOlb0meU03otlFfiJT3ziYx/7WK723/zN33zPe95z4okn5q6nj8n8d+GFF078duJFRCpxKdia7aK351jUaC5jNPqxkXNldv/XVNBTcFENabEkXhgWpCz4yg2q4Nv4ahEITNTCF1HRXGX2hlHhUuwXZUL+z9X/lU1sOhJvutx9Ggwhyv2aDJO0KA0eNT+x+pGjCrrgMd2r1hjCZPSk7lCaRcvSnmhZQd7lfpWcXTTYtL/ggguYAq+//nquNlr12gMPPGjd48pFx0LbibNqAwJHU7FsO59WHWAxVypLQRr6GUKMxxekmVZ+L657aP7kJz9pn6MNBP/sn/0z+zezZ79vfvObZ599tl64gqEWdOeOO+6gLbnXFaRJXyUiBXPKqwcMqM5kNoZpZrElE6jdDxALYYZGR9JGkJJ5O5UMxQcgIda9pTKjcrNynynze7SbptS+kk5h1L3G8E3sXqO2t6gHjCq41CKmjnurLfRds/25Md10001GfNOmTZ62USK3OevExDXYylTMqGhUdlpdd9119C1lZoV0k1clyuIv2pFWPlRSHw0TQdFK7H5trS1z125wwpx00knEMDS0gAmlpR0VyBCe2ADf6sjErwZw8Xd/93cxjD/6oz9itmOE/S//5b8cfvjhrH62R+hdolNOXDGIxf1Nq8U0UpXQ9tfyb/4nr/Ni5LPq6jMqXF/Vnsf8QvkecdrTa7cREZU12A82q6tHJ8lzwGObZ63Kzb7yyisvv/zymdmDTs2EqNcJOs2ogkstdG51JJICFmUFMtZEDmE5jzvuOMtDGRdmKwry4T44DSXlWL2OP/54mrzH6FyyjFf5arkGUDJDahvCgUIlRoXEOHGvpw8tUU20WHLbwm41hrCXwzB9hOSNN95orS1e143XUBnVRz/6UcTi4x//eALkbW9721/8xV8w2v6n//Sf2P5GQfuv//W/luHEBA/PA7mUic2YLR4zEpEqsLGOVtrIueFzsLwjhQ4txD+Qfq0iU1111VVqecc73jEz5Fgqp+Bn20hr5yoEnhwD0EG/vsqkMwx/c2FeM7EZWLOEBWXvLqOKEFMLGvKsWPcOz5qoTHaltRMsykvfkAaLtBsZJQmnSZaLudrgDlh8a8ao3vzmN3t8tBNHyvEVCAgak4yAM40mc7WtIHF212YII0ElRqUv3Lyco1AGpb5feUEDyn+FbvLoSpSUODHOmSyoTD/4xPhXuVrAm8ji8FypGPvGgw2iUxjGv/yX//LXf/3Xcawbbrjhj//4jz/3uc+BBUkl6hQoxH4alCqz10qfRCk4O+YVpXJDYL7lrpT5KBfyJBiH3yxdyoEZu6hhKbuG+fZrX/uaj5QqzZ44GXRKApSr+DdbpknNpjEhtdlNwBTNfpvzVuE2UtLw5/mp1NbZeVuwSumDUc0x2sGl5gCrXlJ3Rkc7Ck1iUQiE6pAGXs/TNI/yfbJCOwpu0J4+MTaP+56tCS3TSrZgwCHxqmlp6lzP1h73a4/1/lpyLDAolL9u6BqJu5DT6tSyoLz4Loe25M2WI0P6pS+81yeuoLn2GAujL32ukFyy3n3UI9FTs3cej7pM6Smr36/+6q/ajym2qmAWjIOmGUnvt3/7t5EPHEVIBWnEVshhaGLwnPvZn/1Z09tPhmrreWD8kWAuuDR1rvR+FyzmzL4aycznhMI0sZBEqv7mb/7Gt+jj6DugZPHjUq+f4Vy1t5YYqp5hWGm9MsgoZL/WeRtQ0vAXdGpeYMfTd9MtXTu7pVFxFrGVbymqyfiYrcIVtz+2v5mx6SpDwRzgXuy+zPcTi+K+6qRZKcgiXcCotNx9nDMQhSDt+MutW1nXQGEN09RGeFW6KatLsZ7mrTfu2sp3oIA+IigaZrE566yzsjZ088Tju2Zr8OgymZqqIxyxrZfTUM31yGSTJXex7x/NZ3ObH3qKSDTqMuXKv/gX/+J973ufOWDm45QOMwGX+v3f//1//+///S/+4i8St+iRckmQgwLsNnWyHspSEuFcCRU+pqmLSBEmMelbb72VomYBM5OLx85kZrhPpEp3TBtZzA39KlDjKrRwEVm00CMNIzvBtXL5YfirDN1cGTvrlq4XXWFUwaXmmlINJnbLczQlU7mn0F3cgt2XHRyA8BhP6paEBts8WhSC4lZeIHswlFjYhP/WMDt6ilemjFdVdq7Sa4X4q8v4GXMYeJ2T6JASxfrWXrDRLnT8nH4GQ+1Pey11zcqa/rL1GPFiSEd7x7JZPvFoxo6fX3LJJb/zO7/zP//n/xxtJznq53/+59H9iYwfqQLdZZddlrKYw+OMylfommO02MrnJl5xXsPqwKXY9VhV6GfGywRO87k4b/pWSmKwmGSmils6muIok3HpaYCcpreTmUBNa63fSEnDnyANXVl6p3Wmw9c7K1DBbPnDSpGKEFPLnb0mqLtJ5Ta4h9IePNu5E2E2pBfxXSyci2NRo021FLnpe7gcvZg797jMm4ppZlxlyaVMH3XEzTGJVTPXM9zCIaMub7dBru/Uc06fszhpHgkQqTr11FMn1tWLi+IniZWaInobYpikLps55RkSfpkUml50ea5GCjj8W7/1W1ym/sN/+A/2+hFE7fUzf9zZSpaT8BxPXDyxx9MXXMk2QIynMeF9i+HZsMnyxUZJ+jVe01o1XkK6orWnn346fqnv09J087qZ6cmBiO4uUaeFIrjm9hNMLG356+7EZvXkYjCqyQOFS3GZ8qw2+eu42hYC7qcoEdpRvkI33xQsClfwCE7DcDMqEIrKl1whpbt/8cLjXsmwYqe3lAhfSRJgRdG7iUbAjEKx5uBMnuwThQKjLLjVbutmGvdW1VXoUdey+KnqF+oMDWOteQlDwJoJZVoLMcolzWaiElOmhC6nsR5/+MMf/l//63/98i//MoEHLDjoH/7hH7pes9lEzZolFGdHpNgWWeuIK0maMtCm9LxcSjt/+qd/+vzzz6/f5eIGL+hbP2FPPu6BpjdlrnItYKycNzKWRKCzbunavxyu7AaNSKFTJRGMZItGANWwWBZTIrLNaLAoXIGtsAsLZJKp0ko/EShqmXsl+6PlnxlipuyUFYJrWm9Qq4xXJf4kAUrhzusrpMrhiX7bOv2i9tUR/LKqu3ZiyaRe+DuKMytqybubx0riDfBL0tmudb+4PSaYGXLppZf+0i/9klnxb/7Nv2HOs6mtQKa16Q+Yf/Inf/Jrv/ZrxYU39a3JPFqUn7xBYbdlpCPM0Jixq1ya0fQTz5Mo5QUs3Lp7PbJGSvu5B3ju8pNHsCb2d+bF8oY/g9GMNXdmmwaXIDSqHw1pcKkfYdGlsyRTGZ1co9wg3HDd+t1wPcN55y4KVSZYVK6cRX+0jI2u9OPVkQ2Q+M9+9rO0tHT3HE8z8Yp7K3AwJz9jDNIjuCs8ohj1ntu2zW0Ys7SudHOb3sQeVbvIavmpT30KekY/o6QTPYTGy7dUI50ijZVMP15C96+YVHrnAI5Ijw5bIAuabecpHeuv/uqvkKpkJS9I3MhXpjHlyew1mVN8zu9+97tmtcPoVBClkoEPcWykeUsvREfcQ9wDabF1GlPS8Bd0qhrIXXZL16NWNaoIi1BtDrWTi9rPB8iSwIPbDiM+QG4xuILbPSZRIVhUO81OtZCOUuOnVapfZCo9woTmYoRWGisQxqYKD6/KVw6KqZBBalHTAOSChkwzDCFG9JhEqkouw4SQf/JP/gncphU+pOt+LBzO/uAP/sBsmYYPzz9yL6JpFm3YsEGWafJwsTl7LtzSY8Df/d3f2ZZoh6afOZnKrJ6rEIlPO+00W/kojl3Qp+dtfHF6D40A16/ttvuqRxj+qiJXKl9JUbxUWQtI1BKjCi61gLFruEiPsBQpnkDKxZ8QqQKbRcN1N1Ec0oM2FZREpuKfzuvWXvfyXUMdIONQOKMAkaagimF/JQgFVQMlJdQlRsWK55meyFHQccu22GMIWcpSkHIYX1mPdRbpRJgKemQqXnHFFQiNqQiZaYwKdy8opORXdCkH7cRiz/ccn9M2V0pmT8lQDaKUkFoDNt164nJz0EH4TGPDM0Erb/gzAIvaAj2zlb1NsOqMKvmej5uTejugA294f4WE7bvsCqN96hqrJdGYeGB5KOn2wajHAWvgo17YPeu9NcbfM8444+tf/zrx0qM8WSVlQh0KGJVlmw3l3e9+txIKKxnUl0iVo7hLbon89D/96U9LWZ7fF5c5/i38kTZuUnfeeafA7tRWV+blCrzliFLvec97skEfr2gAV9wQTGaqYRoRD1GVO4W5ltnxF3SqAsIFd5sKpTWeZYEaVYSYany0osBiBMghxTIVUsXhyc4mJ1SBMkvLsFeRaXgm1UTfrTGZfOKjJZmKOSpveKyfVojrBK0zzzzTc39J/lpQ1MC+wqIoweK7Xn311ejmNFJVzepngByEFkTKYUsBS1+yWc8Fo+Ci55xzDgJtS8cq/BD0kZJtXEruYJ0GJjkQdNO+Hb3+9NraCj1qjPa80nnHBSp9Wgij8vgVIaYqTZjIVAsBGlVx/mT487KIZNMss8zzqFiFtSThluQo/Z3YZau+N9LQqNKCnUhAgfwMOgizk84UbIpHbajfAplPEogSqSozG2dCYWiIKwhB4lJCnDjw2pkZRxMQpWzfG+UEiVT5O5pskOfYPxaL41YgoBkg5Q1/Qacy0MqcdFyg0oWGGVVwqTLTItIsCAEGDotHQRhPSzvRhazCFMWWh0DMbEmxN8zM7N1PUMyiRttvySc833///dvdyl58MTGqAo3K/lDvA66msozWO+BzHmkC6HMSF6C8AMmZCFBbE5fyEI9LcRZMr+GjKc7MO5oAl0Kk0KnRi+l8FUiVKU2RdWfgL2i2l9Gwx4FKV0oa/qZlj+sTEVghjQqXihBTEydBXGwTAf7pGaOy6pNJmAIZqhwiTHp29/j4tI08Dz7IXbrNhnWqLiyKQGLxmMttzhojUKoXNXp8z/yiEkO1jyzXQWk87gtTlLseH3MIANCrhbFPvCoXHrMMGTXJcSloW8JxKZsxcakKgb8zA1+ueaMfk0Y1bK7gF0HJdg8BaU1GNQpdwTldvWhDTUHO1ftqJRhVcKnVm9jd7bHIOtddd527oQOFst5oq5VJ+B/P354+UQFpXL//oYcEleIzUdyZCtvLiwtc4rfl5ahpjbSm4qzo6agBiLiSY1TgxVzf+9735ijCtGJX+Tqe6hYKq49//OMmW+a1BpOCjX6ZKEUyRKTs4Ltv/TA0c4E5buCbmZ3P9YBJleHwrAV5wNbRp0FUEqWgUzOnXJZg4Fa/4FLZSMdJRxBAGqxJZqanTPYUCw9Ln7ukI2thcus5+pWv5Hf195s27bvnngUGF+TAodgse79O6rOoXH+TczpMsuugzt3pGFUp1qOsK0scJ+MIMDbRRX7mZ37G1j+SVTKnjidLV0xpBwqbPKU8taNSdKnREZmWd/R6gYFvNNnE8wGTKr8X8i2lyh6XOowKbiUZ1USE4+I4Ah2P7ZkaXN2PKkJMjQ95XFk6AthSyYXcfZOCcvwxxzz8+OMPb95cIFZRDvrFqBKLMhZzGfXKjJ295Zz6c87pGBXHnSx7imEhEGh2JU5mImDIuPBfcMEFV111VUaqclY/1j3lYLSczb/1rW+JyW4HXzWv87SDb2arChIgVWzoJX9rBeV07SuPXgKmkKm8jga1TZhXayRGVTKjwGV1XwBZsqZItmAEqjCq4FILHpQoviUE3D2pU4futtteu+xy/yOPbH3sMdGux+ue9+l/vIR2ruCI2bGgGiHGOV0MdJhYbJKakotYwSVIAKokDS6oGYMs1tidcsop3P6uvfZar0PJVFU4p4OPlIt4zPXXXy8wWAWv89wOvpowolODJFUcA4jcHrE8OdSBCDglswedKgNU952o9GI+RhUhpsoMfKTpFwKUKndPt1Gmq42bNh20HvB6tAtddqVKclQiUqNtXtC5FR2X4krF6gSx5PTDCJVVx48HmBakUX+g7Ns4KUYAaN7uglR5S4wxZQrk82ddT9v32FKRV17npKmc41pxsRQpktLEHXzFGWd+2yapMs0Ss8TjF6oZq8gcphRCey6cc3BxJRSYahGw5ypakY+DYlRukd6m7u+KDF50c9UQoAqgCAT/zY899uQjjxx80EEZAjXdKbJymjpZnFGvTAutzd5Jhzlld4P0TI+Pop6MUJdcckk4pJdBcmIahlpb/3AmeBI5vvzlL3sTH08pjtLMqayuXoVESUW5fBzlsuOlVfA6Hy9k5pUWDH+JS+kvlgkBb9Gp8969mT3Ca3Epu1hERp0JcnFp11xzTUlG9fza2owo+8U1rcC3OWfNbvZ4tkblvhnhOrs5eNGqZhEgwNjjg1pt2Xvvh71HdssWOwSbraJyaViUG70VxaPzcuUfKyg65Rg3hgpG/xM/8ROZG1Dlzq5mRngiCsgTo6rFw05VzJVANep17qLRZ6rGYi3204Bqh0tNq73B60mU8kiD4qCS1Ck/0oXSqdR4vNbCp1Jbhotpa3Fnyxv+gk4VI9kLt3RdKGJUplR6K19xV+PbQGBICHAAEkiJWLVl330FsNpjt92sT8vqYMtGvTLdJBKIMoU8WeFgRY6yyHFOZ43iSe3EOlSmnEiTELBgowhIQ9q1d9ttt7HuWcgJfuJM5pZzyRCs8XAVOTA9A9trmbvYr4+JSzF6mmDmW2bmq2OGK48A2upXbzKz3JXPNZ5S9tjxNw5LhSu9MPnp12RGhUtFuM4Kox5ZBoOARcuxXa/asmXT5s2Emeyevug+JhaV/i66rgrl40+I1Ne+9jU6CqcfO9SsebAin7zrXe/KbU+rUP7qZEEa8ANOaex6Fgx790gaiBQakUDI0al0Ealy5FDKRCmOOx/72Mes4h4J2Gdzybr/UZfB4i9/QzKpAAAgAElEQVQcCEU8ydLuh6zl48po9lWDJ4lRaYCJzchYp2TvvLr88svLlCAeSV9jtJTp3mqkyTOq4FKrMe7Ry1IIuKVamRzWMPfWUnkqJcKf3MS7YNSb2XyMikxl1T/77LMxgJtvvhknsOzZp3bIIYf4dmYJK54AXXAAjWsUGx+vc2SULuUiMjEvOLjU6HtjeO2YqwJ+spKYvZyB5i2wZnpToppnVep+kqYsQ9Nsx+NssmaDJ2Y3nz0nQM8bAkxpbZuYrMzF8oa/oFMFePZSo4qwCAUjGl+tJgLup+7vFZa6MnAlIQqRcpRJ35E0J510knWCfkCgsvbYxu8vRujoSAu72QyziPMTi57lge+5d/nhVXb20V0qrNnT3htz4YUX4lIY1Ve+8pWLL77YeZtooFPzkiqw6D5kkBhk3VxyTGtzJuBNS9DUddObRO1pynjVKTMMf3XQS3nJ4Y765bRQwj/eAYNLtYB1VNFfBApu8fN2qqcsarSb/MyYqxApS47r5ITRb+N8HAGcifGImzkWJayUTWSIFPepCjaszMA3Xkt25fjjj+fW5vjMZz7TZVKVFCmy06jjedaL8ZN2nKhSvR6laFRcqciHNWkcU2xJCyyJciqXHIdjZa70RaAyILsn33NP4SszOtHRQKBtBLAoKhQJp2XBYEH9FK2HloBRhY2vGOEkbfLit30vC4JAlyLJOIrzjn+bM/CNJ8iumGbCr6NT9BV/L7300uyrLpyk7gMHU0HHzSU/kDINq8lsylSRpeEsuG7w95KqPWvWWz54etCpDP/Rk54xqtGmx3kgEAg0hcAA5KiJUCBS1hi+wxO/jYsJARIUi4/381gP0CnxJnDQxLHmgiiJUvO+Nwapok4lUsX8xxQ4V6U1E7P9TdzjhkslXcrkYVZzzKX+tuNElfquYbgUmcruS+cVBi7DMAx/GRTVTvrEqKr1MHIFAoHARASGyqJGO4tR2dDuCqPVXCviaCHDPrcAk6ZuvPHGq6++mq2qWqDIMga+AhgTqfqzP/szjurOW46nwM41SqoyLgWZAsfzgu74qoKRtLjA4m9tXBWgDjus6UqllvKGP9JlbO7IjUtfnKg0OzxJc2MXHwOBuRFILEo269bcmfuZQdhuu/3rPLj3s99lW410MhtZiYkxFbx/0BGiVMlw2wVtMiHT25dTgMT2SRUvdbzQPKHYlXE8L+hLBRgLSivzlWZ7ZTIhjb2+NcNf0Knc0PRIoNLyYFS54YuPgUBZBNa36P3jn7J5hpLOgztLVmzumzaeGBUvHA5nKaBRSepZzcA3rQ3pevKJvuqqq9oPUqXX5ChBIiiaoCBngqW4tQXftmnyS83Aif28sVLOXrzfCto286u5DH9b7faYWeLKJOiRQGVMglGtzMSMjjaBwCoY9WbiRHqxAerEE0+ss0DOrKXvCdDNtFnMFj8KTXF3ahr4igtHqgwZmcqBH2hVcfqa3+Ycz4WBbYR5t8+oUEC7WYUIEby+pisVSEdtoMUIB50axSc0qlE04jwQGAgCuJQIlgPpTKVu2P+PSNn2z3xDgFFGMKoCIMkbvHCYjTZu3FiQbFpYqYIsFb5K9j6MaqFBqjJnqVHHc/5kBKoKbc5lKanz5XLV/Ji2+1Fk0eKaRXGlMtY1C1nB7MGoVnDQo8uBwDARsENNWKOkOnheZwfhrhtEquRgw0rsLo44fIBgOJproaLUaEXZ+UKDVGVcygkeORrx/KGHHqrPqNp3okq4oXEkPbyKRlXTL34uwx9Js08xf7NJtoCTfln9Iv7FAqZAFDlEBNxPZ9puBtNvRiKO57feeqtlwOpoRUELqHS4VNCpkqMMKNvvyRt77733uNnrkksuaVmxSF7qhtLgiqpQshczk+EcyfselxJZCv/AvPGPLKOL2Xnlk/ZNfqmpBs4g4ohwq9z4LCPDX3ZefBJ0KuFDVS0Gqmvf/mjed61l0Z5AoGsIEGy61qQG26N3ttljUd/73vceffRR/IlbMQNfIlINVrQ6RSFV+ARjsVU512uElfiXu7joj0iVIFWJVDH/1awucSmBIfAnvufsm/jHKJdSPg+k+gKVcmputavcUyNobwGa6FfgqFxOysjwV7OEyN5xBIJRdXyAonkdQoBGNTyZincUTwUsykZ3cpTH8bRdvP760aGRW1JT0AuQvuENb/A3p+0RinCa9jl6IlXwSG9TrgAMLYpeS5eiG7EC41Ip6Hmug6lkr4CsUEUui+ocuYutfSS54aC0xvo1JsNfyXKeL5lu0Mn65URlKIJRDXo+RueaRoBfdtNFLqG8TI7ygjmOw3yosSh/MYCJ6+ISmjiIKoGJwXCZmviaL6RKUIP2O5rMf+rdvvdvHqtKxqUoRlzEMEVeYpj3oucM0q/q9oHKaqRRGUR6bf2eljf8vSKrfoVPglGt8OBH11cAgV5rVJkcxVmYHcoyj0U56q8TKzDyFbuIcHjbLsJKpsqKsDanc4a/uThNVkLNE/EU0u4/C3yZNT7jUrSixKU4h+UMfBObZKZNvF7+ok12Ip8tUaMygsZLr4lV9YldGbTLgzP4lP1ySzccEY9q8HMyOtgkAu7sSBUW0mShiyyLHCXEogbzd+ER4mTcp2eR9a962dgqOsWV6s4777RhbTwEAEbFqJTicLYJVhZPQQOoVmSYibVrsIOBD6tg3cOiyhCprKg6bunM0N6pd++995566qlzVZrV3tSJH44RRK0cNbkdRqVfJW2IXpy5yiv0Uh42as6ZsPrVBDCyrxwC7fu+VIA4yVEe7jdv3mzBRqSs642YLSo0ZpWzYFTW4yOPPNIiOo0WWDmWMqnEU0CkJnp0EWMQKc5SiLguTHM8Lx5ZbunFCaZ9++CDD/71X//1F77wBTPWW3SIfNOgm1ZCs9fpi0gnF3uMqn7J5WWqVaZTcO6dyU+bg1HV/4FECauFwHbv9FkhsJeCiFX59ttvt4nMkz3vKFqUtZypIox6SxmOrFIDYT3GqLIYCjmNs9lwBlm9M0+SQ1UiVVk8hWTgo8RkjudJnqkwiyq4pd93331f/OIX0Skk5p3vfCcmCiv+7zP7sugEPMZYyY1gBRxybbvmmmtyV+LjYBBYcRI8mHGMjrSKAEaVWxRbrX7nyshR+BMtwcJjjXTHt18vJal/99+5qvhUBQH6isXYgSUYpolFJKHowgsvnPjt4i4mUoVOacDHPvax97///aQpdIojNjrepjLkSeA73/mOqulhb37zm3GXRgShRqDTErSYyguurVu9dq/WwepXPv9LKyx79NHqt9tll11WfnQjZSAQCECANYQpbYlQkKNs0/OXj5RFyPJj/cOoUKhgUUscl4lVGxFjZCXmEsSVyrnledyTxtZ62af5M00suZGLng2OOuoocciIUgSqE044AZ1ysZ2JhMDdddddn//8572K2ObB4447jo3PTG6TzM2EERTa6TkK7UM9a/qnmwnc5sYnwMRmVH+z9MTi+nORT/rXv/71/rT3H1saVr/eDVk0ePkIWBSXYvhzN7/nnnssfkQplI6XCeUDnerU8rP84eleC1AoXjjYUhqpaQInD5uWw34mZykM5rzzzgMbDSYX8XxxWCJwoqB9/OMf37Rpk7ducz/3TmJAdXMye2IhMVJ/YVUfkyuvvLJ+IcMuoY9OVEYkrH7DnpbRu0UhQB8q+ZRZswUqsuRYaVj3bOFmgMCiapYZ2VtGAOtlM6K+WJgLuHiy/QlrjtkstIVUFgc6JbIUekccor6osZ2pZSZ7KrBtQr2nnXYamgKfhfa3fuFkKr8+Iwg059CrU+Zchj81raBS1VNGFRpVnd9F5F1dBBj+CpbG+rhYdTZu3MjT3L4nsgE5yt0cnermE3z9/g67BGuwAE4oOEZV7B6EVGVO4ovABBWgsDqS4zlOI8ABQsPopjrmv6YqJaOOF6UWb2K54oorWL6Ebzj22GNh0n06pSNGECd24H816ZTS5gqevoJ0CkQ9ZVRdfzIY/03GlUCgCwhYkzCqaeabai0kRwl24N5NOaBSWHo9FlcrKnJ1DQGjib54+d2WLVuK24ZU8clN8aKKU871bRKlSCym7rjjOWvyXKXNTJx7nR8OYQuqhwSO52effTbbWb9iefhVepg54ogj0lsvPVDNRKA4AcPf5ZdfXpxmlb/tXWzPNFjBqFZ50kbfayHgjTSNWGesoKwA/nKNYt3rxSN7LeBWMjPybbbgGbYUzCTiGJXJ0FTYTywq0Sl/SSz8gaYpnTSYxgdH2HRcyqMCAYy3luk9s/uNt6GRAv02HRrvqM+o5jL8NdL+HhXSU4EKwsGoejTNoqndQsCzvs3wbrIVmpXkKAsb44u1k4DBqFehnMjSIwSwGUYuhIbgMbPZSBVP9pqUHZdyEFPN0uKI5172csopp8xs1VwJ+P99//vfZ7YWVurcc8+lS6FTZfo+Vy2tJdZ4P1UqI06sFzVtf8nw1xRpbg2EdirqqUAFnGBU7cyQqGWYCCBGczEqQpQ7KW8SK6WMiJT1dZjQRK92RiAxCdEyWdyS09LO3+c/mSocqi699NL8FyU+W+wduFRyPGerwt0LqEzjJj8FCi6lDforIAID3wCUV91BiDnvU/L4gflYYiiKknApK8+oxDGr8uhWVH93vwuNqrtjEy0LBBaHQBnxH+sSNcoDOkHLvdjaZk1dXJOi5M4igFiYAEhGyT0NSNVXvvKVucJ+JiLlr5nJCz7pUgVcKmFFoHJy9NFH14ROvfSb9PIZTmPmOX/8mmV2JzsYkVSkincj4a1+w8q/jkZdq0OndDYYVf3ZFSUEAv1DgOHv0UcfnWiws1nvkUce8dfCZl1BpJz0r4fR4kYRoHDgGZyKSpZ6xx13kDPLeKknLmXJn+h4XlxdcpafSbwKCiGG4VIslZRXrwu0O7WkcbOgzA5+hRMnRzTdJFPVbGEY/qYBGFa/acjE9UBgyAhYhFhwMkaV5CgGDiKEhdBJOwF+hgzxgPpmtrDzekPcXNyFksGhyjENCSwqk6aKHc+nlZA0Kt5O0xIUXEcscKlbbrkFhRJcCtVApwrS9/orv2jPRcmVSvh7sNfszlyGv21ra6+sWV8fsuPlfWjm5DaGH9VkXOJqIFASAWukR3xalGXJcmJdCe+oktCtYDJLMrNRIkBkyzIIJNvfxLCfuJTD5ga7z4odz4srSn5U82708/zAwCc0qB5R0Ux+zZiLLBa3qoPfGjhPSh6Tkpc9Za5mI+cy/K0CnYJnfwUqjS/1k645aSJ7IDBgBPAna54Okgc8v1oyh72oDHgoW+ia2SKAwplnnjmXa3PyUs+aZ11n2uMpRQpFy0R44ptl4pWkaFk52YmHgbkin3mE8M41jvN0mrPOOsuLjbExjGrwM18HsUakyiDishmAlU+S4a9y9kFmDEY1yGGNTgUCZRGwkg1+LSmLRaSbhQB5g6fRMcccM5fCkZSqjEvJi0KliOdYWp3pl0x+JaOlcw386le/+pd/+Zco3dve9jbv40tB1Oo0YBZgnfve+weTdbWRls0lU9WNK9pIixdcSH/d0gETGtWCZ0cUHwgEAoHACALIB7PROeecgxLhJSPfzDjlpS68Ey5lOcelyCQ1uVSqL5n8Zjr88aa38fCzn/0sIfb0008/4YQTZGmkATO63bGvjZpD35tyF+NKVb6Lq+CmExpV+fkQKQOBQCAQWHUEEBGs6IwzzmA1m8t4xEiES6Wto82CWGD1u/fee7/0pS99+ctfZtrzAhkO7LZi4IWOZtvQi9L0mn3T9oLkSlW/zWH4G8Ww127pOrIKlHd0vOI8EAgEAoHlI2Af/lvf+lYvMrKElA80gIpVdpaa1uekUU20+vE6t4kP7ROIkpkSk9OAaeWsznXjBQoc1JtkykSkm4kMw1/5UJ9UzQGPQa9NfgY6GNXM2R4JAoFAIBBoGAFSB1LFdiZWpDffOZ9ZASeqAiVpZvbyCbAEARGuv/56Bj5hP9OWi8aZXPn2dC2lsRNUzG6Au+66y7lxqdnCuVypBkynasLYhezhR9WFUYg2BAKBwMohgKNYmIVEZz8q6VC1CEaFFoA+hU4Q1v973/vexz/+cX+pJu94xzsEZViEkbHXg41FGQiw4JqNdASjmotUNVJpNwvpu9UvGFU351W0KhAIBIaPACOarfgbNmwQTKGMQ1V9OWQcU47AJ510kr2E3/72tz/5yU8SzE4++WT7+Oxo0zxe2ONZVvwKRgUBMVftc2xKupuLUTUQtqGTQ9hrn/SEaPxaOjmzolGBQCCwGgiw951yyinEoTIOVU2JIhm0oiEgT5yj/+qv/oq3tZaoQsilLEGcTESAPTRt93Miuu/ENHNdnItRDVUI6bsTlREPRjXXtI/EgUAgEAg0iQCRw94xDlXEIT5VxQ5VzTIqjtW33367+JxoAYWM8bG49ia73fOyYIV3CmDBeb8RVypj0XNIGmj+ABjVUMluA6MbRQQCgUAg0A4C4hFwqGJlK+lQVbNVqNtVV131hS98AYVK4c55BQWdKo8qAspc65Clkf2PZMK5AlPVdYYv39UWUwajahHsqCoQCAQCgYEiwF1JxEhvGhZPocChamYczpnwbNq0SWSpv/mbv6GyeBnOEUccgRAkx6CZeSNBhgBlkUaFjPLcb8q57ZprrsnKn3kyyFBg4Uc1c9wjQSAQCAQCgcBsBNj+uDEJiT7Noarmyi3ulKjrjz76qMhSiFTaNhhcavbATEmBVHmjIhhRKxsLpqSa4/KKG/4GIFAZ7PCjmmPGR9JAIBAIBBaEAHIjdCSHKtTn8ccfpyHlKqrmRMWMqMBbb71VoE4uU8ceeywDn7ocufLj41wIJLczMhU8G2FUKXh6+VCfc7W2+4kHIFABOfyouj/TooWBQCCwEghgORyqfvqnf5r+Me5QNW8wqm3bthGl/vzP//zmm2/+8R//8be//e08qdOG/6BT9edTMvyJ80lcdF6/QCVceeWVjZTTx0JCo+rjqEWbA4FAIBDoLgIcqpAeDlXf/OY3SVajS3V5jcp+/ttuuw2dEhCB6PW6172Os5Sju93uYcsYYbm+OeyUZPgjAdbvxLyGv21ra7Nj7ddvVislBKNqBeaoJBAIBAKBVULACn3qqadyqLrhhhuQqrm6zlyIS1mcxOfklUXxwskiSudcGJZMTOdDUtFcoT7vv/9+H2s6uql3XsPfYOiUvg/D6hd+VCV/PpEsEAgEAoE2ELA2MyQdf/zxYh098cQTyaHKal1s9eNy7tUxuJR3HuNSdgXKGNa9RQ+Y9wjRFJHg5557btxQW6F2MRRW0JWq7y+fyQa6GetvVlycBAKBQCAQCNREgLDEYPeud73LSRZMYRqjEhpUcKnPfe5zZC0BEbzb2JZ+waWCTtUchZnZjQ6ZCqnCX7NhmpmrOMFcwdMV9XxxcT35dhgCFbCDUfVkxkUzA4FAYJUQsFRbpzlUcdBJq/W4UemBBx4QWUp8KcCcc8453M9loW+tEk7L7CvOyoMKf+VN1RSFTYa/8r3K7wgtn7NLKQfDqMLq16VpFW0JBAKBQGAHApyobNCzM/+WW25hVxr1TL/33ns5nnNkPvLII+lSNvBjYCFK7UCupf8T02XsMzoGi+GvkYpX0PA3DLd0ox+MqpGfQBQSCAQCgUDDCGBIeNJb3vKWjRs3iqWOUVnCBZfie/7kk08ed9xx6JQXoUjmaLjuKK4EAkaBuHLfffdJa2hGTbQlck9NMq/h74X+L+ShUU2dDfFFIBAIBAKBQCMIYFRiH1x00UWf/exnPcffeeediWOxMXGIdt5ILVFIBQRQKDQX2aUgEgsbCfKZmjHvjr++6yKDcUs3fH0fiwo/hMgSCAQCgUBvEBD7AKk6//zz+VHZBcYP2ia+CIiw9PFDp7i4Eai8dhqdeuGFF8Yd3So3kky1Ojv+BmPyM9zhmV55zkfGQCAQCATaQICPjkCdQkwdeuihXHaCTrUB+qw6hP7y2mkObbZYCk/fIJ1SM1eqWfXv9P1LO33q2YfBmPzgHoyqZ5MvmhsIBAIriABPKUQqzHwdGXp0avPmzYyw/mJUjbdq3h1/vV7IQ6NqfP5EgYFAIBAIBAKBQD8QEE/14YcfFird/r5FMCoozOuf3g/gxlo5JIFK53pNbccGJy4EAoFAIBAIBAKLRIDX1JYtWwRWdfBPb9belzV8XsPfy1nOXp0MSaACfDCqXs2+aGwgEAgEAoHAUhEgUGFUHNKb9UbP9Wlew19P42cEo8qNe3wMBAKBQCAQCASGjwBF6tlnn33kkUe4T/lLnXJlcd1eBcNfMKrFzZ8oORAIBAKBQCAQ6CICiT/hUrb4OURPWCidAsEqMKrwo+riXI82BQKBQCAQCAQCi0MgY1QiJuBVTH4tMCqxQxfXo6WXPKTYngnM8KNa+qSKBgQCgUAgEAh0HQH8yf4+3uhkFdETFuSQnkNhFWSqXJd7/TEYVa+HLxofCAQCgUAgsHAE8CcHRkU0euyxxxZe33oF4uNfc8017dS1lFoG5kQFw3gLzVImUlQaCAQCgUAg0BsECFSkKcY+f230a6fdl19+eTsVLauWYFTLQj7qDQQCgUAgEAgEloAAlylb/LhPiZiAUS3afSr18LzzzvM+xwq9faE/SgkwK3Swy1nC6tfl0Ym2BQKBQCAQCCwZAVHR6VJ33XXXAw880JrJ75/+039ardt9MTwNzy3deAWjqjZpI1cgEAgEAoHA8BF48cUXMaoUMYFDutfOtNDnc889t5pA1ULbmqpieAIVZIJRNTU9opxAIBAIBAKBoSGATmFRPKiefPJJMaja6d4555xTp6IFRh2t06yd8waj2hmP+BQIBAKBQCAQCAwXAS5TnKi8EZlG5XV+vKla6Oshhxzypje9qU5FvVBKhueWbsh6gXydqRV5A4FAIBAIBAKBKghQpxApdIoflZMqRcyf5z3vec/8mfqXY5AaVV+c2Po3XaLFgUAgEAgEAv1FQACqJ554wha/u+++m8nvmWeeaaEvu+++OyeqFipabhWDdEsHaTCq5c6rqD0QCAQCgUCgiwgQpThObdy4Ealq4S1+CYIzzzyzi1g03aZBmvyAFIyq6ZkS5QUCgUAgEAj0HwGMimVKxAS2P0cLHXr961//cz/3c/NWJIy7jYHkNCoaiesVr3gF96899thjr732mreo1tIHo2oN6qgoEAgEAoFAIBBYJgLYCUaFTnGiauGlyKmrxx57bIWgCSmLyA4bNmzIIPvBD34g7kP2sWsng3SiAnJ4pndtpkV7AoFAIBAIBJaMADrFdyoJVAIotNCa3XbbrbIH1aOPPoqNZY3ctm2bVxBmH7t2MlSBCs7BqLo22aI9gUAgEAgEAstEQJQEm/u4T2FU6BSNqoXWHHfccZWDJmBj+++/f2okh3rN9pblFtpcrYqhClTQCEZVbUpErkAgEAgEAoFhIoBOPfTQQ6QU2k87AhUPqjpRPQ8/8shsJAhUr3rVq7KPHTwZskbVZVNrB6dCNCkQCAQCgUBgwAigUIiUqJ4ODuntCFQIXGWTn0butcceaUT4pN93330dH50hMyqm4nbepN3xMY7mBQKBQCAQCAQCBCqvQ+aHhFdRHBjRFo0Jm12FLX5Zq+hb2Tl75X777Zd97ObJkK1+tlw6Wpg03RzaaFUgEAgEAoFAIJAhgFGJR4BRWRbbWRnxtsomPy185StfmRqfXpiTdaSbJ0ON7ZnQ3vUjH/kImQqp6ib60apAIBAIBAKBQKAFBLAT8gmBig0OqWK9aYFRvfbAA9GpCkETEiCZQ7qPlvLRjy0gFlXkENj1qaee+tM//VN/W3urdq4F8TEQCAQCgUAgEFguAviTgzT14IMPPvLII/SeFuiULj/6gx9U9qCS/RU7BCqNt44vF8MytQ/YiUr3t+/1Mwyf+9znmHLbmUBlQI80gUAgEAgEAoFAawhY/jhOiZjgtTM0qnV+9VILtYuYUDlogqjou++2m0ZqvHU8M/+10OzKVQyfUYHmb//2b6+44opddtmlMkyRMRAIBAKBQCAQ6CMCGAkKRZrCpRzMZ63tgq/jk77nnnsmtDW+nRc51x/cAbulA+dH8ahuuOGGL33pS/XxihICgUAgEAgEAoEeIYCRCJKe9vfxo2qn5Xvvvbc4nJUFKmalJEqhg15B006ba9YybLd04PyIUfmAUQWpqjljInsgEAgEAoFAjxBIAhU65bDRrzVvJL7LF198cWWgELKUl8tXO2FIKzc1yzhsgUo3d2JUPgepysY+TgKBQCAQCAQGjwADH0bC2Oftwi2LPeedd15leJNPOnWt5TZXbrCMK8eo9DlIVZ0ZE3kDgUAgEAgE+oIARuK1LRzSHSl0QmstP/PMMyvXlfmkC5jemstX5dZmGYftlq6beY0q9TxIVTYD4iQQCAQCgUBgqAhQp5AS+/u8c8ZePxbAFnq6x/pLY37hF36hcl3JJx0dbM1GWbmpoxlXUaNK/edBFj5Vo1MhzgOBQCAQCASGhAD+xAlJACrvwuNBZYtfO72jim3YsKFyVM/MJ503PVLVTpvr1zJ4t3QQTdaofIFL6v/gNbr6syRKCAQCgUAgEOgjAgQqxwMPPMAnHTvBrtrpBSZ34YUXVq4r+aQz9vUrLvcq0ImpjMpgI1Wf+MQnVgGFyjM7MgYCgUAgEAj0FAEUijS1efNmwZxai+ck7uPhhx9+4oknVgYNl9JaLLBHApXOrgKXKGJUIEikavC2z8ozOzIGAoFAIBAI9BEB6hTrG/cpVj8CFW+qdnpBoDr//PMr12VP4je+8Y2bb77ZFr9+MapVIBIzGJVRh8Kf/MmfrAIWlad4ZAwEAoFAIBDoFwJYFIGKyY/7VGsC1SvXfdLrmPx4tb/mNa/ZZ599OKdzqOoL5qsgUBmL2YxKoiBVfZm10c5AIBAIBAKBmQhQpOySu/vuu630GBV2NTNLIwnYGX/yJ3+yTlH77bcfo0TfDrgAABLdSURBVOHBBx+MUfXoxXErIsqUYlSGP0hVnd9A5A0EAoFAIBDoDgIoFEZli593+bVGp3bdbbeXXnzxoosuqoMDXcqBS+26a9nlu051TeUNjSqPZCJV+avxORAIBAKBQCAQ6A8CPKiwKPY+TlRcqRzttF2oq9NOO61y0ASNbCNY1mKwCEY1AVek6vd+7/cmfBGXAoFAIBAIBAKBPiCATjnSa2eY4drx7+b/9HJtgWqXPsA7sY1h9ZsIy3bzX5CqydDE1UAgEAgEAoFuI4A/8UP3Cj8a1fZoVM8/31J7d9nliCOOOOGEE1qqrkvVrEJsz4R3FUMsUiVO1f9v7+xjq6zuOL7yqjCqQAdGFkpS3CgVJmBrTOaE1oKaZWqkYGthxEQ0SggJGpcsKoPMSIAsmTUkC/9sES04w8wGmGyaIducZtj5EpAgr63IiyByLbZkyD70JE+e3La3L7f33HOe8z0hzXmee85zzvmcU+63v/N7fsel+VJfREAEREAERKBnAufPn+cVPzyoCJqAgcraoXjtbW3ZBE3oeWAq4QCB/igquo3klKhyYPrUBREQAREQgT4Q4PA+rFOci8zGnzUD1chRo+hiVVVVHzqaoKKBOFExY/1UVNREVOngvwSteQ1FBERABBJOAOsUeyzIqebmZhzSsVHZGXBrKlVfX2+nLQdbkaLq1aSgqCSqekVKhURABERABPJNgDjjKCrObyF0gjU5NWLkSMadZRiqfJPLqn2YZ1Xfn8r9t1GZMUpU+TPX6qkIiIAIhEuASJ7YqAhAdfr0aY6CIdlhgSN8eXm5nbYcbCUct3TgZ6uoeIRElYOLWF0SAREQARGIEzjXkVBU5kQ8O4pq9Jgxl7/9tq6uLt6ToPLhGKiY1iEDMrVm7y9kq+aAYNRDREAEREAEBpwAERPwQ8cnnRhUbPnZ0VJmFKmvv54xY0Y2UT0HnIblBwalqAbARmWmR47qlpepmhMBERABEeiRAPoJRYWQ4hW/48ePs+XHJanHitkXGDZs2P8uXpw7d272j/L3CeG4pTNHA6ao0KGIqqDY+bvE1XMREAERCIQA4okoCUZREYOKAFTWbFQjRozgVONp06YFgrrLYcpG1SWWnm8CjiBVElU9k1IJERABERCB3BNAPJGQU2gpPKj4kuqwT9kwUDE4HLdmz56d+1G620JQbulMw4DZqMyUGlEVlCZ1dy2rZyIgAiIQNgGjn9BSHDuDvrF2KDLUCwsL+aktv6AW4AArKtghpxoaGiSqglpGGqwIiIAIuEbAGKhwnCIhp3jFz2YPOe6moqIimxbpfzbVXagb2p7VwCsqZlGiyoWlrD6IgAiIQMgEjIEKOcWuH4qKuFDWaBQVFdFWbW1tNi0WFBRkU92FuqHZVnKiqJhIiSoXVrP6IAIiIAJhEsDAQ1R0Nvt4v4/vI9sGqlRq1qxZ2QRNkIHKx3WbK0UFCyOqfISiPouACIiACHhNADnV3t5+pCMRiYo9OGvDGTNmzMX29sA9qKAdmoGKIedQURmgq1evtraO1ZAIiIAIiIAIQICICaiolpYWs+VnkwlKrri4uKysLJtGE7DlF5oTFdOdW0VFA6hUiapsfq9UVwREQAREoE8EkFPYqAjpSeJQ5NbW1j5Vz7IwzVVWVmb5kARUl6LKySQiqohTlZNH66EiIAIi0BUB/pAr7Uj6i64rPAm/Z7b88KAyDum4qFsbsPFJr6qqstaisw1p1y9XU0OYL4mqXMHVc0VABDoReOWVVy43ruQfmU4f6kaSCSCnSOz3EdWT9/tsvuIHVnzh6+vrk8y3d2MLLbanoZLzXb8IPnzNgcrRHWVEQAREIBsCeBwT/Y6ffX1Ivyv2tSGVt0+AMJ4kc4QfBySzA2itD2PHjqUt3vKz1qIacoqAPUXFsFFUElVOTb86IwL+EkAVvfDCC9872bRixYqdO3f2fiAUpgoVqd4PNdb7hlTSPgH0E45TxzoScsqygYrlVF5enk3QBPvEctRigE5UkLSqqGhPoipHy1ePFYHQCGzevLn0UvOz829df3cJTgW9FFUUozBVqEh1HhIat2SPFxWFY/jRo0cJm5BKpXjtztp4x48fT1t1dXXWWnS5ISkqS7MjUWUJtJoRgUQTqKmpeW1/atfeltunfr+XoiqSU1ShItV5SKIhhTW4S5cutbW14cmEiQpdRd7m+DnmZsaMGTJQGeYBuqUzcNs2KsNaosrm77naEoFEEhg3btx99923tLEpLqqiXbx777234IEN/CNjhs9Hxjpl5BQVqc5DEgknzEGxx4eNCg8qfNJxpbLpQcUrfu1tbdXV1WGSTxt1mG7pQBg8efLkNBZ2LhGwrP58tW5njGpFBEQgdwQGDRo0ZcoUnv/8ljenjx+JTvr8+OfvHDx1yy23cPO222578MEHH3rooXnz5g0ZMoQ7mzZtmjnsi5/fXoYCQ04tWLAAA5X5KHed1JOtEeDYFkJ6YqDat28fL/qx34fJylrrLKSrrrqK9WatRZcb+uijj8Lc9cubokJOIaomTJhAwH6XV4b6JgIi4CyBwYMHE3OK7iGqzp45+96Fax9++OFRo0bt3r17w4YNL7744tatW5uamgoLC4lhPXHixFd3vf/pgU+fe/MQcoo0dOhQZ4emjvWVAN8pKKrDhw+jqMhgo7J5NB4CbuHChSUlJX3tdiLLY6Mitmoih5Z5UHlTVHSLXwBkrERV5hnSpyIgAhkIGFHF++pvf/LZkiVLkFPr1q371182rZg3etUDk5fOnTDxu62/+/3WPXuP/agj7drXwot+WLAkpzJQ9fEjgnmSkFOIKvtbfuw2Pvnkkz5yy0Wft23bxvd7Lp7s+DMLMInnt4vYqJYtWyZLVX5nQa2LgNcE2N8hqCM7L2vWrJn8nQ/XLJ6WNpznX/3kg29Kn376aVMMHZZWQJdeEyBiAjt9hw4d2rNnD9YRvs5tbvmBrqKiYvny5V4zHMDO80fLAD7No0flxzM9Doi9P2L0hfleQJyD8iIgAv0mgEIaPnz4jh07Tux9q7Oc4rG/qJly6bN/bt++nWKSU/3m7GxFrFO8eYB1CjmFQ7pNOWVe7qutrXUWjuWOBeuWDuf8Kyo6IVFlecWrORHwmkB0Zp85uY+f5vA+DpxZsyjdOhWNdPnPfmBOpOmuelRSGb8IYJH68ssveb/P/it+gMIXnk1nBU2I1kyYPulm+FdegXEhGVGl7T8X5kJ9EAHHCZgz++KdJErCM888c+DAgWmTun19veKHYz7++G1qdVc9/kDlPSKAgeqrr746efLk6dOnORTZ5rnI+AFjFZs7d65HuHLd1ZAVlRM2KjPBRlTlerL1fBEQgaQSYK9n8KCCpI5O4+qSAHt8ZssPOYVDuk05RX/w3+I10rKysi77FubNkH14XLFRmZXHTGCQ52/NMBeiRi0CItAbAiZ6Z7ykCeNJfLv/Hjr347Ki+EdR/r39Z02ohe6qRyWV8YiAMVCdOnWK3TfCJdiMmDBy5EhsY8SJ9QhXrrsasoEKtvl/16/zBPPen0RVZyy6IwIiYAgQ+yd+ZBvO5gRN4GdjY+PuP23823OzuwRVv+7fk3+yBA/i7qp3WUs3nSWAeMIqefDgQV7xI+oY3+W8yGnTRsVXFVaAl156yVlE9juGWzonE9hv15EW3bJRGSisUaZE5006skTUDRFwjQDiidS5Vxif3n333V9v2ffLhVfCfsZTw58/PTO8dOU993Czu+rx8so7TgA5hXji/b4TJ07gyWQ8qCz3ma+qu+66y3KjjjcXuI3KIT+q+EIJXOfGUSgvAiLQIwG+WQnCguHq0Ucf/ftn42rXvvPXppNnUxf599YHp7h8/cDoRYsW4fVCMQr3+EAVcJwAcgoDFUf4Iad4xQ9xYzSWtW6bGIrySU8DHriiymfM9LSZSLvk94Q7OvgvDYsuRUAE0gjs3LmTOOkzhp7e8Z/9BEOvqqpqOVfQsO2DVX94/zevH/zH4UEzb7/nsccew+tl48aNxan9v23cfvXVV99www1pz9GlLwQiAxX7fUeOHCG2JwEUbO73AYoWy8vLKysrfYFmp59ES7fTkJutuLjrF5F64403yN95553RHWVEQAREIE4AOYWTwPq7Szgp+Vd/fGfLli2PP/54fX39/fffz1tglOS0GfQTO30c81d6qfnZ+bfO3tvyRIerh7Zs4iQ9yqOoSLii45BOJCqc07m02f/x48cTrEEGqjTmIcf2NCgc3fWL5glRZXRVdEcZERABETAE4nJq196W1/anampqCIk+YsQI9NOcjkSGS27yEQUohvZCgaHDqC6SPhLAHMUOL3IKLcWhyJblFMQQczfddJN5ddRHgOpzjgi4rqgYtkRVjuZejxUBrwngDhVZp9BJSxubeI993LhxZlAmjOflxpVkzB0+ogDF4qJKPlXerQHkFBIKOYU3OgYq4hdYHsLYsWNx4ZKBqjP2wJ2oAOKBoqKXElWd167uiEDgBDZv3vzTScMwOBk5tWDBgvnz52c4s4+PKECxSFRRnYcEjtG74RMi4cKFCygq1DAGKrO3a3MUtFhYWDh9+nSbjXrRlhSV035U8TVkNmjlUxVnorwIhEyAXbz164/iO/Xyh1+gk0i4TGUGQgGKUWZp49a66c3vXbj2iZqazFX0qVMEkFMERj927Bje6HkxUEEDGbd48WKnsDjSGd64dKQn+eqGHzYq6DBViCpJ4HwtFLUrAq4RYBfvkUce2T+0eO3atb2RU6b/RlRRhYpUj3YJXRud+tMlAexDbW1tzR2JLwVeuOuyWO5umhORteXXmbDc0mHijaKir/z+4DYhUdV5KeuOCARIgF28kpKSp556ijgIPVqn4nwoTBUqUj3DLmG8ivIuEMB7CRsVMahIuE9hK7LfK5y3Kioq7LfrfosyUDFHPikqumtElWbO/d8u9VAELBBADxEWoUtVZA7vK3hggznyL60zGSqmldSlOwQwUKGoiOdJam1ttW+gKiq6cmQkBxm5w8Sdnuh7mbnwxo8qWjdMG1GPly1bZkLWRveVEQEREIGIwKpVq1auXMklR/5FN5XxlwCv+CGnOHOGxMaffTkFOjy3Zs2aZTb+/CWZo55r+wiwntmozFIwokqKOEe/GHqsCCSAALYrLAokMgkYjoZgDFTE1URRIacQVZaZXH/99Ww7VldXW27Xl+b0jcxMeamo6LdElS+/ZuqnCIiACGRJAAMVior/9tnv43BGFBV3snxmX6sTrKG4uPjGG2/sa8UQysst3cyyr4qK3htRFcJi1RhFQAREIGQC7e3tGKXMoch5MVCx00cfCMIf8ixkGLu2/AwcjxUVA0BUrV69OsM06yMREAEREAGvCWCOwi7FwS+EocJQRHhP7FWWR8R+Hy3ecccdltv1pTkpKjNTfisqxiBR5cuvnPopAiIgAv0ggFGKhJwicZwf+X48JMsqfNHoXO0MDOGT4dNwPvJeUTFVzCVxqsKZM41UBERABMIhgITCRoUHlfFJt2+guuaaa6CtqJ7dLTkZqCIySVBUDAa3OImqaFKVEQEREIFkELhinvrmmyshE06c4PwZ+3IKjEQTvfnmmxU0obsVJQNVRCYhiorxIKo4UDkamDIiIAIiIAK+EzCKinORsVHhzGT8mWwOSsfO9EhbNqoIUXIUFUNCUUlURVOrjAiIgAh4TcC84sfBL8gprFOky5cvWx4RUT0nTZo0depUy+161JwUVTRZiVJUjEqiKppaZURABETAawIcNUPiFD+2/AiYbt9AxckctFtZWek1xlx3Xrt+EeGkKSoGJlEVza4yIiACIuApAQJQnTt3jhhUJDzTMVDZj+pJpAboSVFlWEKK7RmHk0BFxfAkquJzrLwIiIAIeEcAf3CMH83Nzdio8EnHVmR/CKi6xYsX229XLXpKIJmKismQo7qnK1LdFgEREAEsUhio8KBCTuHJhJyyb6CST3pv1qGcqOKUEquo+OMGUaXJjk+28iIgAiLgBQHkFDYqXvEj5cWDCkrouYqKCi9w5bGT+pKNw0+somKQiCqCVGm+4/OtvAiIgAg4TgBzFHKKhKbBQMUlyXKfR48eTYu1tbWW2/WuObmlx6csyYqKcRpRpSmPT7nyIiACIuAyAbTU+fPnsU6hqNBS9iMmAAclN3PmTEX1zLxO5JaexifhiorRIqcaGhokqtImXpciIAIi4BoBxBPJbPlxNLL5f5s7lvt53XXX0aIO8usRu75Y0xAlX1ExYImqtFnXpQiIgAi4RqBDTV2RU/yPjYEKRWUc0u0rKvowceLE0tJS1xC51h8pqrQZCUJRMWaJqrSJ16UIiIAIOEUA5UQMz5MdCUV15swZo7Esd7KoqIigCdXV1Zbb9bE5uSmnzVooiophG1GVNn5dioAIiIAI5J0A4gmXqVQqhZYiBhVB0omWnhcnKmJfQWPOnDl5Z+J+B2SjSpuj/wOd2RWv73j1jAAAAABJRU5ErkJggg=="></img></p><h3 id='addingastar' >Adding A*</h3><p>Now we have ground for an AI to stand on and obstacles for it to avoid. So now we are going to add the A* Pathfinding System to the scene to enable Pathfinding.</p><p>Create a new GameObject, name it "A*", then add the "AstarPath" component to it (Menu bar → Components → Pathfinding → Pathfinder).</p><p>The <a href='https://arongranberg.com/astar/documentation/stable/astarpath.html'>AstarPath</a> inspector is divided into several parts. The two most important are the Graphs area and the Scan button at the bottom. The Graphs area holds all the graphs in your scene, you may have up to 256, but usually 1 or 2 will be sufficient. A single graph is usually preferred for simplicity.</p><p>If you open the Graphs area by clicking on it, you will see a list of graphs which you can add. For this tutorial, we will create a <a href='https://arongranberg.com/astar/documentation/stable/gridgraph.html'>GridGraph</a>, which generates nodes in a grid pattern.</p><p></p><div class='simplesect simplesect-see' ><h3>See</h3><p>You can read more about the different graph types in <a href='https://arongranberg.com/astar/documentation/stable/graphtypes.html'>Graph Types</a>.</p></div><p> After you have added the grid graph, click its label to bring up the graph settings.</p><p>At the bottom of the inspector, you will find a button called "Scan". This is used to calculate the graph based on its settings and the world. After you change any settings, you will have to scan the graph to see the changes. There is a handy <a href='https://arongranberg.com/astar/documentation/stable/shortcuts.html'>shortcut</a> for this: Cmd+Alt+S (mac) or Ctrl+Alt+S (windows).</p><p>All graphs are scanned by default when the game starts (unless the startup is cached, more about that in <a href='https://arongranberg.com/astar/documentation/stable/saveloadgraphs.html'>another part</a>).</p><p> <img class="tinyshadow" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlAAAAO2CAIAAACo6j45AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOzdeVRT17448J2QOQECBAgEggVMZRQQAkiuA61aULH2WqvYlit6lZ8iDlX0WqtFq21ftU+xtFZr61C1V0uts9g6VnBAKYJSVCIQVIIBAkmATCS/P85rVhZDCBAGyfez3norZ2dP7Ev9cvbZZ29cfn4+AgAAAIY6Qm8Kq1SqxsbG1tbWDr8lEolOTk44HK43TQAAAAAW0auA19jYGBwczOFwOvy2uLj42bNnTk5OeDy+zVdyufz58+dardZUzwgEd3d3W1vb3vQQAAAAwPQq4LW2tnYW7RBCQUFBer3++fPnLBarzX1ea2urQCBgMpkmKpdKpWVlZb3pHgAAAGDQq4DXpeDgYL1eLxaLWSyWcbpWqzUd7RBCDg4Opm8BLau1tbW+vh67H1UoFAwGo9+aBgCAl9rTp09v374tFosRQmw2m8/ne3h49KCe7OxshNA///lP84u0trb+9NNPCKFZs2bZ2NiYztx2srE3qqRPx372WquuNfKTGGmzFEscOXKkRqPpVj0KhcLEt7W1tal/W7ly5f79+9VqtYn8UqlUKv2/zohEotTU1AcPHrTJc/Pmzddff33KlCk3btyoqKiYMGHC0aNHzenqpk2bdu3aZU5OAAAYkm7cuHH48OHKykoOh8Plcquqqn766aebN2/2oCqhUCgUCrtVpKmp6dmzZ8+ePWtqauoyc9s7vBs3brx48aJ9PhcXl+joaBMVtepay2rKhjl7VdaLqESKLaWHz94OHz585MiRI0eOdHaPpVQq8/Pzg4ODfXx8ampqvvnmm+Li4q1bt3ZW4erVqxFCu3fvRgg1NTXl5+fPmjWrTZ79+/czGIyvv/7ax8cHh8OtWLHiH//4hzm9LS4u7tkfMgAAMAQ8ffr0jz/+QAhNnTrVzs5Or9dHRETs37//+vXrHh4epv953LNnj+FuBCGUnp6Offif//kfBweHf//73+Z0wM7O7u2338Y+dJm5bcALDAy8cuWKTqczTsTj8YGBgSZqKa0uTfz2fezzjK/eQQjxN47+NunriFfCzemxARbtZs+e3eWM4muvvYbFra1btx47duzFixcuLi719fWnTp2qrq7mcrkJCQkMBuPUqVPPnz9HCGVmZqakpGBldTrdoUOHqqur//GPf0RGRv78888VFRUEAuG3337z9PRsbm6urq5uamp68eLFTz/9FB8fn5eX9+LFi3HjxoWHhyOE5HL5sWPHGhsb4+PjjbukVqtPnTpVVlbm6uo6bdo0BwcHrIbXXnvt8uXL/v7+sbGx3RoNAAAY5G7fvo19EIvFV65c8fDwGDduHEJIp9Pdvn3bdMDrLKQZIp+Z3NzczMzZNuDZ2tpyudyKigrjRC6Xa3q1JI/Nu/6fK5+e+ZxOpuuRXq5UrJvyHwqJ0mXztbW1hsd7hmiXmJhoZu8RQs7Ozgih5ubmlpaWuXPn4nC4yMjIgwcPXrp06bvvvpPJZNiDwLq6OkMU3717t4ODQ0VFxbFjx7799tvGxkatVqvX6+vq6rD/f+jQocDAQDc3t0OHDv3xxx9sNvvJkyc///zz999/z+PxUlJSRCIRn8//6KOPGhoasP9FdTrdsmXLHj16NGbMmNOnTx8/fvzHH3/Eqvr999+ZTCabzTb/hwIAgJcC9twOIZSXl2dvbz9u3LgrV660+cp8Pj4+3S2iVCqx50opKSkUShdBp4NFK35+fs+ePTM8eCMSiX5+fqZrwePwNDLthUIy02/sjbJbw5y8aGRalx2Vy+Vz587FIlx3o11VVVVBQUFNTc3Ro0fd3d25XK5KpVq9ejWPx2OxWK6urt9++61UKp0zZ87Vq1cRQhkZGYay48aNmz9/vkQimTJlSl5e3qJFi65du0aj0YzzGEyaNGn+/PlPnz795z//eevWrfr6+rKysnXr1k2dOlUsFhsert66devu3bvffvttSEiITCabPHny+fPnsdvi119/PS0tzZwfCgAAXl4REREVFRVFRUXdLWhYq9Kt5So90EHAI5FIw4cPLykpwS6HDx9OIpFM17I2+6OLf13StmoLKv7U6XV4HD7vyY19yXtNl7K1tZ09e/aRI0eKi4vv37/frXu7n3/++eeff8bhcH5+fmvXrsXj8RQKRSKRHDlypLy8HJsXViqVHZb19vZGCDk7O5NIpC6fc2KZsdu45ubmqqoqhBA2t8lms93d3bFsT548QQh9+OGH2AsYWq1WJBJhAc/0bDAAALy82Gy24f2xa9eu6fV646/MrKS7C1WMUSgU7HFVl7d3qLPXEnx8fCorK5uamuh0ujn3mGsnr04Zv2D6zhm/pv38r+/mf/JWxgi3V83pKxbhejCTmZqaOmPGDBKJZFiHevbs2S1btmBLN2/evPnll1+aX5v5qFQqQqi+vt7NzU2n08lkMiydRqMhhDZt2uTo6Iil2NnZ1dTU9EUfAABgkODz+U+ePMEeGE2YMAEhdObMGYQQHo/n8/mmy2KLVozXqhi+Mn/RCkKouroaIfTKK690mbPjgIfH4/38/O7cuePn59d+n5T2GBSGqL6Kbc9mUpnSZulIz2AKsetgi0lMTPTz8wsNDTUzP4ZIJGKxx6ChoQGHw/H5fDs7O8MkMkKIQqFUVFTcu3dv5MiR3WqiQxERETY2Nt98883/+3//7+rVqw0NDVh6dHQ0iUQ6ffr0/Pnzi4qKdu/evXLlSgcHh963CAAAg5aHh0dMTExubq5Op8MmwBBCeDxeIBB0uYK9TUjr7loVjEwmO3bsGEIoJSWly4WanQYzDofj4+NjYiOVNvRIP4s/Q6FSJEbOMj/aYbob7ToUHx/v4+Pz/vvvv/XWW8a30m+//bZCoViwYIHx+tce43A46enp9+/fnzdvnkQiGT58OJbOZrM3bdp08+bN6dOnb9y4MSIiosu/bgAAYAiIjo6eNWuWr6/vkydPnjx54uvrO2vWrKioKPNr8PHx6cFyFQydTudwOBwOh06nd5kZ15vTEqqrq6dMmdJlttOnT7dZNtrQ0ODr62v6BgjbWqzLDVnal6LT6W0eOup0upaWFnOGw0wajUar1ba5xcQakkqltra2XT71BAAA0M96tbWYjY3Ns2fPTN8FPnv2rP12L7a2tmVlZV1uHt2DnaM7DKJ4PN6C0Q4hRCQSiURihw05OTlZsCEAAACW0qs7PNPHA2FsbGzs7e3JZHKPWwEAAAB6r1d3eGQy2cXFxVJdAQAAAPqOJTePBgAAAAYtgkXWLgIAAACDHO61114b6D4AAAAAfY7wxhtvDHQfAAAAgD5HsLe3H+g+AAAAAH2OYM6GmwAAAMDLDlZpAgAAsAoQ8AAAAFgFCHgAAACsAgQ8AAAAVsHcrcWePn2al5dXW1tLo9GCg4NDQ0Oxo717rLa29tSpUxMmTOjyzCQAAACg98y6w/vrr7++++47kUjk5uam1WqPHz9++vTpXjasUqmePHnS1NTUy3oAAAAAc3R9h6fT6U6ePMlisRYsWIAd83bixInbt29jZ3zn5eUFBgaWlJRwOJyAgACFQlFQUNDQ0ODk5DRq1CgKhSKTyfLy8kaOHFleXl5fXz9ixAhfX1/jyq9fv97Q0GBIr62tLSkpaWxsZLPZoaGhBEKvtrcGAAAAMDbTp083naOqqurmzZsTJkzw9PTEUoYPHx4TE8NgMOrq6o4fP15WViaXy52dnZ2dnbOysp4/f+7o6FhQUPDo0aNRo0bV1tYeP35cKBQ2NzeLxeK8vDxnZ2dXV1e5XH7nzh2JRKJQKCorK2/fvu3j42NjY5OVlSWTyezs7G7cuCGRSAICAvp+EAAAAAx9Xd8/yWQy9PfBqk1NTVevXsXSg4KC8Hg8QigwMBDbn0ytVickJLi5udna2trb21+8eNEwY+nr6zt16lStVpuZmXn9+vWgoCAs3d/ff/z48TKZ7Isvvnj06JG3t7dKpYqMjAwPD+fz+Wq1ug9+ZAAAANao64CHbcWChS6dTieTyZRKpVAodHNzww7DM9z5EYlEuVyel5cnkUiw/BqNBvtq2LBhCCECgeDl5VVaWmqoHKvBzs6OQCCoVCoul+vp6XnixIlLly698sorMTExFv1hAQAAWK+uF61wOBwbG5uioiKEkK2t7axZs0JDQxFCjo6ObXIWFhb++uuvPj4+c+fOnTRpkvFXhls9hUKBPQjsEJFIXLBgweLFi8eOHSsSiX744QfTx6kDAAAAZuo64FGp1NGjR5eWlv70009FRUV//PHH6dOn3d3duVxum5zNzc04HM7Hx4dKpZaUlBh/lZeXV1FRUVBQ8OTJk+HDh3fW1sOHD7du3VpTU+Pv78/hcLRarU6n69kPBgAAABgzaw3khAkTsAWZDx48wOFwr776akJCQvv38EJCQgoLC7/55hsymezn52f8lb+//08//dTU1OTl5TVhwoTOGvL19R02bFh2drZer6fT6dOnTycSiT34qQAAAIA2cAcOHDAzq16vb2pqIpPJpoMQlsfwOsGzZ8927do1a9Ysf39/pVJJpVK7bEir1ba0tDAYjF6+2w4AAAAYdOMtNxwOx2AwusxGp9M7K25OtEMIEQgEW1tb8zsGAAAAdKnP99K0t7efNGmSq6trXzcEAAAAmNDn+5gwGAyBQNDXrQAAAACmwWkJAAAArAIEPAAAAFYBAh4AAACrAAEPAACAVYCABwAAwCpAwAMAAGAVIOABAACwChDwAAAAWIUOXjyXyWQFBQXPnz83nGYHAAAADH5EItHd3T0sLMzOzq79t20DXmNj47lz5wICAsaPH89gMLAzzQEAAIBBTqfTKRSKoqKis2fPxsXF2dvbt8nQNuD9+eefAQEB48aNo9FoeDwezisAAADwUtDr9Uwm09HRsbW19c8//xw3blybDG0D3vPnz8ePH0+j0WxsbPqpjwAAAAZafX3977///uTJE5VK1WEGMpns7e39+uuvOzo69meR7pai0WihoaE//vhj+2xtA55Go4GZTAAAsCp1dXV79+7lcrlTp061s7NrHwJ0Op1MJisuLv7uu+/mzZvn5OTUZRGNRtPU1NStIu1b6UHfHB0dGQyGVqtt/2N2sGgFZjIBAMCqXLx40dPT87XXXrO3t7exsekwqLi6urq4uFy4cOHixYszZ840XeTatWt5eXm2trYxMTGtra3mFOmwlZ71rbN7tj65k2tubu6LagEAAPSFJ0+eBAcH29vbE4nEDqMFHo8nEon29vYhISFCodB0kYsXL165ckWtVtfV1f3222/BwcGmi7S0tHzzzTf79+9v30qbUlVVVR12vn2pDnXvPDyhUHj+/Pnq6moGgzF69Oh//OMf7e8Fnz9//p///GfOnDkTJ040Tt+zZ4+Dg8OMGTN6UGe3iMXiffv2vf322z4+Pr2pBwAArIRKpbKzs+ty6YaNjY2dnZ1arTZR5Pfff8/LyzNcKpXKLos0NDRIJBLDQzvjVoxLVVRUHDhwICoqyji45OTk3Lp1KzEx0dvb27hUh7oR8AoKCjIzM5lMZmBgoFgs3rNnT3l5eVJSUptsLi4u7777blhYWJv0x48ftz/33Mw6u6WlpeXBgweTJk3qTSUAAGBV8Hg8Ho9vbW198ODBX3/9JRaLFQoFFnucnJz8/PwCAgLazChiRYwr+e23327cuGGcMm3aNAKBYKIIQsje3n7WrFmenp6d5cFShg0bFhUVdfPmTYQQFvOwaBcZGenr64tlM/0zmhvwWltbv//+e3d39/Xr11MoFITQ999///vvv0+aNIlEIuXk5PD5/Pz8fG9vb19f39ra2ubmZicnp6ampt9//12hUMTExPSmTj6f39jYeO3atdraWjabPXbsWBqNVl9fn5OTM3r06L/++qumpiYsLCwoKMhQuV6vP3v2bG1tbWhoqHE6AACADjU2Nh46dIhIJIaGhr7yyit//PEHQig0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K1Y8++yzhBCLxfLzzz9XVFSMGDFixowZPB6v0zC676h9bP7+/jqdzr67wr///e+ZM2fezje14c4wGo07duw4efKkj49PeHh4dnb2d99999e//nWw4wKAwdf/z/AMBsPu3bv3798fFxfX1NS0cuVKppDZl87Pz8/V1dXPzy8kJMReaDQaly5dqlark5KSLl682MtxG5vNtr909cEHH+Tn548fP76mpsbeY8cwuu+ofWxisfjrr79myquqqo4cOeKw3QHcnWpra4cNG2b/fHlycnLHeQIAcE4D8h6e0Wh84YUXBALBhAkT0tPT22/uGhYWNmzYsLCwsLFjx9of+PH5/E8++cTT05MQIpFIPvvss8WLF3fVeFNTk9VqValU27Ztmzx5MiFELpfX1dVt3ryZoqikpKSXXnqppKTEz8+vYxhisbibjtrHRgjhcrlXrlwJDw///fffU1NTKYoaiHsF/aupqcnDw8P+093dvbGxcRDjAYC7x4AkPIlEwjyZY7PZIpFIr9f3uGRcLpdv3rz56tWrJpOp+5qffPIJh8MRiUTx8fFPPPEEIaSmpqa1tfXll19mKly/fl2hUPj5+XUMQywW976jlJSU3377LTw8PDMz87333uvltcPgcnFxUavV9p8ajabHTZcAwEncFV9aKSsr++KLL1asWBEeHl5fX999dvnnP//p8PEYoVAYHh7+5ptv2ksEAkH7YeWtdZSSkvLKK6/cf//9MpnM39+/j9cEgyMgIKCurk6v1wuFQkJISUlJYGDgYAcFAHeFQXgPj8vlOiyca2pq8vf3j4qK4vP5v//+e18bjI6OrqioUCgUEomEpulPP/2002zXm47ax+bp6env779hw4YHH3ywryHBYJHJZMnJyRs2bCCEKBSKHTt2MNMAAACDkPBmzpx54MCBt956y14yYcIEDoezePHiZ599VqVS9bVBiUTy+uuvr169+oUXXli0aFFAQEBXs1g9duQQ27Rp02pqaqZMmdLXkGAQ/eMf/zh+/HhcXNyUKVOWLFkyZsyYwY4IAO4KVEZGRvvf27dvX7Zs2UCvv6dp2mQyOXz5UKlU8vn8rl7L65HNZmtpaZFKpT1+ULH7jtrHdvLkyXPnzrXPzXB30mq1SUlJ7UuampqkUukt/+sEAEPRuXPnxGJxa2vr+vXrn3nmGYejg/MMj6KojmnpNhcXsFis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"></img> As the name implies, the GridGraph will generate a grid of nodes with the size width*depth. A grid can be positioned anywhere in the scene, and you can rotate it any way you want.</p><p>The Node Size variable determines how large a square/node in the grid is, for this tutorial you can leave it at 1, so the nodes will be spaced 1 unit apart.</p><p>The position needs to be changed, though. Switch to bottom-left in the small selector to the right of the position field (currently named "Center"), then enter (-50,-0.1,-50). The -0.1 is to avoid floating point errors, in our scene the ground is at Y=0, if the graph was to have position Y=0 too, we might get annoying floating point errors when casting rays against it for example (like the height check does).</p><p>To make the grid fit our scene, we need to change the width and depth variables, set both to 100 in this case. You can see that the grid is correctly positioned by the white bounding rectangle in the scene view, which should now be enclosing the plane exactly.</p><h4 id='heighttest' >Height Testing</h4><p>In order to place the nodes at their correct height, the A* system fires off a bunch of rays against the scene to see where they hit. That's the Height Testing settings. A ray is fired from [Ray Length] units above the grid downwards, a node is placed where it hits. If it doesn't hit anything, it is either made unwalkable if the Unwalkable When No Ground variable is toggled or the node is placed at Y=0 relative to the grid if it is set to false.</p><p>To make sure our height testing hits the correct things, we need to change the mask used. Currently it includes everything, but that would include our obstacles as well, and we don't want that. So set the Mask to only include the "Ground" layer which we created earlier.</p><h4 id='collisiontest' >Collision Testing</h4><p>When a node has been placed, it is checked for walkability, this can be done with a Sphere, Capsule or a Ray. Usually a capsule is used with the same diameter and height as the AI character which is going to be walking around in the world, preferably with some margin though.</p><p>Our AI will have the standard diameter and height of 1 and 2 world units respectively, but we will set the diameter and height for the collision testing to 2 and 2 to get some margin.</p><p>Next, to make the system aware of the obstacles we placed, we need to change the mask for the Collision Testing, this time set it to contain only the "Obstacles" layer as we wouldn't want our ground to be treated as an obstacle.</p><p>Now that everything is set up correctly you can press the Scan button. Wait a fraction of a second and you've got a generated grid! (if you have done everything correctly, that is. Compare your settings to the image below and make sure that Show Graphs is true).</p><p><table class='table table-striped table-filled' ><tr rows='1' cols='2' ><td thead='no' ><p> <img class="tinyshadow" src="data:image/png;base64,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"></img> </p> </td><td thead='no' ><p> <img class="tinyshadow" src="data:image/png;base64,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nz83nGYHAAAADH5EItHd3T0sLMzOzq79t20DXmNj47lz5wICAsaPH89gMLAzzQEAAIBBTqfTKRSKoqKis2fPxsXF2dvbt8nQNuD9+eefAQEB48aNo9FoeDwezisAAADwUtDr9Uwm09HRsbW19c8//xw3blybDG0D3vPnz8ePH0+j0WxsbPqpjwAAAAZafX3977///uTJE5VK1WEGMpns7e39+uuvOzo69meR7pai0WihoaE//vhj+2xtA55Go4GZTAAAsCp1dXV79+7lcrlTp061s7NrHwJ0Op1MJisuLv7uu+/mzZvn5OTUZRGNRtPU1NStIu1b6UHfHB0dGQyGVqtt/2N2sGgFZjIBAMCqXLx40dPT87XXXrO3t7exsekwqLi6urq4uFy4cOHixYszZ840XeTatWt5eXm2trYxMTGtra3mFOmwlZ71rbN7tj65k2tubu6LagEAAPSFJ0+eBAcH29vbE4nEDqMFHo8nEon29vYhISFCodB0kYsXL165ckWtVtfV1f3222/BwcGmi7S0tHzzzTf79+9v30qbUlVVVR12vn2pDnXvPDyhUHj+/Pnq6moGgzF69Oh//OMf7e8Fnz9//p///GfOnDkTJ040Tt+zZ4+Dg8OMGTN6UGe3iMXiffv2vf322z4+Pr2pBwAArIRKpbKzs+ty6YaNjY2dnZ1arTZR5Pfff8/LyzNcKpXKLos0NDRIJBLDQzvjVoxLVVRUHDhwICoqyji45OTk3Lp1KzEx0dvb27hUh7oR8AoKCjIzM5lMZmBgoFgs3rNnT3l5eVJSUptsLi4u7777blhYWJv0x48ftz/33Mw6u6WlpeXBgweTJk3qTSUAAGBV8Hg8Ho9vbW198ODBX3/9JRaLFQoFFnucnJz8/PwCAgLazChiRYwr+e23327cuGGcMm3aNAKBYKIIQsje3n7WrFmenp6d5cFShg0bFhUVdfPmTYQQFvOwaBcZGenr64tlM/0zmhvwWltbv//+e3d39/Xr11MoFITQ999///vvv0+aNIlEIuXk5PD5/Pz8fG9vb19f39ra2ubmZicnp6ampt9//12hUMTExPSmTj6f39jYeO3atdraWjabPXbsWBqNVl9fn5OTM3r06L/++qumpiYsLCwoKMhQuV6vP3v2bG1tbWhoqHE6AACADjU2Nh46dIhIJIaGhr7yyit//PEHQig0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K1Y8++yzhBCLxfLzzz9XVFSMGDFixowZPB6v0zC676h9bP7+/jqdzr67wr///e+ZM2fezje14c4wGo07duw4efKkj49PeHh4dnb2d99999e//nWw4wKAwdf/z/AMBsPu3bv3798fFxfX1NS0cuVKppDZl87Pz8/V1dXPzy8kJMReaDQaly5dqlark5KSLl682MtxG5vNtr909cEHH+Tn548fP76mpsbeY8cwuu+ofWxisfjrr79myquqqo4cOeKw3QHcnWpra4cNG2b/fHlycnLHeQIAcE4D8h6e0Wh84YUXBALBhAkT0tPT22/uGhYWNmzYsLCwsLFjx9of+PH5/E8++cTT05MQIpFIPvvss8WLF3fVeFNTk9VqValU27Ztmzx5MiFELpfX1dVt3ryZoqikpKSXXnqppKTEz8+vYxhisbibjtrHRgjhcrlXrlwJDw///fffU1NTKYoaiHsF/aupqcnDw8P+093dvbGxcRDjAYC7x4AkPIlEwjyZY7PZIpFIr9f3uGRcLpdv3rz56tWrJpOp+5qffPIJh8MRiUTx8fFPPPEEIaSmpqa1tfXll19mKly/fl2hUPj5+XUMQywW976jlJSU3377LTw8PDMz87333uvltcPgcnFxUavV9p8ajabHTZcAwEncFV9aKSsr++KLL1asWBEeHl5fX999dvnnP//p8PEYoVAYHh7+5ptv2ksEAkH7YeWtdZSSkvLKK6/cf//9MpnM39+/j9cEgyMgIKCurk6v1wuFQkJISUlJYGDgYAcFAHeFQXgPj8vlOiyca2pq8vf3j4qK4vP5v//+e18bjI6OrqioUCgUEomEpulPP/2002zXm47ax+bp6env779hw4YHH3ywryHBYJHJZMnJyRs2bCCEKBSKHTt2MNMAAACDkPBmzpx54MCBt956y14yYcIEDoezePHiZ599VqVS9bVBiUTy+uuvr169+oUXXli0aFFAQEBXs1g9duQQ27Rp02pqaqZMmdLXkGAQ/eMf/zh+/HhcXNyUKVOWLFkyZsyYwY4IAO4KVEZGRvvf27dvX7Zs2UCvv6dp2mQyOXz5UKlU8vn8rl7L65HNZmtpaZFKpT1+ULH7jtrHdvLkyXPnzrXPzXB30mq1SUlJ7UuampqkUukt/+sEAEPRuXPnxGJxa2vr+vXrn3nmGYejg/MMj6KojmnpNhcXsFis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"></img> </p> </td></tr></table> </p><h3 id='addingai' >Adding the AI</h3><p>What is a pathfinding test without some moving stuff? Not fun at all, so let's add an AI to play around with.</p><p>Create a capsule and add the Character Controller component to it, also place it somewhere visible on the plane.</p><p>Add the Seeker component to the AI, this script is a helper script for calling requesting paths from other scripts, it can also handle path modifiers which can e.g. smooth the path or simplify it using raycasts.</p><p>There are two alternatives now. You can either write your own movement script or you can use one of the built-in movement scripts. The included scripts are much more advanced than what you write in the tutorial linked below, so for most cases I recommend using them. However, I still recommend following the tutorial for writing a custom movement script even if you end up using one of the built-in ones in your game because it makes it easier to understand how the system works under the hood.</p><p>Check out this subpage for the tutorial: <a href='https://arongranberg.com/astar/documentation/stable/custom_movement_script.html'>Writing a movement script</a></p><p>The included scripts are called <a href='https://arongranberg.com/astar/documentation/stable/aipath.html'>AIPath</a>, <a href='https://arongranberg.com/astar/documentation/stable/richai.html'>RichAI</a> and <a href='https://arongranberg.com/astar/documentation/stable/ailerp.html'>AILerp</a>. The AIPath and AILerp scripts can be used on any graph, while RichAI is primarily for navmesh based graphs. While the AIPath and RichAI scripts follow the path loosely, the AILerp script uses interpolation to move along the path very precisely, but perhaps not in the most realistic way. Which one you use depends on your game.</p><p></p><div class='simplesect simplesect-see' ><h3>See</h3><p>For more information about the included movement scripts, take a look at <a href='https://arongranberg.com/astar/documentation/stable/movementscripts.html'>Movement scripts</a>. You can also see how they are used in the included example scenes.</p></div><p> For this tutorial, you can attach the <a href='https://arongranberg.com/astar/documentation/stable/aipath.html'>AIPath</a> component to the AI. Also create a new GameObject named "Target" and position it where you want the AI to move. Then attach the <a href='https://arongranberg.com/astar/documentation/stable/aidestinationsetter.html'>AIDestinationSetter</a> component to the AI. This component is just a very simple helper script which will tell the AIPath script to move to a particular location. You will likely replace this script with your own game-specific script in the future. The AIDestinationSetter component has a single field called "target", assign the "Target" GameObject that you created earlier to this field.</p><p>If you press play now, the AI should move to the target. How the movement scripts work and how to configure them is explained in more detail in the video tutorial linked above. Take a look at that if something doesn't seem to work.</p><h3 id='smoothing' >Smoothing</h3><p>Now you have learned how to set up a simple grid graph and how to calculate paths Pathfinding, but surely there must be a way to get those paths to look a bit smoother?<br> Sure it is. Path smoothing and simplification scripts are called Path Modifiers and are scripts which can be added to the same GameObject as the Seeker.</p><p>The most straight forward one is the Simple Smooth modifier, which can be found at Menu bar → Components → Pathfinding → Modifiers → Simple Smooth. Add that to our AI.</p><p>What this modifier is going to do, is to subdivide the path a number of times until each segment becomes smaller than the Max Segment Length variable. Then it will smooth the path by moving the points closer to each other. The modifier has a number of settings, I won't go through all of them here. See the <a href='https://arongranberg.com/astar/documentation/stable/simplesmoothmodifier.html'>SimpleSmoothModifier</a> documentation for more info about each variable. For this tutorial you can set Max Segment Length to, say 1. Iterations to 5 and Strength to 0.25. Experiment with it to get good values.</p><p>Now press play again, the path should look much smoother, just as we wanted.</p><p></p><div class='simplesect simplesect-warning' ><h3>Warning</h3><p>Smoothers don't usually take world geometry or the graph into account, so be careful with applying too much smoothing since that could cause paths to pass through unwalkable areas.</p></div><p> <img class="tinyshadow" src="data:image/png;base64,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"></img></p><p>Another good modifier to use is the <a href='https://arongranberg.com/astar/documentation/stable/funnelmodifier.html'>FunnelModifier</a> which will simplify the path a great deal. This modifier is almost always used when using navmesh/recast graphs.</p><p>Read more about modifiers on the page <a href='https://arongranberg.com/astar/documentation/stable/modifiers2.html'>Using Modifiers</a>.</p><h3 id='logging' >Logging settings</h3><p>Every time a path is calculated by the system, it can optionally be logged to the console. This can be a big help in understanding what the system is doing and also to spot performance issues. Logging is not free, however, so for release builds it is recommended that you disable it.</p><p>You can change the logging settings under the A* Inspector → Settings → Debug tab. <img class="tinyshadow" srcset="images/path_logging@2x.png 2x" src="data:image/png;base64,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"></img></p><p>Use less debugging to improve performance (a bit) or just to get rid of the console spam. Use more debugging (heavy) if you want more information about what the pathfinding scripts are doing. The InGame option will display the latest path log using the in-game GUI.</p><h3 id='end' >Conclusion</h3><p>That was the end of the Get Started tutorial part 1. I hope you learned something from it. From here on, you can explore the rest of the documentation or dig straight in to the project. If you want a little better AI, you can use the AIPath script, which is included in the project.</p><p>You can continue with the next part of the get started tutorial, where we will use navmesh graphs: <a href='https://arongranberg.com/astar/documentation/stable/getstarted2.html'>Using navmeshes</a></p><p>You can also take a look in the sidebar, there you will find a number of tutorials for how to use the package.</p><p>Good Luck! </p><div class='alert alert-danger' role='alert'>This is an excerpt from the full documentation. You can view the full documentation <a href='https://arongranberg.com/astar/documentation/stable'>here</a>. Most links on this page will just take you to the full documentation.</div> </article> </div> <div class="row"> <div class="col-md-12" style="height: 30px"> </div> </div> </div> </div> </div> <script>/*! * jQuery JavaScript Library v2.1.4 * http://jquery.com/ * * Includes Sizzle.js * http://sizzlejs.com/ * * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * * Date: 2015-04-28T16:01Z */ (function( global, factory ) { if ( typeof module === "object" && typeof module.exports === "object" ) { // For CommonJS and CommonJS-like environments where a proper `window` // is present, execute the factory and get jQuery. // For environments that do not have a `window` with a `document` // (such as Node.js), expose a factory as module.exports. // This accentuates the need for the creation of a real `window`. // e.g. var jQuery = require("jquery")(window); // See ticket #14549 for more info. module.exports = global.document ? factory( global, true ) : function( w ) { if ( !w.document ) { throw new Error( "jQuery requires a window with a document" ); } return factory( w ); }; } else { factory( global ); } // Pass this if window is not defined yet }(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { // Support: Firefox 18+ // Can't be in strict mode, several libs including ASP.NET trace // the stack via arguments.caller.callee and Firefox dies if // you try to trace through "use strict" call chains. (#13335) // var arr = []; var slice = arr.slice; var concat = arr.concat; var push = arr.push; var indexOf = arr.indexOf; var class2type = {}; var toString = class2type.toString; var hasOwn = class2type.hasOwnProperty; var support = {}; var // Use the correct document accordingly with window argument (sandbox) document = window.document, version = "2.1.4", // Define a local copy of jQuery jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); }, // Support: Android<4.1 // Make sure we trim BOM and NBSP rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/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(); }; jQuery.fn = jQuery.prototype = { // The current version of jQuery being used jquery: version, constructor: jQuery, // Start with an empty selector selector: "", // The default length of a jQuery object is 0 length: 0, toArray: function() { return 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 just the one element from the set ( num < 0 ? this[ num + this.length ] : this[ num ] ) : // Return all the elements in a clean array slice.call( this ); }, // 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 ); }, map: function( callback ) { return this.pushStack( jQuery.map(this, function( elem, i ) { return callback.call( elem, i, elem ); })); }, slice: function() { return this.pushStack( 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] ] : [] ); }, end: function() { return this.prevObject || this.constructor(null); }, // For internal use only. // Behaves like an Array's method, not like a jQuery method. push: push, sort: arr.sort, splice: arr.splice }; jQuery.extend = jQuery.fn.extend = function() { var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false; // Handle a deep copy situation if ( typeof target === "boolean" ) { deep = target; // Skip the boolean and the target target = arguments[ i ] || {}; i++; } // 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 ( i === length ) { 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({ // Unique for each copy of jQuery on the page expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), // Assume jQuery is ready without the ready module isReady: true, error: function( msg ) { throw new Error( msg ); }, noop: function() {}, isFunction: function( obj ) { return jQuery.type(obj) === "function"; }, isArray: Array.isArray, isWindow: function( obj ) { return obj != null && obj === obj.window; }, isNumeric: function( obj ) { // parseFloat NaNs numeric-cast false positives (null|true|false|"") // ...but misinterprets leading-number strings, particularly hex literals ("0x...") // subtraction forces infinities to NaN // adding 1 corrects loss of precision from parseFloat (#15100) return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0; }, isPlainObject: function( obj ) { // Not plain objects: // - Any object or value whose internal [[Class]] property is not "[object Object]" // - DOM nodes // - window if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { return false; } if ( obj.constructor && !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { return false; } // If the function hasn't returned already, we're confident that // |obj| is a plain object, created by {} or constructed with new Object return true; }, isEmptyObject: function( obj ) { var name; for ( name in obj ) { return false; } return true; }, type: function( obj ) { if ( obj == null ) { return obj + ""; } // Support: Android<4.0, iOS<6 (functionish RegExp) return typeof obj === "object" || typeof obj === "function" ? class2type[ toString.call(obj) ] || "object" : typeof obj; }, // Evaluates a script in a global context globalEval: function( code ) { var script, indirect = eval; code = jQuery.trim( code ); if ( code ) { // If the code includes a valid, prologue position // strict mode pragma, execute code by injecting a // script tag into the document. if ( code.indexOf("use strict") === 1 ) { script = document.createElement("script"); script.text = code; document.head.appendChild( script ).parentNode.removeChild( script ); } else { // Otherwise, avoid the DOM node creation, insertion // and removal by using an indirect global eval indirect( code ); } } }, // Convert dashed to camelCase; used by the css and data modules // Support: IE9-11+ // 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; }, // Support: Android<4.1 trim: 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 { push.call( ret, arr ); } } return ret; }, inArray: function( elem, arr, i ) { return arr == null ? -1 : indexOf.call( arr, elem, i ); }, merge: function( first, second ) { var len = +second.length, j = 0, i = first.length; for ( ; j < len; j++ ) { first[ i++ ] = second[ j ]; } first.length = i; return first; }, grep: function( elems, callback, invert ) { var callbackInverse, matches = [], i = 0, length = elems.length, callbackExpect = !invert; // Go through the array, only saving the items // that pass the validator function for ( ; i < length; i++ ) { callbackInverse = !callback( elems[ i ], i ); if ( callbackInverse !== callbackExpect ) { matches.push( elems[ i ] ); } } return matches; }, // 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 new values if ( isArray ) { for ( ; i < length; i++ ) { value = callback( elems[ i ], i, arg ); if ( value != null ) { ret.push( value ); } } // Go through every key on the object, } else { for ( i in elems ) { value = callback( elems[ i ], i, arg ); if ( value != null ) { ret.push( value ); } } } // Flatten any nested arrays return 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 tmp, args, proxy; 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 = slice.call( arguments, 2 ); proxy = function() { return fn.apply( context || this, args.concat( 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; }, now: Date.now, // jQuery.support is not used in Core but other projects attach their // properties to it so it needs to exist. support: support }); // 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 ) { // Support: iOS 8.2 (not reproducible in simulator) // `in` check used to prevent JIT error (gh-2145) // hasOwn isn't used here due to false negatives // regarding Nodelist length in IE var length = "length" in obj && obj.length, type = jQuery.type( obj ); if ( type === "function" || jQuery.isWindow( obj ) ) { return false; } if ( obj.nodeType === 1 && length ) { return true; } return type === "array" || length === 0 || typeof length === "number" && length > 0 && ( length - 1 ) in obj; } var Sizzle = /*! * Sizzle CSS Selector Engine v2.2.0-pre * http://sizzlejs.com/ * * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * * Date: 2014-12-16 */ (function( window ) { var i, support, Expr, getText, isXML, tokenize, compile, select, outermostContext, sortInput, hasDuplicate, // Local document vars setDocument, document, docElem, documentIsHTML, rbuggyQSA, rbuggyMatches, matches, contains, // Instance-specific data expando = "sizzle" + 1 * new Date(), preferredDoc = window.document, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), sortOrder = function( a, b ) { if ( a === b ) { hasDuplicate = true; } return 0; }, // General-purpose constants MAX_NEGATIVE = 1 << 31, // Instance methods hasOwn = ({}).hasOwnProperty, arr = [], pop = arr.pop, push_native = arr.push, push = arr.push, slice = arr.slice, // Use a stripped-down indexOf as it's faster than native // http://jsperf.com/thor-indexof-vs-for/5 indexOf = function( list, elem ) { var i = 0, len = list.length; for ( ; i < len; i++ ) { if ( list[i] === elem ) { return i; } } return -1; }, booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", // 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#" ), // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + "*\\]", pseudos = ":(" + characterEncoding + ")(?:\\((" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + // 2. simple (capture 6) "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + // 3. anything else (capture 2) ".*" + ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter rwhitespace = new RegExp( whitespace + "+", "g" ), rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), rpseudo = new RegExp( pseudos ), ridentifier = new RegExp( "^" + identifier + "$" ), matchExpr = { "ID": new RegExp( "^#(" + characterEncoding + ")" ), "CLASS": new RegExp( "^\\.(" + 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" ), "bool": new RegExp( "^(?:" + booleans + ")$", "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" ) }, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, rnative = /^[^{]+\{\s*\[native \w/, // Easily-parseable/retrievable ID or TAG or CLASS selectors rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, rsibling = /[+~]/, rescape = /'|\\/g, // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), funescape = function( _, escaped, escapedWhitespace ) { var high = "0x" + escaped - 0x10000; // NaN means non-codepoint // Support: Firefox<24 // Workaround erroneous numeric interpretation of +"0x" return high !== high || escapedWhitespace ? escaped : high < 0 ? // BMP codepoint String.fromCharCode( high + 0x10000 ) : // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }, // Used for iframes // See setDocument() // Removing the function wrapper causes a "Permission Denied" // error in IE unloadHandler = function() { setDocument(); }; // Optimize for push.apply( _, NodeList ) try { push.apply( (arr = slice.call( preferredDoc.childNodes )), preferredDoc.childNodes ); // Support: Android<4.0 // Detect silently failing push.apply arr[ preferredDoc.childNodes.length ].nodeType; } catch ( e ) { push = { apply: arr.length ? // Leverage slice if possible function( target, els ) { push_native.apply( target, slice.call(els) ); } : // Support: IE<9 // Otherwise append directly function( target, els ) { var j = target.length, i = 0; // Can't trust NodeList.length while ( (target[j++] = els[i++]) ) {} target.length = j - 1; } }; } 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 || []; nodeType = context.nodeType; if ( typeof selector !== "string" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { return results; } if ( !seed && documentIsHTML ) { // Try to shortcut find operations when possible (e.g., not under DocumentFragment) if ( nodeType !== 11 && (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 (jQuery #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, context.getElementsByTagName( selector ) ); return results; // Speed-up: Sizzle(".CLASS") } else if ( (m = match[3]) && support.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); return results; } } // QSA path if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { nid = old = expando; newContext = context; newSelector = nodeType !== 1 && 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 ) && testContext( context.parentNode ) || context; newSelector = groups.join(","); } if ( newSelector ) { try { push.apply( results, newContext.querySelectorAll( newSelector ) ); return results; } catch(qsaError) { } finally { if ( !old ) { context.removeAttribute("id"); } } } } } // All others return select( selector.replace( rtrim, "$1" ), context, results, seed ); } /** * 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 keys = []; function cache( 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); } return cache; } /** * 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 { // Remove from its parent by default if ( div.parentNode ) { div.parentNode.removeChild( div ); } // release memory in IE div = null; } } /** * Adds the same handler for all of the specified attrs * @param {String} attrs Pipe-separated list of attributes * @param {Function} handler The method that will be applied */ function addHandle( attrs, handler ) { var arr = attrs.split("|"), i = attrs.length; while ( i-- ) { Expr.attrHandle[ arr[i] ] = handler; } } /** * Checks document order of two siblings * @param {Element} a * @param {Element} b * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b */ function siblingCheck( a, b ) { var cur = b && a, diff = cur && a.nodeType === 1 && b.nodeType === 1 && ( ~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 * @param {String} type */ 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 * @param {String} type */ 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 * @param {Function} fn */ 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]); } } }); }); } /** * Checks a node for validity as a Sizzle context * @param {Element|Object=} context * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value */ function testContext( context ) { return context && typeof context.getElementsByTagName !== "undefined" && context; } // Expose support vars for convenience support = Sizzle.support = {}; /** * Detects XML nodes * @param {Element|Object} elem An element or a document * @returns {Boolean} True iff elem is a non-HTML XML node */ 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 hasCompare, parent, 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; parent = doc.defaultView; // Support: IE>8 // If iframe document is assigned to "document" variable and if iframe has been reloaded, // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 // IE6-8 do not support the defaultView property so parent will be undefined if ( parent && parent !== parent.top ) { // IE11 does not have attachEvent, so all must suffer if ( parent.addEventListener ) { parent.addEventListener( "unload", unloadHandler, false ); } else if ( parent.attachEvent ) { parent.attachEvent( "onunload", unloadHandler ); } } /* Support tests ---------------------------------------------------------------------- */ documentIsHTML = !isXML( doc ); /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties // (excepting IE8 booleans) support.attributes = assert(function( div ) { div.className = "i"; return !div.getAttribute("className"); }); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements support.getElementsByTagName = assert(function( div ) { div.appendChild( doc.createComment("") ); return !div.getElementsByTagName("*").length; }); // Support: IE<9 support.getElementsByClassName = rnative.test( doc.getElementsByClassName ); // Support: IE<10 // Check if getElementById returns elements by name // The broken getElementById methods don't pick up programatically-set names, // so use a roundabout getElementsByName test support.getById = assert(function( div ) { docElem.appendChild( div ).id = expando; return !doc.getElementsByName || !doc.getElementsByName( expando ).length; }); // ID find and filter if ( support.getById ) { Expr.find["ID"] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { 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 { // Support: IE6/7 // getElementById is not reliable as a find shortcut delete Expr.find["ID"]; Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); return node && node.value === attrId; }; }; } // Tag Expr.find["TAG"] = support.getElementsByTagName ? function( tag, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); // DocumentFragment nodes don't have gEBTN } else if ( support.qsa ) { return context.querySelectorAll( tag ); } } : function( tag, context ) { var elem, tmp = [], i = 0, // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too 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; }; // Class Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { if ( documentIsHTML ) { return context.getElementsByClassName( className ); } }; /* QSA/matchesSelector ---------------------------------------------------------------------- */ // QSA and matchesSelector support // matchesSelector(:active) reports false when true (IE9/Opera 11.5) rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21) // We allow this because of a bug in IE8/9 that throws an error // whenever `document.activeElement` is accessed on an iframe // So, we allow :focus to pass through QSA all the time to avoid the IE error // See http://bugs.jquery.com/ticket/13378 rbuggyQSA = []; if ( (support.qsa = rnative.test( 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 explicitly // setting a boolean content attribute, // since its presence should be enough // http://bugs.jquery.com/ticket/12359 docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" + "<select id='" + expando + "-\f]' msallowcapture=''>" + "<option selected=''></option></select>"; // Support: IE8, Opera 11-12.16 // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section if ( div.querySelectorAll("[msallowcapture^='']").length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly if ( !div.querySelectorAll("[selected]").length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+ if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { rbuggyQSA.push("~="); } // 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"); } // Support: Safari 8+, iOS 8+ // https://bugs.webkit.org/show_bug.cgi?id=136851 // In-page `selector#id sibing-combinator selector` fails if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { rbuggyQSA.push(".#.+[+~]"); } }); assert(function( div ) { // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment var input = doc.createElement("input"); input.setAttribute( "type", "hidden" ); div.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute if ( div.querySelectorAll("[name=d]").length ) { rbuggyQSA.push( "name" + 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 = rnative.test( (matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || 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 = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); /* Contains ---------------------------------------------------------------------- */ hasCompare = rnative.test( docElem.compareDocumentPosition ); // Element contains another // Purposefully does not implement inclusive descendent // As in, an element does not contain itself contains = hasCompare || rnative.test( docElem.contains ) ? 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; }; /* Sorting ---------------------------------------------------------------------- */ // Document order sorting sortOrder = hasCompare ? function( a, b ) { // Flag for duplicate removal if ( a === b ) { hasDuplicate = true; return 0; } // Sort on method existence if only one input has compareDocumentPosition var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; if ( compare ) { return compare; } // Calculate position if both inputs belong to the same document compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? a.compareDocumentPosition( b ) : // Otherwise we know they are disconnected 1; // Disconnected nodes if ( compare & 1 || (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { // Choose the first element that is related to our preferred document if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { return -1; } if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { return 1; } // Maintain original order return sortInput ? ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; } return compare & 4 ? -1 : 1; } : function( a, b ) { // Exit early if the nodes are identical if ( a === b ) { hasDuplicate = true; return 0; } var cur, i = 0, aup = a.parentNode, bup = b.parentNode, ap = [ a ], bp = [ b ]; // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { return a === doc ? -1 : b === doc ? 1 : aup ? -1 : bup ? 1 : sortInput ? ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 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; }; return doc; }; 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']" ); if ( support.matchesSelector && documentIsHTML && ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && ( !rbuggyQSA || !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 ) { // Set document vars if needed if ( ( elem.ownerDocument || elem ) !== document ) { setDocument( elem ); } var fn = Expr.attrHandle[ name.toLowerCase() ], // Don't get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? fn( elem, name, !documentIsHTML ) : undefined; return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; }; Sizzle.error = function( msg ) { throw new Error( "Syntax error, unrecognized expression: " + msg ); }; /** * Document sorting and removing duplicates * @param {ArrayLike} results */ Sizzle.uniqueSort = function( results ) { var elem, duplicates = [], j = 0, i = 0; // Unless we *know* we can detect duplicates, assume their presence hasDuplicate = !support.detectDuplicates; sortInput = !support.sortStable && results.slice( 0 ); results.sort( sortOrder ); if ( hasDuplicate ) { while ( (elem = results[i++]) ) { if ( elem === results[ i ] ) { j = duplicates.push( i ); } } while ( j-- ) { results.splice( duplicates[ j ], 1 ); } } // Clear input after sorting to release objects // See https://github.com/jquery/sizzle/pull/225 sortInput = null; return results; }; /** * 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 while ( (node = elem[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 (jQuery #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, attrHandle: {}, 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[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[6] && match[2]; if ( matchExpr["CHILD"].test( match[0] ) ) { return null; } // Accept quoted arguments as-is if ( match[3] ) { match[2] = match[4] || match[5] || ""; // 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( nodeNameSelector ) { var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); return nodeNameSelector === "*" ? function() { return true; } : 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( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && 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.replace( rwhitespace, " " ) + " " ).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( 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 ); // Don't keep the element (issue #299) input[0] = null; return !results.pop(); }; }), "has": markFunction(function( selector ) { return function( elem ) { return Sizzle( selector, elem ).length > 0; }; }), "contains": markFunction(function( text ) { text = text.replace( runescape, funescape ); 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 identifier if ( !ridentifier.test(lang || "") ) { Sizzle.error( "unsupported lang: " + lang ); } lang = lang.replace( runescape, funescape ).toLowerCase(); return function( elem ) { var elemLang; do { if ( (elemLang = documentIsHTML ? elem.lang : elem.getAttribute("xml:lang") || elem.getAttribute("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 negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), // but not by others (comment: 8; processing instruction: 7; etc.) // nodeType < 6 works because attributes (2) do not appear as children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { if ( elem.nodeType < 6 ) { 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; return elem.nodeName.toLowerCase() === "input" && elem.type === "text" && // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); }, // 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; }) } }; Expr.pseudos["nth"] = Expr.pseudos["eq"]; // 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 ); } // Easy API for creating new setFilters function setFilters() {} setFilters.prototype = Expr.filters = Expr.pseudos; Expr.setFilters = new setFilters(); tokenize = Sizzle.tokenize = function( 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 oldCache, outerCache, newCache = [ 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 ( (oldCache = outerCache[ dir ]) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements return (newCache[ 2 ] = oldCache[ 2 ]); } else { // Reuse newcache so results back-propagate to previous elements outerCache[ dir ] = newCache; // A match means we're done; a fail means we have to keep checking if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { 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 multipleContexts( selector, contexts, results ) { var i = 0, len = contexts.length; for ( ; i < len; i++ ) { Sizzle( selector, contexts[i], results ); } return results; } 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( 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( checkContext, elem ) > -1; }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( (checkContext = context).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); // Avoid hanging onto element (issue #299) checkContext = null; return ret; } ]; 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( // If the preceding token was a descendant combinator, insert an implicit any-element `*` tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) ).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 ) { var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function( seed, context, xml, results, outermost ) { var elem, j, matcher, matchedCount = 0, i = "0", unmatched = seed && [], setMatched = [], contextBackup = outermostContext, // We must always have either seed elements or outermost context elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), // Use integer dirruns iff this is the outermost matcher dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), len = elems.length; if ( outermost ) { outermostContext = context !== document && context; } // Add elements passing elementMatchers directly to results // Keep `i` a string if there are no elements so `matchedCount` will be "00" below // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id for ( ; i !== len && (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; } } // 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, match /* 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 ( !match ) { match = tokenize( selector ); } i = match.length; while ( i-- ) { cached = matcherFromTokens( match[i] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { elementMatchers.push( cached ); } } // Cache the compiled function cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); // Save selector and tokenization cached.selector = selector; } return cached; }; /** * A low-level selection function that works with Sizzle's compiled * selector functions * @param {String|Function} selector A selector or a pre-compiled * selector function built with Sizzle.compile * @param {Element} context * @param {Array} [results] * @param {Array} [seed] A set of elements to match against */ select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, compiled = typeof selector === "function" && selector, match = !seed && tokenize( (selector = compiled.selector || selector) ); results = results || []; // Try to minimize operations if there is no seed and 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" && support.getById && context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; if ( !context ) { return results; // Precompiled matchers will still verify ancestry, so step up a level } else if ( compiled ) { context = context.parentNode; } 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 ) && testContext( 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, seed ); return results; } break; } } } } // Compile and execute a filtering function if one is not provided // Provide `match` to avoid retokenization if we modified the selector above ( compiled || compile( selector, match ) )( seed, context, !documentIsHTML, results, rsibling.test( selector ) && testContext( context.parentNode ) || context ); return results; }; // One-time assignments // Sort stability support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; // Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function support.detectDuplicates = !!hasDuplicate; // Initialize against the default document setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* support.sortDetached = assert(function( div1 ) { // Should return 1, but returns 4 (following) return div1.compareDocumentPosition( document.createElement("div") ) & 1; }); // Support: IE<8 // Prevent attribute/property "interpolation" // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx if ( !assert(function( div ) { div.innerHTML = "<a href='https://arongranberg.com/astar/documentation/stable/#'></a>"; return div.firstChild.getAttribute("href") === "#" ; }) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } }); } // Support: IE<9 // Use defaultValue in place of getAttribute("value") if ( !support.attributes || !assert(function( div ) { div.innerHTML = "<input/>"; div.firstChild.setAttribute( "value", "" ); return div.firstChild.getAttribute( "value" ) === ""; }) ) { addHandle( "value", function( elem, name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { return elem.defaultValue; } }); } // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies if ( !assert(function( div ) { return div.getAttribute("disabled") == null; }) ) { addHandle( booleans, function( elem, name, isXML ) { var val; if ( !isXML ) { return elem[ name ] === true ? name.toLowerCase() : (val = elem.getAttributeNode( name )) && val.specified ? val.value : null; } }); } return Sizzle; })( window ); 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; var rneedsContext = jQuery.expr.match.needsContext; var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); var risSimple = /^.[^:#\[\.,]*$/; // Implement the identical functionality for filter and not function winnow( elements, qualifier, not ) { if ( jQuery.isFunction( qualifier ) ) { return jQuery.grep( elements, function( elem, i ) { /* jshint -W018 */ return !!qualifier.call( elem, i, elem ) !== not; }); } if ( qualifier.nodeType ) { return jQuery.grep( elements, function( elem ) { return ( elem === qualifier ) !== not; }); } if ( typeof qualifier === "string" ) { if ( risSimple.test( qualifier ) ) { return jQuery.filter( qualifier, elements, not ); } qualifier = jQuery.filter( qualifier, elements ); } return jQuery.grep( elements, function( elem ) { return ( indexOf.call( qualifier, elem ) >= 0 ) !== not; }); } jQuery.filter = function( expr, elems, not ) { var elem = elems[ 0 ]; if ( not ) { expr = ":not(" + expr + ")"; } return elems.length === 1 && elem.nodeType === 1 ? jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { return elem.nodeType === 1; })); }; jQuery.fn.extend({ find: function( selector ) { var i, len = this.length, ret = [], self = this; if ( typeof selector !== "string" ) { return this.pushStack( jQuery( selector ).filter(function() { for ( i = 0; i < len; i++ ) { if ( jQuery.contains( self[ i ], this ) ) { return true; } } }) ); } for ( i = 0; i < len; i++ ) { jQuery.find( selector, self[ 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 : selector; return ret; }, filter: function( selector ) { return this.pushStack( winnow(this, selector || [], false) ); }, not: function( selector ) { return this.pushStack( winnow(this, selector || [], true) ); }, is: function( selector ) { return !!winnow( this, // 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". typeof selector === "string" && rneedsContext.test( selector ) ? jQuery( selector ) : selector || [], false ).length; } }); // Initialize a jQuery object // A central reference to the root jQuery(document) var rootjQuery, // A simple way to check for HTML strings // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) // Strict HTML recognition (#11290: must start with <) rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, init = jQuery.fn.init = function( selector, context ) { var match, elem; // HANDLE: $(""), $(null), $(undefined), $(false) if ( !selector ) { return this; } // Handle HTML strings if ( typeof selector === "string" ) { if ( selector[0] === "<" && selector[ 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; // Option to run scripts is true for back-compat // Intentionally let the error be thrown if parseHTML is not present 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] ); // Support: Blackberry 4.6 // gEBID returns nodes no longer in the document (#6963) if ( elem && elem.parentNode ) { // 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 typeof rootjQuery.ready !== "undefined" ? rootjQuery.ready( selector ) : // Execute immediately if ready is not present selector( jQuery ); } if ( selector.selector !== undefined ) { this.selector = selector.selector; this.context = selector.context; } return jQuery.makeArray( selector, this ); }; // Give the init function the jQuery prototype for later instantiation init.prototype = jQuery.fn; // Initialize central reference rootjQuery = jQuery( document ); var rparentsprev = /^(?:parents|prev(?:Until|All))/, // Methods guaranteed to produce a unique set when starting from a unique set guaranteedUnique = { children: true, contents: true, next: true, prev: true }; jQuery.extend({ dir: function( elem, dir, until ) { var matched = [], truncate = until !== undefined; while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) { if ( elem.nodeType === 1 ) { if ( truncate && jQuery( elem ).is( until ) ) { break; } matched.push( elem ); } } return matched; }, sibling: function( n, elem ) { var matched = []; for ( ; n; n = n.nextSibling ) { if ( n.nodeType === 1 && n !== elem ) { matched.push( n ); } } return matched; } }); jQuery.fn.extend({ has: function( target ) { var targets = jQuery( target, this ), l = targets.length; return this.filter(function() { var i = 0; for ( ; i < l; i++ ) { if ( jQuery.contains( this, targets[i] ) ) { return true; } } }); }, closest: function( selectors, context ) { var cur, i = 0, l = this.length, matched = [], pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? jQuery( selectors, context || this.context ) : 0; for ( ; i < l; i++ ) { for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { // Always skip document fragments if ( cur.nodeType < 11 && (pos ? pos.index(cur) > -1 : // Don't pass non-elements to Sizzle cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors)) ) { matched.push( cur ); break; } } } return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); }, // Determine the position of an element within the set 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 indexOf.call( jQuery( elem ), this[ 0 ] ); } // Locate the position of the desired element return indexOf.call( this, // If it receives a jQuery object, the first element is used elem.jquery ? elem[ 0 ] : elem ); }, add: function( selector, context ) { return this.pushStack( jQuery.unique( jQuery.merge( this.get(), jQuery( selector, context ) ) ) ); }, addBack: function( selector ) { return this.add( selector == null ? this.prevObject : this.prevObject.filter(selector) ); } }); function sibling( cur, dir ) { while ( (cur = cur[dir]) && 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 elem.contentDocument || jQuery.merge( [], elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { var matched = jQuery.map( this, fn, until ); if ( name.slice( -5 ) !== "Until" ) { selector = until; } if ( selector && typeof selector === "string" ) { matched = jQuery.filter( selector, matched ); } if ( this.length > 1 ) { // Remove duplicates if ( !guaranteedUnique[ name ] ) { jQuery.unique( matched ); } // Reverse order for parents* and prev-derivatives if ( rparentsprev.test( name ) ) { matched.reverse(); } } return this.pushStack( matched ); }; }); var rnotwhite = (/\S+/g); // 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( 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 // Last fire value (for non-forgettable lists) memory, // Flag to know if list was already fired fired, // Flag to know if list is currently firing firing, // First callback to fire (used internally by add and fireWith) firingStart, // End of the loop when firing firingLength, // Index of currently firing callback (modified by remove if needed) firingIndex, // 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 = []; firingLength = 0; 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 ) { if ( list && ( !fired || stack ) ) { args = args || []; args = [ context, args.slice ? args.slice() : args ]; 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 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[ tuple[ 0 ] + "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 = 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 ? 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(); } }); // The deferred used on DOM ready var readyList; jQuery.fn.ready = function( fn ) { // Add the callback jQuery.ready.promise().done( fn ); return this; }; jQuery.extend({ // 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; } // 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.triggerHandler ) { jQuery( document ).triggerHandler( "ready" ); jQuery( document ).off( "ready" ); } } }); /** * The ready event handler and self cleanup method */ function completed() { document.removeEventListener( "DOMContentLoaded", completed, false ); window.removeEventListener( "load", completed, false ); jQuery.ready(); } 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 ); } else { // Use the handy event callback document.addEventListener( "DOMContentLoaded", completed, false ); // A fallback to window.onload, that will always work window.addEventListener( "load", completed, false ); } } return readyList.promise( obj ); }; // Kick off the DOM ready check even if the user does not jQuery.ready.promise(); // Multifunctional method to get and set values of a collection // The value/s can optionally be executed if it's a function var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { var i = 0, len = 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 < len; i++ ) { fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); } } } return chainable ? elems : // Gets bulk ? fn.call( elems ) : len ? fn( elems[0], key ) : emptyGet; }; /** * Determines whether an object can have data */ jQuery.acceptData = function( owner ) { // Accepts only: // - Node // - Node.ELEMENT_NODE // - Node.DOCUMENT_NODE // - Object // - Any /* jshint -W018 */ return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); }; function Data() { // Support: Android<4, // Old WebKit does not have Object.preventExtensions/freeze method, // return new empty object instead with no [[set]] accessor Object.defineProperty( this.cache = {}, 0, { get: function() { return {}; } }); this.expando = jQuery.expando + Data.uid++; } Data.uid = 1; Data.accepts = jQuery.acceptData; Data.prototype = { key: function( owner ) { // We can accept data for non-element nodes in modern browsers, // but we should not, see #8335. // Always return the key for a frozen object. if ( !Data.accepts( owner ) ) { return 0; } var descriptor = {}, // Check if the owner object already has a cache key unlock = owner[ this.expando ]; // If not, create one if ( !unlock ) { unlock = Data.uid++; // Secure it in a non-enumerable, non-writable property try { descriptor[ this.expando ] = { value: unlock }; Object.defineProperties( owner, descriptor ); // Support: Android<4 // Fallback to a less secure definition } catch ( e ) { descriptor[ this.expando ] = unlock; jQuery.extend( owner, descriptor ); } } // Ensure the cache object if ( !this.cache[ unlock ] ) { this.cache[ unlock ] = {}; } return unlock; }, set: function( owner, data, value ) { var prop, // There may be an unlock assigned to this node, // if there is no entry for this "owner", create one inline // and set the unlock as though an owner entry had always existed unlock = this.key( owner ), cache = this.cache[ unlock ]; // Handle: [ owner, key, value ] args if ( typeof data === "string" ) { cache[ data ] = value; // Handle: [ owner, { properties } ] args } else { // Fresh assignments by object are shallow copied if ( jQuery.isEmptyObject( cache ) ) { jQuery.extend( this.cache[ unlock ], data ); // Otherwise, copy the properties one-by-one to the cache object } else { for ( prop in data ) { cache[ prop ] = data[ prop ]; } } } return cache; }, get: function( owner, key ) { // Either a valid cache is found, or will be created. // New caches will be created and the unlock returned, // allowing direct access to the newly created // empty data object. A valid owner object must be provided. var cache = this.cache[ this.key( owner ) ]; return key === undefined ? cache : cache[ key ]; }, access: function( owner, key, value ) { var stored; // In cases where either: // // 1. No key was specified // 2. A string key was specified, but no value provided // // Take the "read" path and allow the get method to determine // which value to return, respectively either: // // 1. The entire cache object // 2. The data stored at the key // if ( key === undefined || ((key && typeof key === "string") && value === undefined) ) { stored = this.get( owner, key ); return stored !== undefined ? stored : this.get( owner, jQuery.camelCase(key) ); } // [*]When the key is not a string, or both a key and value // are specified, set or extend (existing objects) with either: // // 1. An object of properties // 2. A key and value // this.set( owner, key, value ); // Since the "set" path can have two possible entry points // return the expected data based on which path was taken[*] return value !== undefined ? value : key; }, remove: function( owner, key ) { var i, name, camel, unlock = this.key( owner ), cache = this.cache[ unlock ]; if ( key === undefined ) { this.cache[ unlock ] = {}; } else { // Support array or space separated string of keys if ( jQuery.isArray( key ) ) { // 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 = key.concat( key.map( jQuery.camelCase ) ); } else { camel = jQuery.camelCase( key ); // Try the string as a key before any manipulation if ( key in cache ) { name = [ key, camel ]; } else { // If a key with the spaces exists, use it. // Otherwise, create an array by matching non-whitespace name = camel; name = name in cache ? [ name ] : ( name.match( rnotwhite ) || [] ); } } i = name.length; while ( i-- ) { delete cache[ name[ i ] ]; } } }, hasData: function( owner ) { return !jQuery.isEmptyObject( this.cache[ owner[ this.expando ] ] || {} ); }, discard: function( owner ) { if ( owner[ this.expando ] ) { delete this.cache[ owner[ this.expando ] ]; } } }; var data_priv = new Data(); var data_user = new Data(); // Implementation Summary // // 1. Enforce API surface and semantic compatibility with 1.9.x branch // 2. Improve the module's maintainability by reducing the storage // paths to a single mechanism. // 3. Use the same single mechanism to support "private" and "user" data. // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) // 5. Avoid exposing implementation details on user objects (eg. expando properties) // 6. Provide a clear path for implementation upgrade to WeakMap in 2014 var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, rmultiDash = /([A-Z])/g; function dataAttr( elem, key, data ) { var name; // If nothing was found internally, try to fetch any // data from the HTML5 data-* attribute if ( data === undefined && elem.nodeType === 1 ) { 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 data_user.set( elem, key, data ); } else { data = undefined; } } return data; } jQuery.extend({ hasData: function( elem ) { return data_user.hasData( elem ) || data_priv.hasData( elem ); }, data: function( elem, name, data ) { return data_user.access( elem, name, data ); }, removeData: function( elem, name ) { data_user.remove( elem, name ); }, // TODO: Now that all calls to _data and _removeData have been replaced // with direct calls to data_priv methods, these can be deprecated. _data: function( elem, name, data ) { return data_priv.access( elem, name, data ); }, _removeData: function( elem, name ) { data_priv.remove( elem, name ); } }); jQuery.fn.extend({ data: function( key, value ) { var i, name, data, elem = this[ 0 ], attrs = elem && elem.attributes; // Gets all values if ( key === undefined ) { if ( this.length ) { data = data_user.get( elem ); if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) { i = attrs.length; while ( i-- ) { // Support: IE11+ // The attrs elements can be null (#14894) if ( attrs[ i ] ) { name = attrs[ i ].name; if ( name.indexOf( "data-" ) === 0 ) { name = jQuery.camelCase( name.slice(5) ); dataAttr( elem, name, data[ name ] ); } } } data_priv.set( elem, "hasDataAttrs", true ); } } return data; } // Sets multiple values if ( typeof key === "object" ) { return this.each(function() { data_user.set( this, key ); }); } return access( this, function( value ) { var data, camelKey = jQuery.camelCase( key ); // The calling jQuery object (element matches) is not empty // (and therefore has an element appears at this[ 0 ]) and the // `value` parameter was not undefined. An empty jQuery object // will result in `undefined` for elem = this[ 0 ] which will // throw an exception if an attempt to read a data cache is made. if ( elem && value === undefined ) { // Attempt to get data from the cache // with the key as-is data = data_user.get( elem, key ); if ( data !== undefined ) { return data; } // Attempt to get data from the cache // with the key camelized data = data_user.get( elem, camelKey ); if ( data !== undefined ) { return data; } // Attempt to "discover" the data in // HTML5 custom data-* attrs data = dataAttr( elem, camelKey, undefined ); if ( data !== undefined ) { return data; } // We tried really hard, but the data doesn't exist. return; } // Set the data... this.each(function() { // First, attempt to store a copy or reference of any // data that might've been store with a camelCased key. var data = data_user.get( this, camelKey ); // For HTML5 data-* attribute interop, we have to // store property names with dashes in a camelCase form. // This might not apply to all properties...* data_user.set( this, camelKey, value ); // *... In the case of properties that might _actually_ // have dashes, we need to also store a copy of that // unchanged property. if ( key.indexOf("-") !== -1 && data !== undefined ) { data_user.set( this, key, value ); } }); }, null, value, arguments.length > 1, null, true ); }, removeData: function( key ) { return this.each(function() { data_user.remove( this, key ); }); } }); jQuery.extend({ queue: function( elem, type, data ) { var queue; if ( elem ) { type = ( type || "fx" ) + "queue"; queue = data_priv.get( elem, type ); // Speed up dequeue by getting out quickly if this is just a lookup if ( data ) { if ( !queue || jQuery.isArray( data ) ) { queue = data_priv.access( 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--; } 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 public - generate a queueHooks object, or return the current one _queueHooks: function( elem, type ) { var key = type + "queueHooks"; return data_priv.get( elem, key ) || data_priv.access( elem, key, { empty: jQuery.Callbacks("once memory").add(function() { data_priv.remove( elem, [ type + "queue", 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 ); }); }, 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 = data_priv.get( elements[ i ], type + "queueHooks" ); if ( tmp && tmp.empty ) { count++; tmp.empty.add( resolve ); } } resolve(); return defer.promise( obj ); } }); var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; var isHidden = function( 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 ); }; var rcheckableType = (/^(?:checkbox|radio)$/i); (function() { var fragment = document.createDocumentFragment(), div = fragment.appendChild( document.createElement( "div" ) ), input = document.createElement( "input" ); // Support: Safari<=5.1 // Check state lost if the name is set (#11217) // Support: Windows Web Apps (WWA) // `name` and `type` must use .setAttribute for WWA (#14901) input.setAttribute( "type", "radio" ); input.setAttribute( "checked", "checked" ); input.setAttribute( "name", "t" ); div.appendChild( input ); // Support: Safari<=5.1, Android<4.2 // Older WebKit doesn't clone checked state correctly in fragments support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; // Support: IE<=11+ // Make sure textarea (and checkbox) defaultValue is properly cloned div.innerHTML = "<textarea>x</textarea>"; support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; })(); var strundefined = typeof undefined; support.focusinBubbles = "onfocusin" in window; var rkeyEvent = /^key/, rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; function returnTrue() { return true; } function returnFalse() { return false; } function safeActiveElement() { try { return document.activeElement; } catch ( err ) { } } /* * 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 handleObjIn, eventHandle, tmp, events, t, handleObj, special, handlers, type, namespaces, origType, elemData = data_priv.get( 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 !== strundefined && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply( elem, arguments ) : undefined; }; } // Handle multiple events separated by a space types = ( types || "" ).match( rnotwhite ) || [ "" ]; t = types.length; while ( t-- ) { tmp = rtypenamespace.exec( types[t] ) || []; type = origType = tmp[1]; namespaces = ( tmp[2] || "" ).split( "." ).sort(); // There *must* be a type, no attaching namespace-only handlers if ( !type ) { continue; } // 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 if the special events handler returns false if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { if ( elem.addEventListener ) { elem.addEventListener( type, eventHandle, false ); } } } 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; } }, // Detach an event or set of events from an element remove: function( elem, types, handler, selector, mappedTypes ) { var j, origCount, tmp, events, t, handleObj, special, handlers, type, namespaces, origType, elemData = data_priv.hasData( elem ) && data_priv.get( elem ); if ( !elemData || !(events = elemData.events) ) { return; } // Once for each type.namespace in types; type may be omitted types = ( types || "" ).match( 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; data_priv.remove( elem, "events" ); } }, trigger: function( event, data, elem, onlyHandlers ) { var i, cur, tmp, bubbleType, ontype, handle, special, eventPath = [ elem || document ], type = hasOwn.call( event, "type" ) ? event.type : event, namespaces = 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 ); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) event.isTrigger = onlyHandlers ? 2 : 3; 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 = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); } // Native handler handle = ontype && cur[ ontype ]; if ( handle && handle.apply && jQuery.acceptData( cur ) ) { event.result = handle.apply( cur, data ); if ( event.result === 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( eventPath.pop(), data ) === false) && jQuery.acceptData( elem ) ) { // Call a native DOM method on the target with the same name name as the event. // Don't do default actions on window, that's where global variables be (#6170) if ( ontype && jQuery.isFunction( 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; elem[ type ](); 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, j, ret, matched, handleObj, handlerQueue = [], args = slice.call( arguments ), handlers = ( data_priv.get( 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 i, matches, sel, handleObj, handlerQueue = [], delegateCount = handlers.delegateCount, cur = event.target; // Find delegate handlers // Black-hole SVG <use> 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 process clicks on disabled elements (#6911, #8165, #11382, #11764) if ( 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; }, // 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 offsetX offsetY pageX pageY screenX screenY toElement".split(" "), filter: function( event, original ) { var eventDoc, doc, body, button = original.button; // 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 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; } }, 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: Cordova 2.5 (WebKit) (#13255) // All events should have a target; Cordova deviceready doesn't if ( !event.target ) { event.target = document; } // Support: Safari 6.0+, Chrome<28 // Target should not be a text node (#504, #13143) if ( event.target.nodeType === 3 ) { event.target = event.target.parentNode; } return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; }, special: { load: { // Prevent triggered image.load events from bubbling to window.load noBubble: true }, focus: { // Fire native event if possible so blur/focus sequence is correct trigger: function() { if ( this !== safeActiveElement() && this.focus ) { this.focus(); return false; } }, delegateType: "focusin" }, blur: { trigger: function() { if ( this === safeActiveElement() && this.blur ) { this.blur(); return false; } }, delegateType: "focusout" }, click: { // For checkbox, fire native event so checked state will be right trigger: function() { if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { this.click(); return false; } }, // For cross-browser consistency, don't fire native .click() on links _default: function( event ) { return jQuery.nodeName( event.target, "a" ); } }, beforeunload: { postDispatch: function( event ) { // Support: Firefox 20+ // Firefox doesn't alert if the returnValue field is not set. if ( event.result !== undefined && event.originalEvent ) { 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 = function( elem, type, handle ) { if ( elem.removeEventListener ) { elem.removeEventListener( type, handle, false ); } }; 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.defaultPrevented === undefined && // Support: Android<4.0 src.returnValue === false ? 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 && e.preventDefault ) { e.preventDefault(); } }, stopPropagation: function() { var e = this.originalEvent; this.isPropagationStopped = returnTrue; if ( e && e.stopPropagation ) { e.stopPropagation(); } }, stopImmediatePropagation: function() { var e = this.originalEvent; this.isImmediatePropagationStopped = returnTrue; if ( e && e.stopImmediatePropagation ) { e.stopImmediatePropagation(); } this.stopPropagation(); } }; // Create mouseenter/leave events using mouseover/out and event-time checks // Support: Chrome 15+ jQuery.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, 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; } }; }); // Support: Firefox, Chrome, Safari // Create "bubbling" focus and blur events if ( !support.focusinBubbles ) { jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { // Attach a single capturing handler on the document while someone wants focusin/focusout var handler = function( event ) { jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); }; jQuery.event.special[ fix ] = { setup: function() { var doc = this.ownerDocument || this, attaches = data_priv.access( doc, fix ); if ( !attaches ) { doc.addEventListener( orig, handler, true ); } data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { var doc = this.ownerDocument || this, attaches = data_priv.access( doc, fix ) - 1; if ( !attaches ) { doc.removeEventListener( orig, handler, true ); data_priv.remove( doc, fix ); } else { data_priv.access( doc, fix, attaches ); } } }; }); } jQuery.fn.extend({ on: function( types, selector, data, fn, /*INTERNAL*/ one ) { var origFn, type; // 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 ); }); }, 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 ); } } }); var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, rtagName = /<([\w:]+)/, rhtml = /<|&#?\w+;/, rnoInnerhtml = /<(?:script|style|link)/i, // checked="checked" or checked rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, rscriptType = /^$|\/(?:java|ecma)script/i, rscriptTypeMasked = /^true\/(.*)/, rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, // We have to close these tags to support XHTML (#13200) wrapMap = { // Support: IE9 option: [ 1, "<select multiple='multiple'>", "</select>" ], thead: [ 1, "<table>", "</table>" ], col: [ 2, "<table><colgroup>", "</colgroup></table>" ], tr: [ 2, "<table><tbody>", "</tbody></table>" ], td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], _default: [ 0, "", "" ] }; // Support: IE9 wrapMap.optgroup = wrapMap.option; wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; // Support: 1.x compatibility // Manipulating tables requires a tbody function manipulationTarget( elem, content ) { return jQuery.nodeName( elem, "table" ) && jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? elem.getElementsByTagName("tbody")[0] || elem.appendChild( elem.ownerDocument.createElement("tbody") ) : elem; } // Replace/restore the type attribute of script elements for safe DOM manipulation function disableScript( elem ) { elem.type = (elem.getAttribute("type") !== null) + "/" + 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 i = 0, l = elems.length; for ( ; i < l; i++ ) { data_priv.set( elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) ); } } function cloneCopyEvent( src, dest ) { var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; if ( dest.nodeType !== 1 ) { return; } // 1. Copy private data: events, handlers, etc. if ( data_priv.hasData( src ) ) { pdataOld = data_priv.access( src ); pdataCur = data_priv.set( dest, pdataOld ); events = pdataOld.events; if ( events ) { delete pdataCur.handle; pdataCur.events = {}; for ( type in events ) { for ( i = 0, l = events[ type ].length; i < l; i++ ) { jQuery.event.add( dest, type, events[ type ][ i ] ); } } } } // 2. Copy user data if ( data_user.hasData( src ) ) { udataOld = data_user.access( src ); udataCur = jQuery.extend( {}, udataOld ); data_user.set( dest, udataCur ); } } function getAll( context, tag ) { var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : []; return tag === undefined || tag && jQuery.nodeName( context, tag ) ? jQuery.merge( [ context ], ret ) : ret; } // Fix IE bugs, see support tests function fixInput( src, dest ) { var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button. if ( nodeName === "input" && rcheckableType.test( src.type ) ) { dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options } else if ( nodeName === "input" || nodeName === "textarea" ) { dest.defaultValue = src.defaultValue; } } jQuery.extend({ clone: function( elem, dataAndEvents, deepDataAndEvents ) { var i, l, srcElements, destElements, clone = elem.cloneNode( true ), inPage = jQuery.contains( elem.ownerDocument, elem ); // Fix IE cloning issues if ( !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 ); for ( i = 0, l = srcElements.length; i < l; i++ ) { fixInput( srcElements[ i ], 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, l = srcElements.length; i < l; i++ ) { cloneCopyEvent( srcElements[ i ], destElements[ i ] ); } } else { cloneCopyEvent( elem, clone ); } } // Preserve script evaluation history destElements = getAll( clone, "script" ); if ( destElements.length > 0 ) { setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); } // Return the cloned set return clone; }, buildFragment: function( elems, context, scripts, selection ) { var elem, tmp, tag, wrap, contains, j, fragment = context.createDocumentFragment(), nodes = [], i = 0, l = elems.length; for ( ; i < l; i++ ) { elem = elems[ i ]; if ( elem || elem === 0 ) { // Add nodes directly if ( jQuery.type( elem ) === "object" ) { // Support: QtWebKit, PhantomJS // push.apply(_, arraylike) throws on ancient WebKit 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 || fragment.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></$2>" ) + wrap[ 2 ]; // Descend through wrappers to the right content j = wrap[ 0 ]; while ( j-- ) { tmp = tmp.lastChild; } // Support: QtWebKit, PhantomJS // push.apply(_, arraylike) throws on ancient WebKit jQuery.merge( nodes, tmp.childNodes ); // Remember the top-level container tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392) tmp.textContent = ""; } } } // Remove wrapper from fragment fragment.textContent = ""; 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( fragment.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 ); } } } } return fragment; }, cleanData: function( elems ) { var data, elem, type, key, special = jQuery.event.special, i = 0; for ( ; (elem = elems[ i ]) !== undefined; i++ ) { if ( jQuery.acceptData( elem ) ) { key = elem[ data_priv.expando ]; if ( key && (data = data_priv.cache[ key ]) ) { 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 ); } } } if ( data_priv.cache[ key ] ) { // Discard any remaining `private` data delete data_priv.cache[ key ]; } } } // Discard any remaining `user` data delete data_user.cache[ elem[ data_user.expando ] ]; } } }); jQuery.fn.extend({ text: function( value ) { return access( this, function( value ) { return value === undefined ? jQuery.text( this ) : this.empty().each(function() { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { this.textContent = value; } }); }, null, value, arguments.length ); }, append: function() { return this.domManip( arguments, function( elem ) { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { var target = manipulationTarget( this, elem ); target.appendChild( elem ); } }); }, prepend: function() { return this.domManip( arguments, function( elem ) { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { var target = manipulationTarget( this, elem ); target.insertBefore( elem, target.firstChild ); } }); }, before: function() { return this.domManip( arguments, function( elem ) { if ( this.parentNode ) { this.parentNode.insertBefore( elem, this ); } }); }, after: function() { return this.domManip( arguments, function( elem ) { if ( this.parentNode ) { this.parentNode.insertBefore( elem, this.nextSibling ); } }); }, remove: function( selector, keepData /* Internal Use Only */ ) { var elem, elems = selector ? jQuery.filter( selector, this ) : this, i = 0; for ( ; (elem = elems[i]) != null; i++ ) { 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++ ) { if ( elem.nodeType === 1 ) { // Prevent memory leaks jQuery.cleanData( getAll( elem, false ) ); // Remove any remaining nodes elem.textContent = ""; } } 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 access( this, function( value ) { var elem = this[ 0 ] || {}, i = 0, l = this.length; if ( value === undefined && elem.nodeType === 1 ) { return elem.innerHTML; } // See if we can take a shortcut and just use innerHTML if ( typeof value === "string" && !rnoInnerhtml.test( value ) && !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { value = value.replace( rxhtmlTag, "<$1></$2>" ); try { for ( ; i < l; i++ ) { elem = this[ i ] || {}; // Remove element nodes and prevent memory leaks 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() { var arg = arguments[ 0 ]; // Make the changes, replacing each context element with the new content this.domManip( arguments, function( elem ) { arg = this.parentNode; jQuery.cleanData( getAll( this ) ); if ( arg ) { arg.replaceChild( elem, this ); } }); // Force removal if there was no new content (e.g., from empty arguments) return arg && (arg.length || arg.nodeType) ? this : this.remove(); }, detach: function( selector ) { return this.remove( selector, true ); }, domManip: function( args, callback ) { // Flatten any nested arrays args = concat.apply( [], args ); var fragment, first, scripts, hasScripts, node, doc, 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" && !support.checkClone && rchecked.test( value ) ) ) { return this.each(function( index ) { var self = set.eq( index ); if ( isFunction ) { args[ 0 ] = value.call( this, index, self.html() ); } self.domManip( args, callback ); }); } if ( l ) { fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); first = fragment.firstChild; if ( fragment.childNodes.length === 1 ) { fragment = first; } if ( first ) { 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 ) { // Support: QtWebKit // jQuery.merge because push.apply(_, arraylike) throws jQuery.merge( scripts, getAll( node, "script" ) ); } } callback.call( 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 || "" ) && !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { if ( node.src ) { // Optional AJAX dependency, but won't run scripts if not present if ( jQuery._evalUrl ) { jQuery._evalUrl( node.src ); } } else { jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); } } } } } } return this; } }); jQuery.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function( name, original ) { jQuery.fn[ name ] = function( selector ) { var elems, ret = [], insert = jQuery( selector ), last = insert.length - 1, i = 0; for ( ; i <= last; i++ ) { elems = i === last ? this : this.clone( true ); jQuery( insert[ i ] )[ original ]( elems ); // Support: QtWebKit // .get() because push.apply(_, arraylike) throws push.apply( ret, elems.get() ); } return this.pushStack( ret ); }; }); var iframe, elemdisplay = {}; /** * Retrieve the actual display of a element * @param {String} name nodeName of the element * @param {Object} doc Document object */ // Called only from within defaultDisplay function actualDisplay( name, doc ) { var style, elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), // getDefaultComputedStyle might be reliably used only on attached element display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? // Use of this method is a temporary fix (more like optimization) until something better comes along, // since it was removed from specification and supported only in FF style.display : jQuery.css( elem[ 0 ], "display" ); // We don't have any data stored on the element, // so use "detach" method as fast way to get rid of the element elem.detach(); return display; } /** * Try to determine the default display value of an element * @param {String} nodeName */ function 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( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement ); // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse doc = iframe[ 0 ].contentDocument; // Support: IE doc.write(); doc.close(); display = actualDisplay( nodeName, doc ); iframe.detach(); } // Store the correct default display elemdisplay[ nodeName ] = display; } return display; } var rmargin = (/^margin/); var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); var getStyles = function( elem ) { // Support: IE<=11+, Firefox<=30+ (#15098, #14150) // IE throws on elements created in popups // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" if ( elem.ownerDocument.defaultView.opener ) { return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); } return window.getComputedStyle( elem, null ); }; function curCSS( elem, name, computed ) { var width, minWidth, maxWidth, ret, style = elem.style; computed = computed || getStyles( elem ); // Support: IE9 // getPropertyValue is only needed for .css('filter') (#12537) if ( computed ) { ret = computed.getPropertyValue( name ) || computed[ name ]; } if ( computed ) { if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { ret = jQuery.style( elem, name ); } // Support: iOS < 6 // A tribute to the "awesome hack by Dean Edwards" // iOS < 6 (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 !== undefined ? // Support: IE // IE returns zIndex value as an integer. ret + "" : ret; } function addGetHookIf( conditionFn, hookFn ) { // Define the hook, we'll check on the first run if it's really needed. return { get: function() { if ( conditionFn() ) { // Hook not needed (or it's not possible to use it due // to missing dependency), remove it. delete this.get; return; } // Hook needed; redefine it so that the support test is not executed again. return (this.get = hookFn).apply( this, arguments ); } }; } (function() { var pixelPositionVal, boxSizingReliableVal, docElem = document.documentElement, container = document.createElement( "div" ), div = document.createElement( "div" ); if ( !div.style ) { return; } // Support: IE9-11+ // Style of cloned element affects source element cloned (#8908) div.style.backgroundClip = "content-box"; div.cloneNode( true ).style.backgroundClip = ""; support.clearCloneStyle = div.style.backgroundClip === "content-box"; container.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;" + "position:absolute"; container.appendChild( div ); // Executing both pixelPosition & boxSizingReliable tests require only one layout // so they're executed at the same time to save the second computation. function computePixelPositionAndBoxSizingReliable() { div.style.cssText = // Support: Firefox<29, Android 2.3 // Vendor-prefix box-sizing "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" + "box-sizing:border-box;display:block;margin-top:1%;top:1%;" + "border:1px;padding:1px;width:4px;position:absolute"; div.innerHTML = ""; docElem.appendChild( container ); var divStyle = window.getComputedStyle( div, null ); pixelPositionVal = divStyle.top !== "1%"; boxSizingReliableVal = divStyle.width === "4px"; docElem.removeChild( container ); } // Support: node.js jsdom // Don't assume that getComputedStyle is a property of the global object if ( window.getComputedStyle ) { jQuery.extend( support, { pixelPosition: function() { // This test is executed only once but we still do memoizing // since we can use the boxSizingReliable pre-computing. // No need to check if the test was already performed, though. computePixelPositionAndBoxSizingReliable(); return pixelPositionVal; }, boxSizingReliable: function() { if ( boxSizingReliableVal == null ) { computePixelPositionAndBoxSizingReliable(); } return boxSizingReliableVal; }, reliableMarginRight: function() { // Support: Android 2.3 // Check if div with explicit width and no margin-right incorrectly // gets computed margin-right based on width of container. (#3333) // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right // This support function is only executed once so no memoizing is needed. var ret, marginDiv = div.appendChild( document.createElement( "div" ) ); // Reset CSS: box-sizing; display; margin; border; padding marginDiv.style.cssText = div.style.cssText = // Support: Firefox<29, Android 2.3 // Vendor-prefix box-sizing "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + "box-sizing:content-box;display:block;margin:0;border:0;padding:0"; marginDiv.style.marginRight = marginDiv.style.width = "0"; div.style.width = "1px"; docElem.appendChild( container ); ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight ); docElem.removeChild( container ); div.removeChild( marginDiv ); return ret; } }); } })(); // A method for quickly swapping in/out CSS properties to get correct calculations. jQuery.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; }; var // 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]).+)/, rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ), rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ), cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssNormalTransform = { letterSpacing: "0", fontWeight: "400" }, 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[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 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.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; } // Check for style in case a browser which returns unreliable values // for getComputedStyle silently falls back to the reliable elem.style valueIsBorderBox = isBorderBox && ( 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"; } 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 ] = data_priv.get( 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 ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) ); } } else { hidden = isHidden( elem ); if ( display !== "none" || !hidden ) { data_priv.set( 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.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; } } } }, // Don't automatically add "px" to these possibly-unitless properties cssNumber: { "columnCount": true, "fillOpacity": true, "flexGrow": true, "flexShrink": true, "fontWeight": true, "lineHeight": true, "opacity": true, "order": 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: { "float": "cssFloat" }, // 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, then unprefixed version hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; // Check if we're setting a value if ( value !== undefined ) { type = typeof value; // Convert "+=" 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 null and NaN values aren't set (#7116) if ( value == null || value !== value ) { return; } // If a number, add 'px' to the (except for certain CSS properties) if ( type === "number" && !jQuery.cssNumber[ origName ] ) { value += "px"; } // Support: IE9-11+ // background-* props affect original clone's values if ( !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 ) { style[ name ] = value; } } 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 val, num, 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 ) ); // Try prefixed name followed by the unprefixed name 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 ]; } // Make numeric 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; } }); jQuery.each([ "height", "width" ], function( i, name ) { jQuery.cssHooks[ name ] = { get: function( elem, computed, extra ) { if ( computed ) { // Certain elements can have dimension info if we invisibly show them // but it must have a current display style that would benefit return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ? jQuery.swap( elem, cssShow, function() { return getWidthOrHeight( elem, name, extra ); }) : getWidthOrHeight( elem, name, extra ); } }, set: function( elem, value, extra ) { var styles = extra && getStyles( elem ); return setPositiveNumber( elem, value, extra ? augmentWidthOrHeight( elem, name, extra, jQuery.css( elem, "boxSizing", false, styles ) === "border-box", styles ) : 0 ); } }; }); // Support: Android 2.3 jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight, function( elem, computed ) { if ( computed ) { return jQuery.swap( elem, { "display": "inline-block" }, curCSS, [ elem, "marginRight" ] ); } } ); // These hooks are used by animate to expand properties jQuery.each({ margin: "", padding: "", border: "Width" }, function( prefix, suffix ) { jQuery.cssHooks[ prefix + suffix ] = { expand: function( value ) { var i = 0, expanded = {}, // Assumes a single number if not a string parts = typeof value === "string" ? value.split(" ") : [ value ]; for ( ; i < 4; i++ ) { expanded[ prefix + cssExpand[ i ] + suffix ] = parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; } return expanded; } }; if ( !rmargin.test( prefix ) ) { jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; } }); jQuery.fn.extend({ css: function( name, value ) { return access( this, function( elem, name, value ) { var styles, len, 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 ) { if ( typeof state === "boolean" ) { return state ? this.show() : this.hide(); } return this.each(function() { if ( isHidden( this ) ) { jQuery( this ).show(); } else { jQuery( this ).hide(); } }); } }); function Tween( elem, options, prop, end, easing ) { return new Tween.prototype.init( elem, options, prop, end, easing ); } jQuery.Tween = Tween; Tween.prototype = { constructor: Tween, init: function( elem, options, prop, end, easing, unit ) { this.elem = elem; this.prop = prop; this.easing = easing || "swing"; this.options = options; this.start = this.now = this.cur(); this.end = end; this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); }, cur: function() { var hooks = Tween.propHooks[ this.prop ]; return hooks && hooks.get ? hooks.get( this ) : Tween.propHooks._default.get( this ); }, run: function( percent ) { var eased, hooks = Tween.propHooks[ this.prop ]; if ( this.options.duration ) { this.pos = eased = jQuery.easing[ this.easing ]( percent, this.options.duration * percent, 0, 1, this.options.duration ); } else { this.pos = eased = percent; } this.now = ( this.end - this.start ) * eased + this.start; if ( this.options.step ) { this.options.step.call( this.elem, this.now, this ); } if ( hooks && hooks.set ) { hooks.set( this ); } else { Tween.propHooks._default.set( this ); } return this; } }; Tween.prototype.init.prototype = Tween.prototype; Tween.propHooks = { _default: { get: function( tween ) { var result; if ( tween.elem[ tween.prop ] != null && (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { return tween.elem[ tween.prop ]; } // Passing an empty string as a 3rd parameter to .css will automatically // attempt a parseFloat and fallback to a string if the parse fails. // Simple values such as "10px" are parsed to Float; // complex values such as "rotate(1rad)" are returned as-is. result = jQuery.css( tween.elem, tween.prop, "" ); // Empty strings, null, undefined and "auto" are converted to 0. return !result || result === "auto" ? 0 : result; }, set: function( tween ) { // Use step hook for back compat. // Use cssHook if its there. // Use .style if available and use plain properties where available. if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { tween.elem[ tween.prop ] = tween.now; } } } }; // Support: IE9 // Panic based approach to setting things on disconnected nodes Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { set: function( tween ) { if ( tween.elem.nodeType && tween.elem.parentNode ) { tween.elem[ tween.prop ] = tween.now; } } }; jQuery.easing = { linear: function( p ) { return p; }, swing: function( p ) { return 0.5 - Math.cos( p * Math.PI ) / 2; } }; jQuery.fx = Tween.prototype.init; // Back Compat <1.8 extension point jQuery.fx.step = {}; var fxNow, timerId, rfxtypes = /^(?:toggle|show|hide)$/, rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ), rrun = /queueHooks$/, animationPrefilters = [ defaultPrefilter ], tweeners = { "*": [ function( prop, value ) { var tween = this.createTween( prop, value ), target = tween.cur(), parts = rfxnum.exec( value ), unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), // Starting value computation is required for potential unit mismatches start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) && rfxnum.exec( jQuery.css( tween.elem, prop ) ), scale = 1, maxIterations = 20; if ( start && start[ 3 ] !== unit ) { // Trust units reported by jQuery.css unit = unit || start[ 3 ]; // Make sure we update the tween properties later on parts = parts || []; // Iteratively approximate from a nonzero starting point start = +target || 1; do { // If previous iteration zeroed out, double until we get *something*. // Use string for doubling so we don't accidentally see scale as unchanged below scale = scale || ".5"; // Adjust and apply start = start / scale; jQuery.style( tween.elem, prop, start + unit ); // Update scale, tolerating zero or NaN from tween.cur(), // break the loop if scale is unchanged or perfect, or if we've just had enough } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); } // Update tween properties if ( parts ) { start = tween.start = +start || +target || 0; tween.unit = unit; // If a +=/-= token was provided, we're doing a relative animation tween.end = parts[ 1 ] ? start + ( parts[ 1 ] + 1 ) * parts[ 2 ] : +parts[ 2 ]; } return tween; } ] }; // Animations created synchronously will run synchronously function createFxNow() { setTimeout(function() { fxNow = undefined; }); return ( fxNow = jQuery.now() ); } // Generate parameters to create a standard animation function genFx( type, includeWidth ) { var which, i = 0, attrs = { height: type }; // If we include width, step value is 1 to do all cssExpand values, // otherwise step value is 2 to skip over Left and Right includeWidth = includeWidth ? 1 : 0; for ( ; i < 4 ; i += 2 - includeWidth ) { which = cssExpand[ i ]; attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; } if ( includeWidth ) { attrs.opacity = attrs.width = type; } return attrs; } function createTween( value, prop, animation ) { var tween, collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), index = 0, length = collection.length; for ( ; index < length; index++ ) { if ( (tween = collection[ index ].call( animation, prop, value )) ) { // We're done with this property return tween; } } } function defaultPrefilter( elem, props, opts ) { /* jshint validthis: true */ var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay, anim = this, orig = {}, style = elem.style, hidden = elem.nodeType && isHidden( elem ), dataShow = data_priv.get( elem, "fxshow" ); // Handle queue: false promises if ( !opts.queue ) { hooks = jQuery._queueHooks( elem, "fx" ); if ( hooks.unqueued == null ) { hooks.unqueued = 0; oldfire = hooks.empty.fire; hooks.empty.fire = function() { if ( !hooks.unqueued ) { oldfire(); } }; } hooks.unqueued++; anim.always(function() { // Ensure the complete handler is called before this completes anim.always(function() { hooks.unqueued--; if ( !jQuery.queue( elem, "fx" ).length ) { hooks.empty.fire(); } }); }); } // Height/width overflow pass if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { // Make sure that nothing sneaks out // Record all 3 overflow attributes because IE9-10 do not // change the overflow attribute when overflowX and // overflowY are set to the same value opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; // Set display property to inline-block for height/width // animations on inline elements that are having width/height animated display = jQuery.css( elem, "display" ); // Test default display if display is currently "none" checkDisplay = display === "none" ? data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display; if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) { style.display = "inline-block"; } } if ( opts.overflow ) { style.overflow = "hidden"; anim.always(function() { style.overflow = opts.overflow[ 0 ]; style.overflowX = opts.overflow[ 1 ]; style.overflowY = opts.overflow[ 2 ]; }); } // show/hide pass for ( prop in props ) { value = props[ prop ]; if ( rfxtypes.exec( value ) ) { delete props[ prop ]; toggle = toggle || value === "toggle"; if ( value === ( hidden ? "hide" : "show" ) ) { // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { hidden = true; } else { continue; } } orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); // Any non-fx value stops us from restoring the original display value } else { display = undefined; } } if ( !jQuery.isEmptyObject( orig ) ) { if ( dataShow ) { if ( "hidden" in dataShow ) { hidden = dataShow.hidden; } } else { dataShow = data_priv.access( elem, "fxshow", {} ); } // Store state if its toggle - enables .stop().toggle() to "reverse" if ( toggle ) { dataShow.hidden = !hidden; } if ( hidden ) { jQuery( elem ).show(); } else { anim.done(function() { jQuery( elem ).hide(); }); } anim.done(function() { var prop; data_priv.remove( elem, "fxshow" ); for ( prop in orig ) { jQuery.style( elem, prop, orig[ prop ] ); } }); for ( prop in orig ) { tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); if ( !( prop in dataShow ) ) { dataShow[ prop ] = tween.start; if ( hidden ) { tween.end = tween.start; tween.start = prop === "width" || prop === "height" ? 1 : 0; } } } // If this is a noop like .hide().hide(), restore an overwritten display value } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) { style.display = display; } } function propFilter( props, specialEasing ) { var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass for ( index in props ) { name = jQuery.camelCase( index ); easing = specialEasing[ name ]; value = props[ index ]; if ( jQuery.isArray( value ) ) { easing = value[ 1 ]; value = props[ index ] = value[ 0 ]; } if ( index !== name ) { props[ name ] = value; delete props[ index ]; } hooks = jQuery.cssHooks[ name ]; if ( hooks && "expand" in hooks ) { value = hooks.expand( value ); delete props[ name ]; // Not quite $.extend, this won't overwrite existing keys. // Reusing 'index' because we have the correct "name" for ( index in value ) { if ( !( index in props ) ) { props[ index ] = value[ index ]; specialEasing[ index ] = easing; } } } else { specialEasing[ name ] = easing; } } } function Animation( elem, properties, options ) { var result, stopped, index = 0, length = animationPrefilters.length, deferred = jQuery.Deferred().always( function() { // Don't match elem in the :animated selector delete tick.elem; }), tick = function() { if ( stopped ) { return false; } var currentTime = fxNow || createFxNow(), remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), // Support: Android 2.3 // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) temp = remaining / animation.duration || 0, percent = 1 - temp, index = 0, length = animation.tweens.length; for ( ; index < length ; index++ ) { animation.tweens[ index ].run( percent ); } deferred.notifyWith( elem, [ animation, percent, remaining ]); if ( percent < 1 && length ) { return remaining; } else { deferred.resolveWith( elem, [ animation ] ); return false; } }, animation = deferred.promise({ elem: elem, props: jQuery.extend( {}, properties ), opts: jQuery.extend( true, { specialEasing: {} }, options ), originalProperties: properties, originalOptions: options, startTime: fxNow || createFxNow(), duration: options.duration, tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, stop: function( gotoEnd ) { var index = 0, // If we are going to the end, we want to run all the tweens // otherwise we skip this part length = gotoEnd ? animation.tweens.length : 0; if ( stopped ) { return this; } stopped = true; for ( ; index < length ; index++ ) { animation.tweens[ index ].run( 1 ); } // Resolve when we played the last frame; otherwise, reject if ( gotoEnd ) { deferred.resolveWith( elem, [ animation, gotoEnd ] ); } else { deferred.rejectWith( elem, [ animation, gotoEnd ] ); } return this; } }), props = animation.props; propFilter( props, animation.opts.specialEasing ); for ( ; index < length ; index++ ) { result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); if ( result ) { return result; } } jQuery.map( props, createTween, animation ); if ( jQuery.isFunction( animation.opts.start ) ) { animation.opts.start.call( elem, animation ); } jQuery.fx.timer( jQuery.extend( tick, { elem: elem, anim: animation, queue: animation.opts.queue }) ); // attach callbacks from options return animation.progress( animation.opts.progress ) .done( animation.opts.done, animation.opts.complete ) .fail( animation.opts.fail ) .always( animation.opts.always ); } jQuery.Animation = jQuery.extend( Animation, { tweener: function( props, callback ) { if ( jQuery.isFunction( props ) ) { callback = props; props = [ "*" ]; } else { props = props.split(" "); } var prop, index = 0, length = props.length; for ( ; index < length ; index++ ) { prop = props[ index ]; tweeners[ prop ] = tweeners[ prop ] || []; tweeners[ prop ].unshift( callback ); } }, prefilter: function( callback, prepend ) { if ( prepend ) { animationPrefilters.unshift( callback ); } else { animationPrefilters.push( callback ); } } }); jQuery.speed = function( speed, easing, fn ) { var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { complete: fn || !fn && easing || jQuery.isFunction( speed ) && speed, duration: speed, easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing }; opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; // Normalize opt.queue - true/undefined/null -> "fx" if ( opt.queue == null || opt.queue === true ) { opt.queue = "fx"; } // Queueing opt.old = opt.complete; opt.complete = function() { if ( jQuery.isFunction( opt.old ) ) { opt.old.call( this ); } if ( opt.queue ) { jQuery.dequeue( this, opt.queue ); } }; return opt; }; jQuery.fn.extend({ fadeTo: function( speed, to, easing, callback ) { // Show any hidden elements after setting opacity to 0 return this.filter( isHidden ).css( "opacity", 0 ).show() // Animate to the value specified .end().animate({ opacity: to }, speed, easing, callback ); }, animate: function( prop, speed, easing, callback ) { var empty = jQuery.isEmptyObject( prop ), optall = jQuery.speed( speed, easing, callback ), doAnimation = function() { // Operate on a copy of prop so per-property easing won't be lost var anim = Animation( this, jQuery.extend( {}, prop ), optall ); // Empty animations, or finishing resolves immediately if ( empty || data_priv.get( this, "finish" ) ) { anim.stop( true ); } }; doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : this.queue( optall.queue, doAnimation ); }, stop: function( type, clearQueue, gotoEnd ) { var stopQueue = function( hooks ) { var stop = hooks.stop; delete hooks.stop; stop( gotoEnd ); }; if ( typeof type !== "string" ) { gotoEnd = clearQueue; clearQueue = type; type = undefined; } if ( clearQueue && type !== false ) { this.queue( type || "fx", [] ); } return this.each(function() { var dequeue = true, index = type != null && type + "queueHooks", timers = jQuery.timers, data = data_priv.get( this ); if ( index ) { if ( data[ index ] && data[ index ].stop ) { stopQueue( data[ index ] ); } } else { for ( index in data ) { if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { stopQueue( data[ index ] ); } } } for ( index = timers.length; index--; ) { if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { timers[ index ].anim.stop( gotoEnd ); dequeue = false; timers.splice( index, 1 ); } } // Start the next in the queue if the last step wasn't forced. // Timers currently will call their complete callbacks, which // will dequeue but only if they were gotoEnd. if ( dequeue || !gotoEnd ) { jQuery.dequeue( this, type ); } }); }, finish: function( type ) { if ( type !== false ) { type = type || "fx"; } return this.each(function() { var index, data = data_priv.get( this ), queue = data[ type + "queue" ], hooks = data[ type + "queueHooks" ], timers = jQuery.timers, length = queue ? queue.length : 0; // Enable finishing flag on private data data.finish = true; // Empty the queue first jQuery.queue( this, type, [] ); if ( hooks && hooks.stop ) { hooks.stop.call( this, true ); } // Look for any active animations, and finish them for ( index = timers.length; index--; ) { if ( timers[ index ].elem === this && timers[ index ].queue === type ) { timers[ index ].anim.stop( true ); timers.splice( index, 1 ); } } // Look for any animations in the old queue and finish them for ( index = 0; index < length; index++ ) { if ( queue[ index ] && queue[ index ].finish ) { queue[ index ].finish.call( this ); } } // Turn off finishing flag delete data.finish; }); } }); jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { var cssFn = jQuery.fn[ name ]; jQuery.fn[ name ] = function( speed, easing, callback ) { return speed == null || typeof speed === "boolean" ? cssFn.apply( this, arguments ) : this.animate( genFx( name, true ), speed, easing, callback ); }; }); // Generate shortcuts for custom animations jQuery.each({ slideDown: genFx("show"), slideUp: genFx("hide"), slideToggle: genFx("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function( name, props ) { jQuery.fn[ name ] = function( speed, easing, callback ) { return this.animate( props, speed, easing, callback ); }; }); jQuery.timers = []; jQuery.fx.tick = function() { var timer, i = 0, timers = jQuery.timers; fxNow = jQuery.now(); for ( ; i < timers.length; i++ ) { timer = timers[ i ]; // Checks the timer has not already been removed if ( !timer() && timers[ i ] === timer ) { timers.splice( i--, 1 ); } } if ( !timers.length ) { jQuery.fx.stop(); } fxNow = undefined; }; jQuery.fx.timer = function( timer ) { jQuery.timers.push( timer ); if ( timer() ) { jQuery.fx.start(); } else { jQuery.timers.pop(); } }; jQuery.fx.interval = 13; jQuery.fx.start = function() { if ( !timerId ) { timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); } }; jQuery.fx.stop = function() { clearInterval( timerId ); timerId = null; }; jQuery.fx.speeds = { slow: 600, fast: 200, // Default speed _default: 400 }; // Based off of the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.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 ); }; }); }; (function() { var input = document.createElement( "input" ), select = document.createElement( "select" ), opt = select.appendChild( document.createElement( "option" ) ); input.type = "checkbox"; // Support: iOS<=5.1, Android<=4.2+ // Default value for a checkbox should be "on" support.checkOn = input.value !== ""; // Support: IE<=11+ // Must access selectedIndex to make default options select support.optSelected = opt.selected; // Support: Android<=2.3 // Options inside disabled selects are incorrectly marked as disabled select.disabled = true; support.optDisabled = !opt.disabled; // Support: IE<=11+ // An input loses its value after becoming a radio input = document.createElement( "input" ); input.value = "t"; input.type = "radio"; support.radioValue = input.value === "t"; })(); var nodeHook, boolHook, attrHandle = jQuery.expr.attrHandle; jQuery.fn.extend({ attr: function( name, value ) { return access( this, jQuery.attr, name, value, arguments.length > 1 ); }, removeAttr: function( name ) { return this.each(function() { jQuery.removeAttr( this, name ); }); } }); jQuery.extend({ attr: function( elem, name, value ) { var hooks, 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 === strundefined ) { return jQuery.prop( elem, name, value ); } // All attributes are lowercase // Grab necessary hook if one is defined if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { name = name.toLowerCase(); hooks = jQuery.attrHooks[ name ] || ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); } if ( value !== undefined ) { if ( value === null ) { jQuery.removeAttr( elem, name ); } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { return ret; } else { elem.setAttribute( name, value + "" ); return value; } } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { return ret; } else { ret = jQuery.find.attr( elem, 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( rnotwhite ); if ( attrNames && elem.nodeType === 1 ) { while ( (name = attrNames[i++]) ) { propName = jQuery.propFix[ name ] || name; // Boolean attributes get special treatment (#10870) if ( jQuery.expr.match.bool.test( name ) ) { // Set corresponding property to false elem[ propName ] = false; } elem.removeAttribute( name ); } } }, attrHooks: { type: { set: function( elem, value ) { if ( !support.radioValue && value === "radio" && jQuery.nodeName( elem, "input" ) ) { var val = elem.value; elem.setAttribute( "type", value ); if ( val ) { elem.value = val; } return value; } } } } }); // Hooks for boolean attributes boolHook = { set: function( elem, value, name ) { if ( value === false ) { // Remove boolean attributes when set to false jQuery.removeAttr( elem, name ); } else { elem.setAttribute( name, name ); } return name; } }; jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { var getter = attrHandle[ name ] || jQuery.find.attr; attrHandle[ name ] = function( elem, name, isXML ) { var ret, handle; if ( !isXML ) { // Avoid an infinite loop by temporarily removing this function from the getter handle = attrHandle[ name ]; attrHandle[ name ] = ret; ret = getter( elem, name, isXML ) != null ? name.toLowerCase() : null; attrHandle[ name ] = handle; } return ret; }; }); var rfocusable = /^(?:input|select|textarea|button)$/i; jQuery.fn.extend({ prop: function( name, value ) { return access( this, jQuery.prop, name, value, arguments.length > 1 ); }, removeProp: function( name ) { return this.each(function() { delete this[ jQuery.propFix[ name ] || name ]; }); } }); jQuery.extend({ propFix: { "for": "htmlFor", "class": "className" }, 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 ) { return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? ret : ( elem[ name ] = value ); } else { return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? ret : elem[ name ]; } }, propHooks: { tabIndex: { get: function( elem ) { return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ? elem.tabIndex : -1; } } } }); if ( !support.optSelected ) { jQuery.propHooks.selected = { get: function( elem ) { var parent = elem.parentNode; if ( parent && parent.parentNode ) { parent.parentNode.selectedIndex; } return null; } }; } jQuery.each([ "tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable" ], function() { jQuery.propFix[ this.toLowerCase() ] = this; }); var rclass = /[\t\r\n\f]/g; jQuery.fn.extend({ addClass: function( value ) { var classes, elem, cur, clazz, j, finalValue, proceed = typeof value === "string" && value, i = 0, len = this.length; 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( 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 + " "; } } // only assign if different to avoid unneeded rendering. finalValue = jQuery.trim( cur ); if ( elem.className !== finalValue ) { elem.className = finalValue; } } } } return this; }, removeClass: function( value ) { var classes, elem, cur, clazz, j, finalValue, proceed = arguments.length === 0 || typeof value === "string" && value, i = 0, len = this.length; if ( jQuery.isFunction( value ) ) { return this.each(function( j ) { jQuery( this ).removeClass( value.call( this, j, this.className ) ); }); } if ( proceed ) { classes = ( value || "" ).match( 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 + " ", " " ); } } // Only assign if different to avoid unneeded rendering. finalValue = value ? jQuery.trim( cur ) : ""; if ( elem.className !== finalValue ) { elem.className = finalValue; } } } } return this; }, toggleClass: function( value, stateVal ) { var type = typeof value; if ( typeof stateVal === "boolean" && type === "string" ) { return stateVal ? this.addClass( value ) : this.removeClass( value ); } 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 ), classNames = value.match( rnotwhite ) || []; while ( (className = classNames[ i++ ]) ) { // Check each className given, space separated list if ( self.hasClass( className ) ) { self.removeClass( className ); } else { self.addClass( className ); } } // Toggle whole class name } else if ( type === strundefined || type === "boolean" ) { if ( this.className ) { // store className if set data_priv.set( 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 ? "" : data_priv.get( 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; } }); var rreturn = /\r/g; jQuery.fn.extend({ val: function( value ) { var hooks, ret, 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; if ( this.nodeType !== 1 ) { return; } if ( isFunction ) { val = value.call( this, i, jQuery( this ).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 ) { var val = jQuery.find.attr( elem, "value" ); return val != null ? val : // Support: IE10-11+ // option.text throws exceptions (#14686, #14858) jQuery.trim( jQuery.text( elem ) ); } }, 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 ]; // IE6-9 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 ( 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 optionSet, option, options = elem.options, values = jQuery.makeArray( value ), i = options.length; while ( i-- ) { option = options[ i ]; if ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) { optionSet = true; } } // Force browsers to behave consistently when non-matching value is set if ( !optionSet ) { elem.selectedIndex = -1; } return values; } } } }); // Radios and checkboxes getter/setter jQuery.each([ "radio", "checkbox" ], function() { jQuery.valHooks[ this ] = { set: function( elem, value ) { if ( jQuery.isArray( value ) ) { return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); } } }; if ( !support.checkOn ) { jQuery.valHooks[ this ].get = function( elem ) { return elem.getAttribute("value") === null ? "on" : elem.value; }; } }); // Return jQuery for attributes-only inclusion jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { // Handle event binding jQuery.fn[ name ] = function( data, fn ) { return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; }); jQuery.fn.extend({ hover: function( fnOver, fnOut ) { return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); }, 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 ); } }); var nonce = jQuery.now(); var rquery = (/\?/); // Support: Android 2.3 // Workaround failure to string-cast null input jQuery.parseJSON = function( data ) { return JSON.parse( data + "" ); }; // Cross-browser xml parsing jQuery.parseXML = function( data ) { var xml, tmp; if ( !data || typeof data !== "string" ) { return null; } // Support: IE9 try { tmp = new DOMParser(); xml = tmp.parseFromString( data, "text/xml" ); } catch ( e ) { xml = undefined; } if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { jQuery.error( "Invalid XML: " + data ); } return xml; }; var rhash = /#.*$/, rts = /([?&])_=[^&]*/, rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, // #7653, #8125, #8152: local protocol detection rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, rnoContent = /^(?:GET|HEAD)$/, rprotocol = /^\/\//, rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, /* Prefilters * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) * 2) These are called: * - BEFORE asking for a transport * - AFTER param serialization (s.data is a string if s.processData is true) * 3) key is the dataType * 4) the catchall symbol "*" can be used * 5) execution will start with transport dataType and THEN continue down to "*" if needed */ prefilters = {}, /* Transports bindings * 1) key is the dataType * 2) the catchall symbol "*" can be used * 3) selection will start with transport dataType and THEN go to "*" if needed */ transports = {}, // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression allTypes = "*/".concat( "*" ), // Document location ajaxLocation = window.location.href, // Segment location into parts ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { // dataTypeExpression is optional and defaults to "*" return function( dataTypeExpression, func ) { if ( typeof dataTypeExpression !== "string" ) { func = dataTypeExpression; dataTypeExpression = "*"; } var dataType, i = 0, dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; if ( jQuery.isFunction( func ) ) { // For each dataType in the dataTypeExpression while ( (dataType = dataTypes[i++]) ) { // Prepend if requested if ( dataType[0] === "+" ) { dataType = dataType.slice( 1 ) || "*"; (structure[ dataType ] = structure[ dataType ] || []).unshift( func ); // Otherwise append } else { (structure[ dataType ] = structure[ dataType ] || []).push( func ); } } } }; } // Base inspection function for prefilters and transports function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { var inspected = {}, seekingTransport = ( structure === transports ); function inspect( dataType ) { var selected; inspected[ dataType ] = true; jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) { options.dataTypes.unshift( dataTypeOrTransport ); inspect( dataTypeOrTransport ); return false; } else if ( seekingTransport ) { return !( selected = dataTypeOrTransport ); } }); return selected; } return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); } // A special extend for ajax options // that takes "flat" options (not to be deep extended) // Fixes #9887 function ajaxExtend( target, src ) { var key, deep, flatOptions = jQuery.ajaxSettings.flatOptions || {}; for ( key in src ) { if ( src[ key ] !== undefined ) { ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ]; } } if ( deep ) { jQuery.extend( true, target, deep ); } return target; } /* Handles responses to an ajax request: * - finds the right dataType (mediates between content-type and expected dataType) * - returns the corresponding response */ function ajaxHandleResponses( s, jqXHR, responses ) { var ct, type, finalDataType, firstDataType, contents = s.contents, dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process while ( dataTypes[ 0 ] === "*" ) { dataTypes.shift(); if ( ct === undefined ) { ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); } } // Check if we're dealing with a known content-type if ( ct ) { for ( type in contents ) { if ( contents[ type ] && contents[ type ].test( ct ) ) { dataTypes.unshift( type ); break; } } } // Check to see if we have a response for the expected dataType if ( dataTypes[ 0 ] in responses ) { finalDataType = dataTypes[ 0 ]; } else { // Try convertible dataTypes for ( type in responses ) { if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { finalDataType = type; break; } if ( !firstDataType ) { firstDataType = type; } } // Or just use first one finalDataType = finalDataType || firstDataType; } // If we found a dataType // We add the dataType to the list if needed // and return the corresponding response if ( finalDataType ) { if ( finalDataType !== dataTypes[ 0 ] ) { dataTypes.unshift( finalDataType ); } return responses[ finalDataType ]; } } /* Chain conversions given the request and the original response * Also sets the responseXXX fields on the jqXHR instance */ function ajaxConvert( s, response, jqXHR, isSuccess ) { var conv2, current, conv, tmp, prev, converters = {}, // Work with a copy of dataTypes in case we need to modify it for conversion dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys if ( dataTypes[ 1 ] ) { for ( conv in s.converters ) { converters[ conv.toLowerCase() ] = s.converters[ conv ]; } } current = dataTypes.shift(); // Convert to each sequential dataType while ( current ) { if ( s.responseFields[ current ] ) { jqXHR[ s.responseFields[ current ] ] = response; } // Apply the dataFilter if provided if ( !prev && isSuccess && s.dataFilter ) { response = s.dataFilter( response, s.dataType ); } prev = current; current = dataTypes.shift(); if ( current ) { // There's only work to do if current dataType is non-auto if ( current === "*" ) { current = prev; // Convert response if prev dataType is non-auto and differs from current } else if ( prev !== "*" && prev !== current ) { // Seek a direct converter conv = converters[ prev + " " + current ] || converters[ "* " + current ]; // If none found, seek a pair if ( !conv ) { for ( conv2 in converters ) { // If conv2 outputs current tmp = conv2.split( " " ); if ( tmp[ 1 ] === current ) { // If prev can be converted to accepted input conv = converters[ prev + " " + tmp[ 0 ] ] || converters[ "* " + tmp[ 0 ] ]; if ( conv ) { // Condense equivalence converters if ( conv === true ) { conv = converters[ conv2 ]; // Otherwise, insert the intermediate dataType } else if ( converters[ conv2 ] !== true ) { current = tmp[ 0 ]; dataTypes.unshift( tmp[ 1 ] ); } break; } } } } // Apply converter (if not an equivalence) if ( conv !== true ) { // Unless errors are allowed to bubble, catch and return them if ( conv && s[ "throws" ] ) { response = conv( response ); } else { try { response = conv( response ); } catch ( e ) { return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; } } } } } } return { state: "success", data: response }; } jQuery.extend({ // Counter for holding the number of active queries active: 0, // Last-Modified header cache for next request lastModified: {}, etag: {}, ajaxSettings: { url: ajaxLocation, type: "GET", isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), global: true, processData: true, async: true, contentType: "application/x-www-form-urlencoded; charset=UTF-8", /* timeout: 0, data: null, dataType: null, username: null, password: null, cache: null, throws: false, traditional: false, headers: {}, */ accepts: { "*": allTypes, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /xml/, html: /html/, json: /json/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, // Data converters // Keys separate source (or catchall "*") and destination types with a single space converters: { // Convert anything to text "* text": String, // Text to html (true = no transformation) "text html": true, // Evaluate text as a json expression "text json": jQuery.parseJSON, // Parse text as xml "text xml": jQuery.parseXML }, // For options that shouldn't be deep extended: // you can add your own custom options here if // and when you create one that shouldn't be // deep extended (see ajaxExtend) flatOptions: { url: true, context: true } }, // Creates a full fledged settings object into target // with both ajaxSettings and settings fields. // If target is omitted, writes into ajaxSettings. ajaxSetup: function( target, settings ) { return settings ? // Building a settings object ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : // Extending ajaxSettings ajaxExtend( jQuery.ajaxSettings, target ); }, ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), ajaxTransport: addToPrefiltersOrTransports( transports ), // Main method ajax: function( url, options ) { // If url is an object, simulate pre-1.5 signature if ( typeof url === "object" ) { options = url; url = undefined; } // Force options to be an object options = options || {}; var transport, // URL without anti-cache param cacheURL, // Response headers responseHeadersString, responseHeaders, // timeout handle timeoutTimer, // Cross-domain detection vars parts, // To know if global events are to be dispatched fireGlobals, // Loop variable i, // Create the final options object s = jQuery.ajaxSetup( {}, options ), // Callbacks context callbackContext = s.context || s, // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? jQuery( callbackContext ) : jQuery.event, // Deferreds deferred = jQuery.Deferred(), completeDeferred = jQuery.Callbacks("once memory"), // Status-dependent callbacks statusCode = s.statusCode || {}, // Headers (they are sent all at once) requestHeaders = {}, requestHeadersNames = {}, // The jqXHR state state = 0, // Default abort message strAbort = "canceled", // Fake xhr jqXHR = { readyState: 0, // Builds headers hashtable if needed getResponseHeader: function( key ) { var match; if ( state === 2 ) { if ( !responseHeaders ) { responseHeaders = {}; while ( (match = rheaders.exec( responseHeadersString )) ) { responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; } } match = responseHeaders[ key.toLowerCase() ]; } return match == null ? null : match; }, // Raw string getAllResponseHeaders: function() { return state === 2 ? responseHeadersString : null; }, // Caches the header setRequestHeader: function( name, value ) { var lname = name.toLowerCase(); if ( !state ) { name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; requestHeaders[ name ] = value; } return this; }, // Overrides response content-type header overrideMimeType: function( type ) { if ( !state ) { s.mimeType = type; } return this; }, // Status-dependent callbacks statusCode: function( map ) { var code; if ( map ) { if ( state < 2 ) { for ( code in map ) { // Lazy-add the new callback in a way that preserves old ones statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; } } else { // Execute the appropriate callbacks jqXHR.always( map[ jqXHR.status ] ); } } return this; }, // Cancel the request abort: function( statusText ) { var finalText = statusText || strAbort; if ( transport ) { transport.abort( finalText ); } done( 0, finalText ); return this; } }; // Attach deferreds deferred.promise( jqXHR ).complete = completeDeferred.add; jqXHR.success = jqXHR.done; jqXHR.error = jqXHR.fail; // Remove hash character (#7531: and string promotion) // Add protocol if not provided (prefilters might expect it) // Handle falsy url in the settings object (#10093: consistency with old signature) // We also use the url parameter if available s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ) .replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); // Alias method option to type as per ticket #12004 s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ]; // A cross-domain request is in order when we have a protocol:host:port mismatch if ( s.crossDomain == null ) { parts = rurl.exec( s.url.toLowerCase() ); s.crossDomain = !!( parts && ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] || ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !== ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) ) ); } // Convert data if not already a string if ( s.data && s.processData && typeof s.data !== "string" ) { s.data = jQuery.param( s.data, s.traditional ); } // Apply prefilters inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); // If request was aborted inside a prefilter, stop there if ( state === 2 ) { return jqXHR; } // We can fire global events as of now if asked to // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) fireGlobals = jQuery.event && s.global; // Watch for a new set of requests if ( fireGlobals && jQuery.active++ === 0 ) { jQuery.event.trigger("ajaxStart"); } // Uppercase the type s.type = s.type.toUpperCase(); // Determine if request has content s.hasContent = !rnoContent.test( s.type ); // Save the URL in case we're toying with the If-Modified-Since // and/or If-None-Match header later on cacheURL = s.url; // More options handling for requests with no content if ( !s.hasContent ) { // If data is available, append data to url if ( s.data ) { cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data ); // #9682: remove data so that it's not used in an eventual retry delete s.data; } // Add anti-cache in url if needed if ( s.cache === false ) { s.url = rts.test( cacheURL ) ? // If there is already a '_' parameter, set its value cacheURL.replace( rts, "$1_=" + nonce++ ) : // Otherwise add one to the end cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; } } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { if ( jQuery.lastModified[ cacheURL ] ) { jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); } if ( jQuery.etag[ cacheURL ] ) { jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); } } // Set the correct header, if data is being sent if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { jqXHR.setRequestHeader( "Content-Type", s.contentType ); } // Set the Accepts header for the server, depending on the dataType jqXHR.setRequestHeader( "Accept", s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : s.accepts[ "*" ] ); // Check for headers option for ( i in s.headers ) { jqXHR.setRequestHeader( i, s.headers[ i ] ); } // Allow custom headers/mimetypes and early abort if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { // Abort if not done already and return return jqXHR.abort(); } // Aborting is no longer a cancellation strAbort = "abort"; // Install callbacks on deferreds for ( i in { success: 1, error: 1, complete: 1 } ) { jqXHR[ i ]( s[ i ] ); } // Get transport transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); // If no transport, we auto-abort if ( !transport ) { done( -1, "No Transport" ); } else { jqXHR.readyState = 1; // Send global event if ( fireGlobals ) { globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); } // Timeout if ( s.async && s.timeout > 0 ) { timeoutTimer = setTimeout(function() { jqXHR.abort("timeout"); }, s.timeout ); } try { state = 1; transport.send( requestHeaders, done ); } catch ( e ) { // Propagate exception as error if not done if ( state < 2 ) { done( -1, e ); // Simply rethrow otherwise } else { throw e; } } } // Callback for when everything is done function done( status, nativeStatusText, responses, headers ) { var isSuccess, success, error, response, modified, statusText = nativeStatusText; // Called once if ( state === 2 ) { return; } // State is "done" now state = 2; // Clear timeout if it exists if ( timeoutTimer ) { clearTimeout( timeoutTimer ); } // Dereference transport for early garbage collection // (no matter how long the jqXHR object will be used) transport = undefined; // Cache response headers responseHeadersString = headers || ""; // Set readyState jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful isSuccess = status >= 200 && status < 300 || status === 304; // Get response data if ( responses ) { response = ajaxHandleResponses( s, jqXHR, responses ); } // Convert no matter what (that way responseXXX fields are always set) response = ajaxConvert( s, response, jqXHR, isSuccess ); // If successful, handle type chaining if ( isSuccess ) { // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { modified = jqXHR.getResponseHeader("Last-Modified"); if ( modified ) { jQuery.lastModified[ cacheURL ] = modified; } modified = jqXHR.getResponseHeader("etag"); if ( modified ) { jQuery.etag[ cacheURL ] = modified; } } // if no content if ( status === 204 || s.type === "HEAD" ) { statusText = "nocontent"; // if not modified } else if ( status === 304 ) { statusText = "notmodified"; // If we have data, let's convert it } else { statusText = response.state; success = response.data; error = response.error; isSuccess = !error; } } else { // Extract error from statusText and normalize for non-aborts error = statusText; if ( status || !statusText ) { statusText = "error"; if ( status < 0 ) { status = 0; } } } // Set data for the fake xhr object jqXHR.status = status; jqXHR.statusText = ( nativeStatusText || statusText ) + ""; // Success/Error if ( isSuccess ) { deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); } else { deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); } // Status-dependent callbacks jqXHR.statusCode( statusCode ); statusCode = undefined; if ( fireGlobals ) { globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", [ jqXHR, s, isSuccess ? success : error ] ); } // Complete completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); if ( fireGlobals ) { globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); // Handle the global AJAX counter if ( !( --jQuery.active ) ) { jQuery.event.trigger("ajaxStop"); } } } return jqXHR; }, getJSON: function( url, data, callback ) { return jQuery.get( url, data, callback, "json" ); }, getScript: function( url, callback ) { return jQuery.get( url, undefined, callback, "script" ); } }); jQuery.each( [ "get", "post" ], function( i, method ) { jQuery[ method ] = function( url, data, callback, type ) { // Shift arguments if data argument was omitted if ( jQuery.isFunction( data ) ) { type = type || callback; callback = data; data = undefined; } return jQuery.ajax({ url: url, type: method, dataType: type, data: data, success: callback }); }; }); jQuery._evalUrl = function( url ) { return jQuery.ajax({ url: url, type: "GET", dataType: "script", async: false, global: false, "throws": true }); }; jQuery.fn.extend({ wrapAll: function( html ) { var wrap; 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 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.firstElementChild ) { elem = elem.firstElementChild; } 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(); } }); jQuery.expr.filters.hidden = function( elem ) { // Support: Opera <= 12.12 // Opera reports offsetWidths and offsetHeights less than zero on some elements return elem.offsetWidth <= 0 && elem.offsetHeight <= 0; }; jQuery.expr.filters.visible = function( elem ) { return !jQuery.expr.filters.hidden( elem ); }; var r20 = /%20/g, rbracket = /\[\]$/, rCRLF = /\r?\n/g, rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, rsubmittable = /^(?:input|select|textarea|keygen)/i; function buildParams( prefix, obj, traditional, add ) { var name; if ( jQuery.isArray( obj ) ) { // Serialize array item. jQuery.each( obj, function( i, v ) { if ( traditional || rbracket.test( prefix ) ) { // Treat each array item as a scalar. add( prefix, v ); } else { // Item is non-scalar (array or object), encode its numeric index. buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); } }); } else if ( !traditional && jQuery.type( obj ) === "object" ) { // Serialize object item. for ( name in obj ) { buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); } } else { // Serialize scalar item. add( prefix, obj ); } } // Serialize an array of form elements or a set of // key/values into a query string jQuery.param = function( a, traditional ) { var prefix, s = [], add = function( key, value ) { // If value is a function, invoke it and return its value value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); }; // Set traditional to true for jQuery <= 1.3.2 behavior. if ( traditional === undefined ) { traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; } // If an array was passed in, assume that it is an array of form elements. if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { // Serialize the form elements jQuery.each( a, function() { add( this.name, this.value ); }); } else { // If traditional, encode the "old" way (the way 1.3.2 or older // did it), otherwise encode params recursively. for ( prefix in a ) { buildParams( prefix, a[ prefix ], traditional, add ); } } // Return the resulting serialization return s.join( "&" ).replace( r20, "+" ); }; jQuery.fn.extend({ serialize: function() { return jQuery.param( this.serializeArray() ); }, serializeArray: function() { return this.map(function() { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; }) .filter(function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); }) .map(function( i, elem ) { var val = jQuery( this ).val(); return val == null ? null : jQuery.isArray( val ) ? jQuery.map( val, function( val ) { return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; }) : { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; }).get(); } }); jQuery.ajaxSettings.xhr = function() { try { return new XMLHttpRequest(); } catch( e ) {} }; var xhrId = 0, xhrCallbacks = {}, xhrSuccessStatus = { // file protocol always yields status code 0, assume 200 0: 200, // Support: IE9 // #1450: sometimes IE returns 1223 when it should be 204 1223: 204 }, xhrSupported = jQuery.ajaxSettings.xhr(); // Support: IE9 // Open requests must be manually aborted on unload (#5280) // See https://support.microsoft.com/kb/2856746 for more info if ( window.attachEvent ) { window.attachEvent( "onunload", function() { for ( var key in xhrCallbacks ) { xhrCallbacks[ key ](); } }); } support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); support.ajax = xhrSupported = !!xhrSupported; jQuery.ajaxTransport(function( options ) { var callback; // Cross domain only allowed if supported through XMLHttpRequest if ( support.cors || xhrSupported && !options.crossDomain ) { return { send: function( headers, complete ) { var i, xhr = options.xhr(), id = ++xhrId; xhr.open( options.type, options.url, options.async, options.username, options.password ); // Apply custom fields if provided if ( options.xhrFields ) { for ( i in options.xhrFields ) { xhr[ i ] = options.xhrFields[ i ]; } } // Override mime type if needed if ( options.mimeType && xhr.overrideMimeType ) { xhr.overrideMimeType( options.mimeType ); } // X-Requested-With header // For cross-domain requests, seeing as conditions for a preflight are // akin to a jigsaw puzzle, we simply never set it to be sure. // (it can always be set on a per-request basis or even using ajaxSetup) // For same-domain requests, won't change header if already provided. if ( !options.crossDomain && !headers["X-Requested-With"] ) { headers["X-Requested-With"] = "XMLHttpRequest"; } // Set headers for ( i in headers ) { xhr.setRequestHeader( i, headers[ i ] ); } // Callback callback = function( type ) { return function() { if ( callback ) { delete xhrCallbacks[ id ]; callback = xhr.onload = xhr.onerror = null; if ( type === "abort" ) { xhr.abort(); } else if ( type === "error" ) { complete( // file: protocol always yields status 0; see #8605, #14207 xhr.status, xhr.statusText ); } else { complete( xhrSuccessStatus[ xhr.status ] || xhr.status, xhr.statusText, // Support: IE9 // Accessing binary-data responseText throws an exception // (#11426) typeof xhr.responseText === "string" ? { text: xhr.responseText } : undefined, xhr.getAllResponseHeaders() ); } } }; }; // Listen to events xhr.onload = callback(); xhr.onerror = callback("error"); // Create the abort callback callback = xhrCallbacks[ id ] = callback("abort"); try { // Do send the request (this may raise an exception) xhr.send( options.hasContent && options.data || null ); } catch ( e ) { // #14683: Only rethrow if this hasn't been notified as an error yet if ( callback ) { throw e; } } }, abort: function() { if ( callback ) { callback(); } } }; } }); // Install script dataType jQuery.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /(?:java|ecma)script/ }, converters: { "text script": function( text ) { jQuery.globalEval( text ); return text; } } }); // Handle cache's special case and crossDomain jQuery.ajaxPrefilter( "script", function( s ) { if ( s.cache === undefined ) { s.cache = false; } if ( s.crossDomain ) { s.type = "GET"; } }); // Bind script tag hack transport jQuery.ajaxTransport( "script", function( s ) { // This transport only deals with cross domain requests if ( s.crossDomain ) { var script, callback; return { send: function( _, complete ) { script = jQuery("<script>").prop({ async: true, charset: s.scriptCharset, src: s.url }).on( "load error", callback = function( evt ) { script.remove(); callback = null; if ( evt ) { complete( evt.type === "error" ? 404 : 200, evt.type ); } } ); document.head.appendChild( script[ 0 ] ); }, abort: function() { if ( callback ) { callback(); } } }; } }); var oldCallbacks = [], rjsonp = /(=)\?(?=&|$)|\?\?/; // Default jsonp settings jQuery.ajaxSetup({ jsonp: "callback", jsonpCallback: function() { var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); this[ callback ] = true; return callback; } }); // Detect, normalize options and install callbacks for jsonp requests jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { var callbackName, overwritten, responseContainer, jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? "url" : typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data" ); // Handle iff the expected data type is "jsonp" or we have a parameter to set if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { // Get callback name, remembering preexisting value associated with it callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback; // Insert callback into url or form data if ( jsonProp ) { s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); } else if ( s.jsonp !== false ) { s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; } // Use data converter to retrieve json after script execution s.converters["script json"] = function() { if ( !responseContainer ) { jQuery.error( callbackName + " was not called" ); } return responseContainer[ 0 ]; }; // force json dataType s.dataTypes[ 0 ] = "json"; // Install callback overwritten = window[ callbackName ]; window[ callbackName ] = function() { responseContainer = arguments; }; // Clean-up function (fires after converters) jqXHR.always(function() { // Restore preexisting value window[ callbackName ] = overwritten; // Save back as free if ( s[ callbackName ] ) { // make sure that re-using the options doesn't screw things around s.jsonpCallback = originalSettings.jsonpCallback; // save the callback name for future use oldCallbacks.push( callbackName ); } // Call if it was a function and we have a response if ( responseContainer && jQuery.isFunction( overwritten ) ) { overwritten( responseContainer[ 0 ] ); } responseContainer = overwritten = undefined; }); // Delegate to script return "script"; } }); // 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 jQuery.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 && scripts.length ) { jQuery( scripts ).remove(); } return jQuery.merge( [], parsed.childNodes ); }; // Keep a copy of the old load method var _load = jQuery.fn.load; /** * Load a url into a page */ jQuery.fn.load = function( url, params, callback ) { if ( typeof url !== "string" && _load ) { return _load.apply( this, arguments ); } var selector, type, response, self = this, off = url.indexOf(" "); if ( off >= 0 ) { selector = jQuery.trim( url.slice( off ) ); url = url.slice( 0, off ); } // If it's a function if ( jQuery.isFunction( params ) ) { // We assume that it's the callback callback = params; params = undefined; // Otherwise, build a param string } else if ( params && typeof params === "object" ) { type = "POST"; } // If we have elements to modify, make the request if ( self.length > 0 ) { jQuery.ajax({ url: url, // if "type" variable is undefined, then "GET" method will be used type: type, dataType: "html", data: params }).done(function( responseText ) { // Save response for use in complete callback response = arguments; self.html( selector ? // If a selector was specified, locate the right elements in a dummy div // Exclude scripts to avoid IE 'Permission Denied' errors jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) : // Otherwise use the full result responseText ); }).complete( callback && function( jqXHR, status ) { self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); }); } return this; }; // Attach a bunch of functions for handling common AJAX events jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { jQuery.fn[ type ] = function( fn ) { return this.on( type, fn ); }; }); jQuery.expr.filters.animated = function( elem ) { return jQuery.grep(jQuery.timers, function( fn ) { return elem === fn.elem; }).length; }; var docElem = window.document.documentElement; /** * Gets a window from an element */ function getWindow( elem ) { return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView; } jQuery.offset = { setOffset: function( elem, options, i ) { var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, position = jQuery.css( elem, "position" ), curElem = jQuery( elem ), props = {}; // Set position first, in-case top/left are set even on static elem if ( position === "static" ) { elem.style.position = "relative"; } curOffset = curElem.offset(); curCSSTop = jQuery.css( elem, "top" ); curCSSLeft = jQuery.css( elem, "left" ); calculatePosition = ( position === "absolute" || position === "fixed" ) && ( curCSSTop + curCSSLeft ).indexOf("auto") > -1; // Need to be able to calculate position if either // top or left is auto and position is either absolute or fixed if ( calculatePosition ) { curPosition = curElem.position(); curTop = curPosition.top; curLeft = curPosition.left; } else { curTop = parseFloat( curCSSTop ) || 0; curLeft = parseFloat( curCSSLeft ) || 0; } if ( jQuery.isFunction( options ) ) { options = options.call( elem, i, curOffset ); } if ( options.top != null ) { props.top = ( options.top - curOffset.top ) + curTop; } if ( options.left != null ) { props.left = ( options.left - curOffset.left ) + curLeft; } if ( "using" in options ) { options.using.call( elem, props ); } else { curElem.css( props ); } } }; jQuery.fn.extend({ offset: function( options ) { if ( arguments.length ) { return options === undefined ? this : this.each(function( i ) { jQuery.offset.setOffset( this, options, i ); }); } var docElem, win, elem = this[ 0 ], box = { top: 0, left: 0 }, doc = elem && elem.ownerDocument; if ( !doc ) { return; } docElem = doc.documentElement; // Make sure it's not a disconnected DOM node if ( !jQuery.contains( docElem, elem ) ) { return box; } // Support: BlackBerry 5, iOS 3 (original iPhone) // If we don't have gBCR, just use 0,0 rather than error if ( typeof elem.getBoundingClientRect !== strundefined ) { box = elem.getBoundingClientRect(); } win = getWindow( doc ); return { top: box.top + win.pageYOffset - docElem.clientTop, left: box.left + win.pageXOffset - docElem.clientLeft }; }, position: function() { if ( !this[ 0 ] ) { return; } var offsetParent, offset, elem = this[ 0 ], parentOffset = { top: 0, left: 0 }; // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent if ( jQuery.css( elem, "position" ) === "fixed" ) { // Assume getBoundingClientRect is there when computed position is fixed offset = elem.getBoundingClientRect(); } else { // Get *real* offsetParent offsetParent = this.offsetParent(); // Get correct offsets offset = this.offset(); if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) { parentOffset = offsetParent.offset(); } // Add offsetParent borders parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ); parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ); } // Subtract parent offsets and element margins return { top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) }; }, offsetParent: function() { return this.map(function() { var offsetParent = this.offsetParent || docElem; while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) { offsetParent = offsetParent.offsetParent; } return offsetParent || docElem; }); } }); // Create scrollLeft and scrollTop methods jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { var top = "pageYOffset" === prop; jQuery.fn[ method ] = function( val ) { return access( this, function( elem, method, val ) { var win = getWindow( elem ); if ( val === undefined ) { return win ? win[ prop ] : elem[ method ]; } if ( win ) { win.scrollTo( !top ? val : window.pageXOffset, top ? val : window.pageYOffset ); } else { elem[ method ] = val; } }, method, val, arguments.length, null ); }; }); // Support: Safari<7+, Chrome<37+ // Add the top/left cssHooks using jQuery.fn.position // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 // Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280 // getComputedStyle returns percent when specified for top/left/bottom/right; // rather than make the css module depend on the offset module, just check for it here jQuery.each( [ "top", "left" ], function( i, prop ) { jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, function( elem, computed ) { if ( computed ) { computed = curCSS( elem, prop ); // If curCSS returns percentage, fallback to offset return rnumnonpx.test( computed ) ? jQuery( elem ).position()[ prop ] + "px" : computed; } } ); }); // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); return access( this, function( elem, type, value ) { var doc; if ( jQuery.isWindow( elem ) ) { // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there // isn't a whole lot we can do. See pull request at this URL for discussion: // https://github.com/jquery/jquery/pull/764 return elem.document.documentElement[ "client" + name ]; } // Get document width or height if ( elem.nodeType === 9 ) { doc = elem.documentElement; // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], // whichever is greatest return Math.max( elem.body[ "scroll" + name ], doc[ "scroll" + name ], elem.body[ "offset" + name ], doc[ "offset" + name ], doc[ "client" + name ] ); } return value === undefined ? // Get width or height on the element, requesting but not forcing parseFloat jQuery.css( elem, type, extra ) : // Set width or height on the element jQuery.style( elem, type, value, extra ); }, type, chainable ? margin : undefined, chainable, null ); }; }); }); // The number of elements contained in the matched element set jQuery.fn.size = function() { return this.length; }; jQuery.fn.andSelf = jQuery.fn.addBack; // Register as a named AMD module, since jQuery can be concatenated with other // files that may use define, but not via a proper concatenation script that // understands anonymous AMD modules. A named AMD is safest and most robust // way to register. Lowercase jquery is used because AMD module names are // derived from file names, and jQuery is normally delivered in a lowercase // file name. Do this after creating the global so that if an AMD module wants // to call noConflict to hide this version of jQuery, it will work. // Note that for maximum portability, libraries that are not jQuery should // declare themselves as anonymous modules, and avoid setting a global if an // AMD loader is present. jQuery is a special case. For more information, see // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon if ( typeof define === "function" && define.amd ) { define( "jquery", [], function() { return jQuery; }); } var // Map over jQuery in case of overwrite _jQuery = window.jQuery, // Map over the $ in case of overwrite _$ = window.$; jQuery.noConflict = function( deep ) { if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } return jQuery; }; // Expose jQuery and $ identifiers, even in AMD // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) // and CommonJS for browser emulators (#13566) if ( typeof noGlobal === strundefined ) { window.jQuery = window.$ = jQuery; } return jQuery; })); </script> <script>/*! * Bootstrap v3.3.5 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=ca1d29b8c16a782c676c) * Config saved to config.json and https://gist.github.com/ca1d29b8c16a782c676c */ if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),n=i.data("bs.alert");n||i.data("bs.alert",n=new o(this)),"string"==typeof e&&n[e].call(i)})}var i='[data-dismiss="alert"]',o=function(e){t(e).on("click",i,this.close)};o.VERSION="3.3.5",o.TRANSITION_DURATION=150,o.prototype.close=function(e){function i(){a.detach().trigger("closed.bs.alert").remove()}var n=t(this),s=n.attr("data-target");s||(s=n.attr("href"),s=s&&s.replace(/.*(?=#[^\s]*$)/,""));var a=t(s);e&&e.preventDefault(),a.length||(a=n.closest(".alert")),a.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(a.removeClass("in"),t.support.transition&&a.hasClass("fade")?a.one("bsTransitionEnd",i).emulateTransitionEnd(o.TRANSITION_DURATION):i())};var n=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=o,t.fn.alert.noConflict=function(){return t.fn.alert=n,this},t(document).on("click.bs.alert.data-api",i,o.prototype.close)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.button"),s="object"==typeof e&&e;n||o.data("bs.button",n=new i(this,s)),"toggle"==e?n.toggle():e&&n.setState(e)})}var i=function(e,o){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,o),this.isLoading=!1};i.VERSION="3.3.5",i.DEFAULTS={loadingText:"loading..."},i.prototype.setState=function(e){var i="disabled",o=this.$element,n=o.is("input")?"val":"html",s=o.data();e+="Text",null==s.resetText&&o.data("resetText",o[n]()),setTimeout(t.proxy(function(){o[n](null==s[e]?this.options[e]:s[e]),"loadingText"==e?(this.isLoading=!0,o.addClass(i).attr(i,i)):this.isLoading&&(this.isLoading=!1,o.removeClass(i).removeAttr(i))},this),0)},i.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")?(i.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==i.prop("type")&&(i.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),i.prop("checked",this.$element.hasClass("active")),t&&i.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var o=t.fn.button;t.fn.button=e,t.fn.button.Constructor=i,t.fn.button.noConflict=function(){return t.fn.button=o,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(i){var o=t(i.target);o.hasClass("btn")||(o=o.closest(".btn")),e.call(o,"toggle"),t(i.target).is('input[type="radio"]')||t(i.target).is('input[type="checkbox"]')||i.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.carousel"),s=t.extend({},i.DEFAULTS,o.data(),"object"==typeof e&&e),a="string"==typeof e?e:s.slide;n||o.data("bs.carousel",n=new i(this,s)),"number"==typeof e?n.to(e):a?n[a]():s.interval&&n.pause().cycle()})}var i=function(e,i){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};i.VERSION="3.3.5",i.TRANSITION_DURATION=600,i.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},i.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},i.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},i.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},i.prototype.getItemForDirection=function(t,e){var i=this.getItemIndex(e),o="prev"==t&&0===i||"next"==t&&i==this.$items.length-1;if(o&&!this.options.wrap)return e;var n="prev"==t?-1:1,s=(i+n)%this.$items.length;return this.$items.eq(s)},i.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));return t>this.$items.length-1||0>t?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",this.$items.eq(t))},i.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},i.prototype.next=function(){return this.sliding?void 0:this.slide("next")},i.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},i.prototype.slide=function(e,o){var n=this.$element.find(".item.active"),s=o||this.getItemForDirection(e,n),a=this.interval,r="next"==e?"left":"right",l=this;if(s.hasClass("active"))return this.sliding=!1;var h=s[0],d=t.Event("slide.bs.carousel",{relatedTarget:h,direction:r});if(this.$element.trigger(d),!d.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var p=t(this.$indicators.children()[this.getItemIndex(s)]);p&&p.addClass("active")}var c=t.Event("slid.bs.carousel",{relatedTarget:h,direction:r});return t.support.transition&&this.$element.hasClass("slide")?(s.addClass(e),s[0].offsetWidth,n.addClass(r),s.addClass(r),n.one("bsTransitionEnd",function(){s.removeClass([e,r].join(" ")).addClass("active"),n.removeClass(["active",r].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(c)},0)}).emulateTransitionEnd(i.TRANSITION_DURATION)):(n.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger(c)),a&&this.cycle(),this}};var o=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=i,t.fn.carousel.noConflict=function(){return t.fn.carousel=o,this};var n=function(i){var o,n=t(this),s=t(n.attr("data-target")||(o=n.attr("href"))&&o.replace(/.*(?=#[^\s]+$)/,""));if(s.hasClass("carousel")){var a=t.extend({},s.data(),n.data()),r=n.attr("data-slide-to");r&&(a.interval=!1),e.call(s,a),r&&s.data("bs.carousel").to(r),i.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",n).on("click.bs.carousel.data-api","[data-slide-to]",n),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var i=t(this);e.call(i,i.data())})})}(jQuery),+function(t){"use strict";function e(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#[A-Za-z]/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var o=i&&t(i);return o&&o.length?o:e.parent()}function i(i){i&&3===i.which||(t(n).remove(),t(s).each(function(){var o=t(this),n=e(o),s={relatedTarget:this};n.hasClass("open")&&(i&&"click"==i.type&&/input|textarea/i.test(i.target.tagName)&&t.contains(n[0],i.target)||(n.trigger(i=t.Event("hide.bs.dropdown",s)),i.isDefaultPrevented()||(o.attr("aria-expanded","false"),n.removeClass("open").trigger("hidden.bs.dropdown",s))))}))}function o(e){return this.each(function(){var i=t(this),o=i.data("bs.dropdown");o||i.data("bs.dropdown",o=new a(this)),"string"==typeof e&&o[e].call(i)})}var n=".dropdown-backdrop",s='[data-toggle="dropdown"]',a=function(e){t(e).on("click.bs.dropdown",this.toggle)};a.VERSION="3.3.5",a.prototype.toggle=function(o){var n=t(this);if(!n.is(".disabled, :disabled")){var s=e(n),a=s.hasClass("open");if(i(),!a){"ontouchstart"in document.documentElement&&!s.closest(".navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",i);var r={relatedTarget:this};if(s.trigger(o=t.Event("show.bs.dropdown",r)),o.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),s.toggleClass("open").trigger("shown.bs.dropdown",r)}return!1}},a.prototype.keydown=function(i){if(/(38|40|27|32)/.test(i.which)&&!/input|textarea/i.test(i.target.tagName)){var o=t(this);if(i.preventDefault(),i.stopPropagation(),!o.is(".disabled, :disabled")){var n=e(o),a=n.hasClass("open");if(!a&&27!=i.which||a&&27==i.which)return 27==i.which&&n.find(s).trigger("focus"),o.trigger("click");var r=" li:not(.disabled):visible a",l=n.find(".dropdown-menu"+r);if(l.length){var h=l.index(i.target);38==i.which&&h>0&&h--,40==i.which&&h<l.length-1&&h++,~h||(h=0),l.eq(h).trigger("focus")}}}};var r=t.fn.dropdown;t.fn.dropdown=o,t.fn.dropdown.Constructor=a,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=r,this},t(document).on("click.bs.dropdown.data-api",i).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",s,a.prototype.toggle).on("keydown.bs.dropdown.data-api",s,a.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",a.prototype.keydown)}(jQuery),+function(t){"use strict";function e(e,o){return this.each(function(){var n=t(this),s=n.data("bs.modal"),a=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);s||n.data("bs.modal",s=new i(this,a)),"string"==typeof e?s[e](o):a.show&&s.show(o)})}var i=function(e,i){this.options=i,this.$body=t(document.body),this.$element=t(e),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};i.VERSION="3.3.5",i.TRANSITION_DURATION=300,i.BACKDROP_TRANSITION_DURATION=150,i.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},i.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},i.prototype.show=function(e){var o=this,n=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){o.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(o.$element)&&(o.ignoreBackdropClick=!0)})}),this.backdrop(function(){var n=t.support.transition&&o.$element.hasClass("fade");o.$element.parent().length||o.$element.appendTo(o.$body),o.$element.show().scrollTop(0),o.adjustDialog(),n&&o.$element[0].offsetWidth,o.$element.addClass("in"),o.enforceFocus();var s=t.Event("shown.bs.modal",{relatedTarget:e});n?o.$dialog.one("bsTransitionEnd",function(){o.$element.trigger("focus").trigger(s)}).emulateTransitionEnd(i.TRANSITION_DURATION):o.$element.trigger("focus").trigger(s)}))},i.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(i.TRANSITION_DURATION):this.hideModal())},i.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},i.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},i.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},i.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},i.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},i.prototype.backdrop=function(e){var o=this,n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var s=t.support.transition&&n;if(this.$backdrop=t(document.createElement("div")).addClass("modal-backdrop "+n).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),s&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;s?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var a=function(){o.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",a).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):a()}else e&&e()},i.prototype.handleUpdate=function(){this.adjustDialog()},i.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},i.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},i.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},i.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},i.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var o=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=i,t.fn.modal.noConflict=function(){return t.fn.modal=o,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(i){var o=t(this),n=o.attr("href"),s=t(o.attr("data-target")||n&&n.replace(/.*(?=#[^\s]+$)/,"")),a=s.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(n)&&n},s.data(),o.data());o.is("a")&&i.preventDefault(),s.one("show.bs.modal",function(t){t.isDefaultPrevented()||s.one("hidden.bs.modal",function(){o.is(":visible")&&o.trigger("focus")})}),e.call(s,a,this)})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tooltip"),s="object"==typeof e&&e;(n||!/destroy|hide/.test(e))&&(n||o.data("bs.tooltip",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};i.VERSION="3.3.5",i.TRANSITION_DURATION=150,i.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},i.prototype.init=function(e,i,o){if(this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(o),this.$viewport=this.options.viewport&&t(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var n=this.options.trigger.split(" "),s=n.length;s--;){var a=n[s];if("click"==a)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=a){var r="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(r+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},i.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,o){i[t]!=o&&(e[t]=o)}),e},i.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusin"==e.type?"focus":"hover"]=!0),i.tip().hasClass("in")||"in"==i.hoverState?void(i.hoverState="in"):(clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show())},i.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},i.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusout"==e.type?"focus":"hover"]=!1),i.isInStateTrue()?void 0:(clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)):i.hide())},i.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var o=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!o)return;var n=this,s=this.tip(),a=this.getUID(this.type);this.setContent(),s.attr("id",a),this.$element.attr("aria-describedby",a),this.options.animation&&s.addClass("fade");var r="function"==typeof this.options.placement?this.options.placement.call(this,s[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,h=l.test(r);h&&(r=r.replace(l,"")||"top"),s.detach().css({top:0,left:0,display:"block"}).addClass(r).data("bs."+this.type,this),this.options.container?s.appendTo(this.options.container):s.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var d=this.getPosition(),p=s[0].offsetWidth,c=s[0].offsetHeight;if(h){var f=r,u=this.getPosition(this.$viewport);r="bottom"==r&&d.bottom+c>u.bottom?"top":"top"==r&&d.top-c<u.top?"bottom":"right"==r&&d.right+p>u.width?"left":"left"==r&&d.left-p<u.left?"right":r,s.removeClass(f).addClass(r)}var g=this.getCalculatedOffset(r,d,p,c);this.applyPlacement(g,r);var m=function(){var t=n.hoverState;n.$element.trigger("shown.bs."+n.type),n.hoverState=null,"out"==t&&n.leave(n)};t.support.transition&&this.$tip.hasClass("fade")?s.one("bsTransitionEnd",m).emulateTransitionEnd(i.TRANSITION_DURATION):m()}},i.prototype.applyPlacement=function(e,i){var o=this.tip(),n=o[0].offsetWidth,s=o[0].offsetHeight,a=parseInt(o.css("margin-top"),10),r=parseInt(o.css("margin-left"),10);isNaN(a)&&(a=0),isNaN(r)&&(r=0),e.top+=a,e.left+=r,t.offset.setOffset(o[0],t.extend({using:function(t){o.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),o.addClass("in");var l=o[0].offsetWidth,h=o[0].offsetHeight;"top"==i&&h!=s&&(e.top=e.top+s-h);var d=this.getViewportAdjustedDelta(i,e,l,h);d.left?e.left+=d.left:e.top+=d.top;var p=/top|bottom/.test(i),c=p?2*d.left-n+l:2*d.top-s+h,f=p?"offsetWidth":"offsetHeight";o.offset(e),this.replaceArrow(c,o[0][f],p)},i.prototype.replaceArrow=function(t,e,i){this.arrow().css(i?"left":"top",50*(1-t/e)+"%").css(i?"top":"left","")},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},i.prototype.hide=function(e){function o(){"in"!=n.hoverState&&s.detach(),n.$element.removeAttr("aria-describedby").trigger("hidden.bs."+n.type),e&&e()}var n=this,s=t(this.$tip),a=t.Event("hide.bs."+this.type);return this.$element.trigger(a),a.isDefaultPrevented()?void 0:(s.removeClass("in"),t.support.transition&&s.hasClass("fade")?s.one("bsTransitionEnd",o).emulateTransitionEnd(i.TRANSITION_DURATION):o(),this.hoverState=null,this)},i.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},i.prototype.hasContent=function(){return this.getTitle()},i.prototype.getPosition=function(e){e=e||this.$element;var i=e[0],o="BODY"==i.tagName,n=i.getBoundingClientRect();null==n.width&&(n=t.extend({},n,{width:n.right-n.left,height:n.bottom-n.top}));var s=o?{top:0,left:0}:e.offset(),a={scroll:o?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},r=o?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},n,a,r,s)},i.prototype.getCalculatedOffset=function(t,e,i,o){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-i/2}:"top"==t?{top:e.top-o,left:e.left+e.width/2-i/2}:"left"==t?{top:e.top+e.height/2-o/2,left:e.left-i}:{top:e.top+e.height/2-o/2,left:e.left+e.width}},i.prototype.getViewportAdjustedDelta=function(t,e,i,o){var n={top:0,left:0};if(!this.$viewport)return n;var s=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(t)){var r=e.top-s-a.scroll,l=e.top+s-a.scroll+o;r<a.top?n.top=a.top-r:l>a.top+a.height&&(n.top=a.top+a.height-l)}else{var h=e.left-s,d=e.left+s+i;h<a.left?n.left=a.left-h:d>a.right&&(n.left=a.left+a.width-d)}return n},i.prototype.getTitle=function(){var t,e=this.$element,i=this.options;return t=e.attr("data-original-title")||("function"==typeof i.title?i.title.call(e[0]):i.title)},i.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},i.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},i.prototype.enable=function(){this.enabled=!0},i.prototype.disable=function(){this.enabled=!1},i.prototype.toggleEnabled=function(){this.enabled=!this.enabled},i.prototype.toggle=function(e){var i=this;e&&(i=t(e.currentTarget).data("bs."+this.type),i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i))),e?(i.inState.click=!i.inState.click,i.isInStateTrue()?i.enter(i):i.leave(i)):i.tip().hasClass("in")?i.leave(i):i.enter(i)},i.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null})};var o=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=i,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.popover"),s="object"==typeof e&&e;(n||!/destroy|hide/.test(e))&&(n||o.data("bs.popover",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");i.VERSION="3.3.5",i.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),i.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),i.prototype.constructor=i,i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof i?"html":"append":"text"](i),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},i.prototype.hasContent=function(){return this.getTitle()||this.getContent()},i.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var o=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=i,t.fn.popover.noConflict=function(){return t.fn.popover=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tab");n||o.data("bs.tab",n=new i(this)),"string"==typeof e&&n[e]()})}var i=function(e){this.element=t(e)};i.VERSION="3.3.5",i.TRANSITION_DURATION=150,i.prototype.show=function(){var e=this.element,i=e.closest("ul:not(.dropdown-menu)"),o=e.data("target");if(o||(o=e.attr("href"),o=o&&o.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var n=i.find(".active:last a"),s=t.Event("hide.bs.tab",{relatedTarget:e[0]}),a=t.Event("show.bs.tab",{relatedTarget:n[0]});if(n.trigger(s),e.trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){var r=t(o);this.activate(e.closest("li"),i),this.activate(r,r.parent(),function(){n.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:n[0]})})}}},i.prototype.activate=function(e,o,n){function s(){a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),r?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),n&&n()}var a=o.find("> .active"),r=n&&t.support.transition&&(a.length&&a.hasClass("fade")||!!o.find("> .fade").length);a.length&&r?a.one("bsTransitionEnd",s).emulateTransitionEnd(i.TRANSITION_DURATION):s(),a.removeClass("in")};var o=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=i,t.fn.tab.noConflict=function(){return t.fn.tab=o,this};var n=function(i){i.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',n).on("click.bs.tab.data-api",'[data-toggle="pill"]',n)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.affix"),s="object"==typeof e&&e;n||o.data("bs.affix",n=new i(this,s)),"string"==typeof e&&n[e]()})}var i=function(e,o){this.options=t.extend({},i.DEFAULTS,o),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};i.VERSION="3.3.5",i.RESET="affix affix-top affix-bottom",i.DEFAULTS={offset:0,target:window},i.prototype.getState=function(t,e,i,o){var n=this.$target.scrollTop(),s=this.$element.offset(),a=this.$target.height();if(null!=i&&"top"==this.affixed)return i>n?"top":!1;if("bottom"==this.affixed)return null!=i?n+this.unpin<=s.top?!1:"bottom":t-o>=n+a?!1:"bottom";var r=null==this.affixed,l=r?n:s.top,h=r?a:e;return null!=i&&i>=n?"top":null!=o&&l+h>=t-o?"bottom":!1},i.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(i.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},i.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},i.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),o=this.options.offset,n=o.top,s=o.bottom,a=Math.max(t(document).height(),t(document.body).height());"object"!=typeof o&&(s=n=o),"function"==typeof n&&(n=o.top(this.$element)),"function"==typeof s&&(s=o.bottom(this.$element));var r=this.getState(a,e,n,s);if(this.affixed!=r){null!=this.unpin&&this.$element.css("top","");var l="affix"+(r?"-"+r:""),h=t.Event(l+".bs.affix");if(this.$element.trigger(h),h.isDefaultPrevented())return;this.affixed=r,this.unpin="bottom"==r?this.getPinnedOffset():null,this.$element.removeClass(i.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==r&&this.$element.offset({top:a-e-s})}};var o=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=i,t.fn.affix.noConflict=function(){return t.fn.affix=o,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var i=t(this),o=i.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),e.call(i,o)})})}(jQuery),+function(t){"use strict";function e(e){var i,o=e.attr("data-target")||(i=e.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,"");return t(o)}function i(e){return this.each(function(){var i=t(this),n=i.data("bs.collapse"),s=t.extend({},o.DEFAULTS,i.data(),"object"==typeof e&&e);!n&&s.toggle&&/show|hide/.test(e)&&(s.toggle=!1),n||i.data("bs.collapse",n=new o(this,s)),"string"==typeof e&&n[e]()})}var o=function(e,i){this.$element=t(e),this.options=t.extend({},o.DEFAULTS,i),this.$trigger=t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};o.VERSION="3.3.5",o.TRANSITION_DURATION=350,o.DEFAULTS={toggle:!0},o.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},o.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,n=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(n&&n.length&&(e=n.data("bs.collapse"),e&&e.transitioning))){var s=t.Event("show.bs.collapse");if(this.$element.trigger(s),!s.isDefaultPrevented()){n&&n.length&&(i.call(n,"hide"),e||n.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var r=function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return r.call(this);var l=t.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(o.TRANSITION_DURATION)[a](this.$element[0][l]); }}}},o.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.dimension();this.$element[i](this.$element[i]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var n=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[i](0).one("bsTransitionEnd",t.proxy(n,this)).emulateTransitionEnd(o.TRANSITION_DURATION):n.call(this)}}},o.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},o.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(i,o){var n=t(o);this.addAriaAndCollapsedClass(e(n),n)},this)).end()},o.prototype.addAriaAndCollapsedClass=function(t,e){var i=t.hasClass("in");t.attr("aria-expanded",i),e.toggleClass("collapsed",!i).attr("aria-expanded",i)};var n=t.fn.collapse;t.fn.collapse=i,t.fn.collapse.Constructor=o,t.fn.collapse.noConflict=function(){return t.fn.collapse=n,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(o){var n=t(this);n.attr("data-target")||o.preventDefault();var s=e(n),a=s.data("bs.collapse"),r=a?"toggle":n.data();i.call(s,r)})}(jQuery),+function(t){"use strict";function e(i,o){this.$body=t(document.body),this.$scrollElement=t(t(i).is(document.body)?window:i),this.options=t.extend({},e.DEFAULTS,o),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function i(i){return this.each(function(){var o=t(this),n=o.data("bs.scrollspy"),s="object"==typeof i&&i;n||o.data("bs.scrollspy",n=new e(this,s)),"string"==typeof i&&n[i]()})}e.VERSION="3.3.5",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,i="offset",o=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(i="position",o=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),n=e.data("target")||e.attr("href"),s=/^#./.test(n)&&t(n);return s&&s.length&&s.is(":visible")&&[[s[i]().top+o,n]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),o=this.options.offset+i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),e>=o)return a!=(t=s[s.length-1])&&this.activate(t);if(a&&e<n[0])return this.activeTarget=null,this.clear();for(t=n.length;t--;)a!=s[t]&&e>=n[t]&&(void 0===n[t+1]||e<n[t+1])&&this.activate(s[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var i=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',o=t(i).parents("li").addClass("active");o.parent(".dropdown-menu").length&&(o=o.closest("li.dropdown").addClass("active")),o.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var o=t.fn.scrollspy;t.fn.scrollspy=i,t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=o,this},t(window).on("load.bs.scrollspy.data-api",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);i.call(e,e.data())})})}(jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return{end:e[i]};return!1}t.fn.emulateTransitionEnd=function(e){var i=!1,o=this;t(this).one("bsTransitionEnd",function(){i=!0});var n=function(){i||t(o).trigger(t.support.transition.end)};return setTimeout(n,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery);</script> <script>var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; (function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= [],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c< f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&& (j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r= {b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length, t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b=== "string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, "");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value", m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m= a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue= j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), ["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", /^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), ["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b= !k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m, 250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit", PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();</script> <script>events.js:377 throw er; // Unhandled 'error' event ^ Error: ENOENT: no such file or directory, open '/home/arong/Unity/PackageBuild/docs/html_standalone/https:/cdn.jsdelivr.net/fuse/2.5.0/fuse.min.js' Emitted 'error' event on ReadStream instance at: at internal/fs/streams.js:126:14 at FSReqCallback.oncomplete (fs.js:179:23) { errno: -2, code: 'ENOENT', syscall: 'open', path: '/home/arong/Unity/PackageBuild/docs/html_standalone/https:/cdn.jsdelivr.net/fuse/2.5.0/fuse.min.js' }