{"version":3,"file":"main.min.js","mappings":"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","sources":["webpack://webtubev2/./wwwroot/js/main/app.js","webpack://webtubev2/./wwwroot/js/main/bootstrap.js","webpack://webtubev2/./wwwroot/js/main/easing.js","webpack://webtubev2/./wwwroot/js/main/extention-api.js","webpack://webtubev2/./wwwroot/js/main/extention-reporting.js","webpack://webtubev2/./wwwroot/js/main/jquery-cookie.js","webpack://webtubev2/./wwwroot/js/main/jquery.js","webpack://webtubev2/./wwwroot/js/main/nouislider.js","webpack://webtubev2/./wwwroot/js/main/slick.js","webpack://webtubev2/webpack/bootstrap","webpack://webtubev2/webpack/startup"],"sourcesContent":["$(function () {\r\n\r\n\t// time choosing control \r\n\r\n\tvar slider = document.getElementById('range');\r\n\r\n\tif (slider != null) {\r\n\r\n\t\tvar defaultMin = 0;\r\n\t\tvar defaultMax = 50;\r\n\r\n\t\tvar sliderMin = safeParseInt($(slider).attr(\"data-min\"), defaultMin);\r\n\t\tvar sliderMax = safeParseInt($(slider).attr(\"data-max\"), defaultMax);\r\n\t\tnoUiSlider.create(slider, {\r\n\t\t\tstart: [\r\n\t\t\t\tsliderMin,\r\n\t\t\t\tsliderMax],\r\n\t\t\tconnect: true,\r\n\t\t\tsnap: true,\r\n\t\t\tpips: {\r\n\t\t\t\tmode: 'values',\r\n\t\t\t\tvalues: [0,10,20,30,40,50], \r\n\t\t\t\tdensity: 5\r\n\t\t\t},\r\n\t\t\trange: {\r\n\t\t 'min': 0,\r\n\t\t '20%': 10,\r\n\t\t '40%': 20,\r\n\t\t '60%': 30,\r\n\t\t\t\t'80%': 40,\r\n\t\t 'max': 50\r\n\t\t },\r\n\t\t});\t\r\n\r\n\t\tslider.noUiSlider.on('set.one', function (val) {\r\n\r\n\t\t\tvar newMaxText = \"\";\r\n\t\t\tvar newMinText = \"\";\r\n\t\t\tif (Math.round(val[0]) != defaultMin) {\r\n\t\t\t\tnewMinText = \"\" + Math.round(val[0]);\r\n\t\t\t}\r\n\t\t\tif (Math.round(val[1]) != defaultMax) {\r\n\t\t\t\tnewMaxText = \"\" + Math.round(val[1]);\r\n\t\t\t}\r\n\t\t\tvar separator = \"?\"\r\n\t\t\tif ($(slider).attr(\"data-key\").indexOf(\"?\") !== -1) {\r\n\t\t\t\tseparator=\"&\"\r\n\t\t\t}\r\n\r\n\t\t\t$(location).attr('href', $(slider).attr(\"data-key\") + separator+ \"duration=\" + newMinText + \"-\" + newMaxText);\r\n\t\t})\r\n\t}\r\n\t$('#player').click(function () {\r\n\t\tif (document.viewSent != true) {\r\n\t\t\tdocument.viewSent = true;\r\n\t\t\tsendView();\r\n\t\t}\r\n\r\n\t});\r\n\t$(document).keydown(function (e) {\r\n\t\tif (e.which == 37) {\r\n\t\t\tif ($(document).find(\"#player\").length == 1)\r\n\t\t\t\twindow.player.currentTime(window.player.currentTime()-10)\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (e.which == 39) {\r\n\t\t\tif ($(document).find(\"#player\").length == 1)\r\n\t\t\t\twindow.player.currentTime(window.player.currentTime() + 10)\r\n\t\t\treturn false;\r\n\t\t}\r\n\t});\r\n\t\r\n\t\r\n\t//Slick slider\r\n\r\n\tvar slick_slider = $('.slide');\r\n\r\n\tfunction slickify(){\r\n\t\tslick_slider.slick({\r\n\t\t\tdots: false,\r\n\t\t\tinfinite: false,\r\n\t\t\tspeed: 300,\r\n\t\t\tslidesToShow: 1,\r\n\t\t\tadaptiveHeight: true,\r\n\t\t\taccessibility: false,\r\n\t\t\tmobileFirst: true,\r\n\t\t\tresponsive: [{\r\n\t\t\t\tbreakpoint: 1024,\r\n\t\t\t\tsettings: \"unslick\"\r\n\t\t\t}]\r\n\t\t});\r\n\t}\r\n\r\n\tslickify();\r\n\r\n\r\n\t$(window).resize(function(){\r\n\t var window_width = window.innerWidth;\r\n\t if (window_width < 1024) {\r\n\t slickify(); \r\n\t }\r\n\t if (window_width > 992) {\r\n\t $('body').removeClass('no_scroll');\r\n\t }\r\n\t if (window_width <= 992 && $('.navbar-header').is('.active')) {\r\n\t $('body').addClass('no_scroll');\r\n\t }\r\n\t});\r\n\r\n\t//bootstrap popover \r\n\r\n\t$(\"[data-toggle=popover]\").popover({\r\n\t\thtml:true\r\n\t})\r\n\r\n\t$(\".upvote-video\").click(function () {\r\n\t\tvote(1)\r\n\t});\r\n\r\n\t$(\".downvote-video\").click(function () {\r\n\t\tvote(-1)\r\n\t});\r\n\t\t\r\n\t//item page info expand \r\n\r\n\tvar about_expand_btn = $('#item .player_holder .about h3');\r\n\tvar about_opened = true;\r\n\r\n\tabout_expand_btn.click(function(){\r\n\t\tvar _this = $(this);\r\n\t\tvar _this_icon = _this.find('i');\r\n\r\n\t\tvar content = _this.parent().parent().find('.content');\r\n\r\n\t\tif (!about_opened) {\r\n\t\t\t_this_icon.addClass('fa-rotate-90');\r\n\t\t\tcontent.stop().slideDown(400);\r\n\t\t\tabout_opened = true;\r\n\t\t}\r\n\t\telse{\r\n\t\t\t_this_icon.removeClass('fa-rotate-90');\r\n\t\t\tcontent.stop().slideUp(400);\r\n\t\t\tabout_opened = false;\r\n\t\t}\r\n\t});\r\n\r\n\tattachVideoPreviewHandler();\r\n\t//duration buttons click\r\n\r\n\tvar duration_buttons = $('.filter .duration .btn');\r\n\r\n\tduration_buttons.bind(\"touchstart\", function(){\r\n\t\tvar _this = $(this);\r\n\t\tduration_buttons.blur();\r\n\r\n\t\tif(_this.is('.active')){\r\n\t\t\t_this.removeClass('active');\r\n\t\t}\r\n\t\telse{\r\n\t\t\t_this.addClass('active');\r\n\t\t}\r\n\t});\r\n\r\n\t// search expand temporary\r\n\r\n\tvar search = $('header > .top .search form .input_holder > input');\r\n\tvar results = search.parent().find('.results');\r\n\r\n\tsearch.focusin(function(){\r\n\t\tresults.slideDown(400);\r\n\t}).focusout(function(){\r\n\t\tresults.slideUp(400);\r\n\t})\r\n\r\n\t// Item page left side responsive style change \r\n\t/*\r\n\tvar related = $('#related');\r\n\tvar _window = $( window );\r\n\r\n\tfunction side_bar_video(){\r\n\t\tif(_window.width() < 975){\r\n\t\t\trelated.addClass(\"videos\");\r\n\t\t\trelated.attr('id',' ');\t\r\n\t\t}\r\n\t\telse{\r\n\t\t\trelated.removeClass(\"videos\");\r\n\t\t\trelated.attr('id', 'related');\r\n\t\t}\r\n\t};\r\n\tside_bar_video();\r\n\t\r\n\t_window.resize(function(){\r\n\t\tside_bar_video();\r\n\t});\r\n\t*/\r\n\r\n\t// header search bar and menu show/hide at xs\r\n\r\n\tvar search_show = $('header .search_btn');\r\n\tvar search_close = $('header .top .search .hide');\r\n\tvar search_bar = $('header .top .search');\r\n\r\n\tfunction search_display( options ){\r\n\t\tif( options == \"show\" ){\r\n\t\t\tsearch_bar.css('top', 0);\r\n\t\t\t_backdrop( options );\r\n\t\t}\r\n\t\tif( options == \"hide\"){\r\n\t\t\tsearch_bar.attr('style', '');\r\n\t\t\t_backdrop(options);\r\n\t\t}\r\n\t}\r\n\r\n\tsearch_show.click(function(){\r\n\t\tsearch_display('show');\r\n\t})\r\n\tsearch_close.click(function(){\r\n\t\tsearch_display('hide');\r\n\t})\r\n\r\n\tvar burger = $( 'header .navbar-header' );\r\n\tvar menu = $( 'header .menu' );\r\n\tvar body = $( 'body' );\r\n\r\n\tfunction burger_display( options ){\r\n\t\tif(burger.is('.active') || options == \"hide\"){\r\n\t\t\tmenu.css('right', '-75%' );\r\n\t\t\tburger.removeClass('active');\r\n\t\t\tbody.removeClass('no_scroll');\r\n\t\t\t_backdrop('hide');\r\n\t\t}\r\n\t\telse{\r\n\t\t\tmenu.css('right', '0');\r\n\t\t\tburger.addClass('active');\r\n\t\t\tbody.addClass('no_scroll');\r\n\t\t\t_backdrop('show');\r\n\t\t}\r\n\t}\r\n\r\n\tburger.click(function(){\r\n\t\tburger_display();\r\n\t});\r\n\r\n\tfunction _backdrop( options ){\r\n\t\tvar backdrop = $('.header_backdrop');\r\n\r\n\t\tif (options == \"show\") {\r\n\t\t\tbackdrop.stop().fadeIn(300);\r\n\t\t};\r\n\t\tif(options == \"hide\"){\r\n\t\t\tbackdrop.stop().fadeOut(300);\r\n\t\t};\r\n\r\n\t\tbackdrop.on(\"mousedown\", function(){\r\n\t\t\tburger_display('hide');\r\n\t\t\tsearch_display('hide');\r\n\t\t})\r\n\t}\r\n\r\n\r\n //Videos change view\r\n\r\n var change_view_btn = $('.title span.change_view');\r\n\tvar small_size_class = \"col-xs-4 col-sm-3\";\r\n\tvar big_size_class = \"col-xs-6 col-sm-4\";\r\n\tvar small_icon = \"fa-th\";\r\n\tvar big_icon = \"fa-th-large\";\r\n\r\n change_view_btn.click(function(){\r\n \tvar _this = $(this);\r\n \tvar video_block = _this.parent().parent();\r\n \tvar videos = video_block.find('.video');\r\n\r\n \tif(video_block.is('.grid')){\r\n \t\tvideo_block.removeClass('grid');\r\n \t\tvideos.removeClass(small_size_class).addClass(big_size_class);\r\n \t\t_this.find('i').removeClass(big_icon).addClass(small_icon);\r\n \t\tslick_slider.slick('setPosition');\r\n \t}\r\n \telse{\r\n \t\tvideo_block.addClass('grid')\r\n \t\tvideos.removeClass(big_size_class).addClass(small_size_class);\r\n \t\t_this.find('i').removeClass(small_icon).addClass(big_icon);\r\n \t\tslick_slider.slick('setPosition');\r\n \t}\r\n });\r\n \r\n\tvar show_more_videos = $('.more');\r\n\t\r\n\tshow_more_videos.click(showMore);\r\n});\r\nvar videoPlayer = null;\r\nfunction getVideoPreview() {\r\n\tif (videoPlayer == null) {\r\n\t\tvideoPlayer = document.createElement(\"video\");\r\n\t\t\r\n\t\t$(videoPlayer).prop(\"muted\", true);\r\n\t\t$(videoPlayer).prop(\"loop\", true);\r\n\t\t$(videoPlayer).prop(\"autoplay\", true);\r\n\r\n\t\tvideoPlayer.setAttribute('webkit-playsinline', 'webkit-playsinline');\r\n\t\tvideoPlayer.setAttribute('playsinline', 'playsinline');\r\n\t\t$(videoPlayer).addClass(\"vid\");\r\n\t}\r\n\treturn videoPlayer;\r\n}\r\n\r\nfunction showMore() {\r\n\tvar show_more_videos = $('.more');\r\n\tvar url = show_more_videos.attr(\"data-key\");\r\n\tshow_more_videos.hide();\r\n\t$.get(url, function (data) {\r\n\t\tshow_more_videos.replaceWith(data);\r\n\t\tattachVideoPreviewHandler();\r\n\t\t$('.more').click(showMore);\r\n\t});\r\n}\r\n\r\nfunction attachVideoPreviewHandler() {\r\n\t$('.video').off('mouseenter touchstart').on('mouseenter touchstart',\r\n\t\tfunction (el) {\r\n\t\t\tvar element = getVideoPreview();\r\n\t\t\t$(this).find(\"a\").append(element);\r\n\t\t\t$(element).css(\"top\", $(this).find(\"img\").position().top);\r\n\t\t\t$(element).css(\"left\", $(this).find(\"img\").position().left);\r\n\t\t\t$(element).css(\"width\", Math.floor($(this).find(\"img\").width()));\r\n\t\t\t$(element).css(\"height\", $(this).find(\"img\").height());\r\n\t\t\t$(element).attr(\"src\", $(this).attr(\"data-cdn\") +\"/\" +$(this).attr(\"data-key\") + \"/pv.mp4\");\r\n\t\t}\r\n\t);\r\n\r\n\t$('.video').off('mouseleave').on('mouseleave',\r\n\t\tfunction (el) {\r\n\t\t\t$(getVideoPreview()).detach();\r\n\t\t}\r\n\t);\r\n}\r\n\r\nfunction vote(val) {\r\n\t$.post($(\".video-vote\").attr(\"data-key\"), { value: val })\r\n\t\t.done(function (data) {\r\n\t\t\t$(\".rate-value\").html(data);\r\n\t\t})\r\n\t$(\".upvote-video\").off(\"click\");\r\n\t\t\r\n\t$(\".downvote-video\").off(\"click\");\r\n}\r\n\r\nfunction sendView() {\r\n\t$.post($(\".video-view\").attr(\"data-key\"), { value: \"Play\" })\r\n\t\t.done(function (data) {\r\n\t\t\t\r\n\t\t})\r\n}\r\n\r\nfunction safeParseInt(value, defaultValue = 0) {\r\n\tconst parsed = parseInt(value, 10);\r\n\treturn isNaN(parsed) ? defaultValue : parsed;\r\n}","/*\r\n * Bootstrap v3.3.5 (http://getbootstrap.com)\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under the MIT license\r\n */\r\n\r\nif (typeof jQuery === 'undefined') {\r\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\r\n}\r\n\r\n+function ($) {\r\n 'use strict';\r\n var version = $.fn.jquery.split(' ')[0].split('.')\r\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {\r\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher')\r\n }\r\n}(jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: transition.js v3.3.5\r\n * http://getbootstrap.com/javascript/#transitions\r\n * ========================================================================\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\r\n // ============================================================\r\n\r\n function transitionEnd() {\r\n var el = document.createElement('bootstrap')\r\n\r\n var transEndEventNames = {\r\n WebkitTransition : 'webkitTransitionEnd',\r\n MozTransition : 'transitionend',\r\n OTransition : 'oTransitionEnd otransitionend',\r\n transition : 'transitionend'\r\n }\r\n\r\n for (var name in transEndEventNames) {\r\n if (el.style[name] !== undefined) {\r\n return { end: transEndEventNames[name] }\r\n }\r\n }\r\n\r\n return false // explicit for ie8 ( ._.)\r\n }\r\n\r\n // http://blog.alexmaccaw.com/css-transitions\r\n $.fn.emulateTransitionEnd = function (duration) {\r\n var called = false\r\n var $el = this\r\n $(this).one('bsTransitionEnd', function () { called = true })\r\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\r\n setTimeout(callback, duration)\r\n return this\r\n }\r\n\r\n $(function () {\r\n $.support.transition = transitionEnd()\r\n\r\n if (!$.support.transition) return\r\n\r\n $.event.special.bsTransitionEnd = {\r\n bindType: $.support.transition.end,\r\n delegateType: $.support.transition.end,\r\n handle: function (e) {\r\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\r\n }\r\n }\r\n })\r\n\r\n}(jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: alert.js v3.3.5\r\n * http://getbootstrap.com/javascript/#alerts\r\n * ========================================================================\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // ALERT CLASS DEFINITION\r\n // ======================\r\n\r\n var dismiss = '[data-dismiss=\"alert\"]'\r\n var Alert = function (el) {\r\n $(el).on('click', dismiss, this.close)\r\n }\r\n\r\n Alert.VERSION = '3.3.5'\r\n\r\n Alert.TRANSITION_DURATION = 150\r\n\r\n Alert.prototype.close = function (e) {\r\n var $this = $(this)\r\n var selector = $this.attr('data-target')\r\n\r\n if (!selector) {\r\n selector = $this.attr('href')\r\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\r\n }\r\n\r\n var $parent = $(selector)\r\n\r\n if (e) e.preventDefault()\r\n\r\n if (!$parent.length) {\r\n $parent = $this.closest('.alert')\r\n }\r\n\r\n $parent.trigger(e = $.Event('close.bs.alert'))\r\n\r\n if (e.isDefaultPrevented()) return\r\n\r\n $parent.removeClass('in')\r\n\r\n function removeElement() {\r\n // detach from parent, fire event then clean up data\r\n $parent.detach().trigger('closed.bs.alert').remove()\r\n }\r\n\r\n $.support.transition && $parent.hasClass('fade') ?\r\n $parent\r\n .one('bsTransitionEnd', removeElement)\r\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\r\n removeElement()\r\n }\r\n\r\n\r\n // ALERT PLUGIN DEFINITION\r\n // =======================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.alert')\r\n\r\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\r\n if (typeof option == 'string') data[option].call($this)\r\n })\r\n }\r\n\r\n var old = $.fn.alert\r\n\r\n $.fn.alert = Plugin\r\n $.fn.alert.Constructor = Alert\r\n\r\n\r\n // ALERT NO CONFLICT\r\n // =================\r\n\r\n $.fn.alert.noConflict = function () {\r\n $.fn.alert = old\r\n return this\r\n }\r\n\r\n\r\n // ALERT DATA-API\r\n // ==============\r\n\r\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\r\n\r\n}(jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: button.js v3.3.5\r\n * http://getbootstrap.com/javascript/#buttons\r\n * ========================================================================\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // BUTTON PUBLIC CLASS DEFINITION\r\n // ==============================\r\n\r\n var Button = function (element, options) {\r\n this.$element = $(element)\r\n this.options = $.extend({}, Button.DEFAULTS, options)\r\n this.isLoading = false\r\n }\r\n\r\n Button.VERSION = '3.3.5'\r\n\r\n Button.DEFAULTS = {\r\n loadingText: 'loading...'\r\n }\r\n\r\n Button.prototype.setState = function (state) {\r\n var d = 'disabled'\r\n var $el = this.$element\r\n var val = $el.is('input') ? 'val' : 'html'\r\n var data = $el.data()\r\n\r\n state += 'Text'\r\n\r\n if (data.resetText == null) $el.data('resetText', $el[val]())\r\n\r\n // push to event loop to allow forms to submit\r\n setTimeout($.proxy(function () {\r\n $el[val](data[state] == null ? this.options[state] : data[state])\r\n\r\n if (state == 'loadingText') {\r\n this.isLoading = true\r\n $el.addClass(d).attr(d, d)\r\n } else if (this.isLoading) {\r\n this.isLoading = false\r\n $el.removeClass(d).removeAttr(d)\r\n }\r\n }, this), 0)\r\n }\r\n\r\n Button.prototype.toggle = function () {\r\n var changed = true\r\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\r\n\r\n if ($parent.length) {\r\n var $input = this.$element.find('input')\r\n if ($input.prop('type') == 'radio') {\r\n if ($input.prop('checked')) changed = false\r\n $parent.find('.active').removeClass('active')\r\n this.$element.addClass('active')\r\n } else if ($input.prop('type') == 'checkbox') {\r\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\r\n this.$element.toggleClass('active')\r\n }\r\n $input.prop('checked', this.$element.hasClass('active'))\r\n if (changed) $input.trigger('change')\r\n } else {\r\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\r\n this.$element.toggleClass('active')\r\n }\r\n }\r\n\r\n\r\n // BUTTON PLUGIN DEFINITION\r\n // ========================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.button')\r\n var options = typeof option == 'object' && option\r\n\r\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\r\n\r\n if (option == 'toggle') data.toggle()\r\n else if (option) data.setState(option)\r\n })\r\n }\r\n\r\n var old = $.fn.button\r\n\r\n $.fn.button = Plugin\r\n $.fn.button.Constructor = Button\r\n\r\n\r\n // BUTTON NO CONFLICT\r\n // ==================\r\n\r\n $.fn.button.noConflict = function () {\r\n $.fn.button = old\r\n return this\r\n }\r\n\r\n\r\n // BUTTON DATA-API\r\n // ===============\r\n\r\n $(document)\r\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\r\n var $btn = $(e.target)\r\n if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\r\n Plugin.call($btn, 'toggle')\r\n if (!($(e.target).is('input[type=\"radio\"]') || $(e.target).is('input[type=\"checkbox\"]'))) e.preventDefault()\r\n })\r\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\r\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\r\n })\r\n\r\n}(jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: carousel.js v3.3.5\r\n * http://getbootstrap.com/javascript/#carousel\r\n * ========================================================================\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // CAROUSEL CLASS DEFINITION\r\n // =========================\r\n\r\n var Carousel = function (element, options) {\r\n this.$element = $(element)\r\n this.$indicators = this.$element.find('.carousel-indicators')\r\n this.options = options\r\n this.paused = null\r\n this.sliding = null\r\n this.interval = null\r\n this.$active = null\r\n this.$items = null\r\n\r\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\r\n\r\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\r\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\r\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\r\n }\r\n\r\n Carousel.VERSION = '3.3.5'\r\n\r\n Carousel.TRANSITION_DURATION = 600\r\n\r\n Carousel.DEFAULTS = {\r\n interval: 5000,\r\n pause: 'hover',\r\n wrap: true,\r\n keyboard: true\r\n }\r\n\r\n Carousel.prototype.keydown = function (e) {\r\n if (/input|textarea/i.test(e.target.tagName)) return\r\n switch (e.which) {\r\n case 37: this.prev(); break\r\n case 39: this.next(); break\r\n default: return\r\n }\r\n\r\n e.preventDefault()\r\n }\r\n\r\n Carousel.prototype.cycle = function (e) {\r\n e || (this.paused = false)\r\n\r\n this.interval && clearInterval(this.interval)\r\n\r\n this.options.interval\r\n && !this.paused\r\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\r\n\r\n return this\r\n }\r\n\r\n Carousel.prototype.getItemIndex = function (item) {\r\n this.$items = item.parent().children('.item')\r\n return this.$items.index(item || this.$active)\r\n }\r\n\r\n Carousel.prototype.getItemForDirection = function (direction, active) {\r\n var activeIndex = this.getItemIndex(active)\r\n var willWrap = (direction == 'prev' && activeIndex === 0)\r\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\r\n if (willWrap && !this.options.wrap) return active\r\n var delta = direction == 'prev' ? -1 : 1\r\n var itemIndex = (activeIndex + delta) % this.$items.length\r\n return this.$items.eq(itemIndex)\r\n }\r\n\r\n Carousel.prototype.to = function (pos) {\r\n var that = this\r\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\r\n\r\n if (pos > (this.$items.length - 1) || pos < 0) return\r\n\r\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\r\n if (activeIndex == pos) return this.pause().cycle()\r\n\r\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\r\n }\r\n\r\n Carousel.prototype.pause = function (e) {\r\n e || (this.paused = true)\r\n\r\n if (this.$element.find('.next, .prev').length && $.support.transition) {\r\n this.$element.trigger($.support.transition.end)\r\n this.cycle(true)\r\n }\r\n\r\n this.interval = clearInterval(this.interval)\r\n\r\n return this\r\n }\r\n\r\n Carousel.prototype.next = function () {\r\n if (this.sliding) return\r\n return this.slide('next')\r\n }\r\n\r\n Carousel.prototype.prev = function () {\r\n if (this.sliding) return\r\n return this.slide('prev')\r\n }\r\n\r\n Carousel.prototype.slide = function (type, next) {\r\n var $active = this.$element.find('.item.active')\r\n var $next = next || this.getItemForDirection(type, $active)\r\n var isCycling = this.interval\r\n var direction = type == 'next' ? 'left' : 'right'\r\n var that = this\r\n\r\n if ($next.hasClass('active')) return (this.sliding = false)\r\n\r\n var relatedTarget = $next[0]\r\n var slideEvent = $.Event('slide.bs.carousel', {\r\n relatedTarget: relatedTarget,\r\n direction: direction\r\n })\r\n this.$element.trigger(slideEvent)\r\n if (slideEvent.isDefaultPrevented()) return\r\n\r\n this.sliding = true\r\n\r\n isCycling && this.pause()\r\n\r\n if (this.$indicators.length) {\r\n this.$indicators.find('.active').removeClass('active')\r\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\r\n $nextIndicator && $nextIndicator.addClass('active')\r\n }\r\n\r\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\r\n if ($.support.transition && this.$element.hasClass('slide')) {\r\n $next.addClass(type)\r\n $next[0].offsetWidth // force reflow\r\n $active.addClass(direction)\r\n $next.addClass(direction)\r\n $active\r\n .one('bsTransitionEnd', function () {\r\n $next.removeClass([type, direction].join(' ')).addClass('active')\r\n $active.removeClass(['active', direction].join(' '))\r\n that.sliding = false\r\n setTimeout(function () {\r\n that.$element.trigger(slidEvent)\r\n }, 0)\r\n })\r\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\r\n } else {\r\n $active.removeClass('active')\r\n $next.addClass('active')\r\n this.sliding = false\r\n this.$element.trigger(slidEvent)\r\n }\r\n\r\n isCycling && this.cycle()\r\n\r\n return this\r\n }\r\n\r\n\r\n // CAROUSEL PLUGIN DEFINITION\r\n // ==========================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.carousel')\r\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n var action = typeof option == 'string' ? option : options.slide\r\n\r\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\r\n if (typeof option == 'number') data.to(option)\r\n else if (action) data[action]()\r\n else if (options.interval) data.pause().cycle()\r\n })\r\n }\r\n\r\n var old = $.fn.carousel\r\n\r\n $.fn.carousel = Plugin\r\n $.fn.carousel.Constructor = Carousel\r\n\r\n\r\n // CAROUSEL NO CONFLICT\r\n // ====================\r\n\r\n $.fn.carousel.noConflict = function () {\r\n $.fn.carousel = old\r\n return this\r\n }\r\n\r\n\r\n // CAROUSEL DATA-API\r\n // =================\r\n\r\n var clickHandler = function (e) {\r\n var href\r\n var $this = $(this)\r\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\r\n if (!$target.hasClass('carousel')) return\r\n var options = $.extend({}, $target.data(), $this.data())\r\n var slideIndex = $this.attr('data-slide-to')\r\n if (slideIndex) options.interval = false\r\n\r\n Plugin.call($target, options)\r\n\r\n if (slideIndex) {\r\n $target.data('bs.carousel').to(slideIndex)\r\n }\r\n\r\n e.preventDefault()\r\n }\r\n\r\n $(document)\r\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\r\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\r\n\r\n $(window).on('load', function () {\r\n $('[data-ride=\"carousel\"]').each(function () {\r\n var $carousel = $(this)\r\n Plugin.call($carousel, $carousel.data())\r\n })\r\n })\r\n\r\n}(jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: collapse.js v3.3.5\r\n * http://getbootstrap.com/javascript/#collapse\r\n * ========================================================================\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // COLLAPSE PUBLIC CLASS DEFINITION\r\n // ================================\r\n\r\n var Collapse = function (element, options) {\r\n this.$element = $(element)\r\n this.options = $.extend({}, Collapse.DEFAULTS, options)\r\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\r\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\r\n this.transitioning = null\r\n\r\n if (this.options.parent) {\r\n this.$parent = this.getParent()\r\n } else {\r\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\r\n }\r\n\r\n if (this.options.toggle) this.toggle()\r\n }\r\n\r\n Collapse.VERSION = '3.3.5'\r\n\r\n Collapse.TRANSITION_DURATION = 350\r\n\r\n Collapse.DEFAULTS = {\r\n toggle: true\r\n }\r\n\r\n Collapse.prototype.dimension = function () {\r\n var hasWidth = this.$element.hasClass('width')\r\n return hasWidth ? 'width' : 'height'\r\n }\r\n\r\n Collapse.prototype.show = function () {\r\n if (this.transitioning || this.$element.hasClass('in')) return\r\n\r\n var activesData\r\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\r\n\r\n if (actives && actives.length) {\r\n activesData = actives.data('bs.collapse')\r\n if (activesData && activesData.transitioning) return\r\n }\r\n\r\n var startEvent = $.Event('show.bs.collapse')\r\n this.$element.trigger(startEvent)\r\n if (startEvent.isDefaultPrevented()) return\r\n\r\n if (actives && actives.length) {\r\n Plugin.call(actives, 'hide')\r\n activesData || actives.data('bs.collapse', null)\r\n }\r\n\r\n var dimension = this.dimension()\r\n\r\n this.$element\r\n .removeClass('collapse')\r\n .addClass('collapsing')[dimension](0)\r\n .attr('aria-expanded', true)\r\n\r\n this.$trigger\r\n .removeClass('collapsed')\r\n .attr('aria-expanded', true)\r\n\r\n this.transitioning = 1\r\n\r\n var complete = function () {\r\n this.$element\r\n .removeClass('collapsing')\r\n .addClass('collapse in')[dimension]('')\r\n this.transitioning = 0\r\n this.$element\r\n .trigger('shown.bs.collapse')\r\n }\r\n\r\n if (!$.support.transition) return complete.call(this)\r\n\r\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\r\n\r\n this.$element\r\n .one('bsTransitionEnd', $.proxy(complete, this))\r\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\r\n }\r\n\r\n Collapse.prototype.hide = function () {\r\n if (this.transitioning || !this.$element.hasClass('in')) return\r\n\r\n var startEvent = $.Event('hide.bs.collapse')\r\n this.$element.trigger(startEvent)\r\n if (startEvent.isDefaultPrevented()) return\r\n\r\n var dimension = this.dimension()\r\n\r\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\r\n\r\n this.$element\r\n .addClass('collapsing')\r\n .removeClass('collapse in')\r\n .attr('aria-expanded', false)\r\n\r\n this.$trigger\r\n .addClass('collapsed')\r\n .attr('aria-expanded', false)\r\n\r\n this.transitioning = 1\r\n\r\n var complete = function () {\r\n this.transitioning = 0\r\n this.$element\r\n .removeClass('collapsing')\r\n .addClass('collapse')\r\n .trigger('hidden.bs.collapse')\r\n }\r\n\r\n if (!$.support.transition) return complete.call(this)\r\n\r\n this.$element\r\n [dimension](0)\r\n .one('bsTransitionEnd', $.proxy(complete, this))\r\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\r\n }\r\n\r\n Collapse.prototype.toggle = function () {\r\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\r\n }\r\n\r\n Collapse.prototype.getParent = function () {\r\n return $(this.options.parent)\r\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\r\n .each($.proxy(function (i, element) {\r\n var $element = $(element)\r\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\r\n }, this))\r\n .end()\r\n }\r\n\r\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\r\n var isOpen = $element.hasClass('in')\r\n\r\n $element.attr('aria-expanded', isOpen)\r\n $trigger\r\n .toggleClass('collapsed', !isOpen)\r\n .attr('aria-expanded', isOpen)\r\n }\r\n\r\n function getTargetFromTrigger($trigger) {\r\n var href\r\n var target = $trigger.attr('data-target')\r\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\r\n\r\n return $(target)\r\n }\r\n\r\n\r\n // COLLAPSE PLUGIN DEFINITION\r\n // ==========================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.collapse')\r\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n\r\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\r\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n var old = $.fn.collapse\r\n\r\n $.fn.collapse = Plugin\r\n $.fn.collapse.Constructor = Collapse\r\n\r\n\r\n // COLLAPSE NO CONFLICT\r\n // ====================\r\n\r\n $.fn.collapse.noConflict = function () {\r\n $.fn.collapse = old\r\n return this\r\n }\r\n\r\n\r\n // COLLAPSE DATA-API\r\n // =================\r\n\r\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\r\n var $this = $(this)\r\n\r\n if (!$this.attr('data-target')) e.preventDefault()\r\n\r\n var $target = getTargetFromTrigger($this)\r\n var data = $target.data('bs.collapse')\r\n var option = data ? 'toggle' : $this.data()\r\n\r\n Plugin.call($target, option)\r\n })\r\n\r\n}(jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: dropdown.js v3.3.5\r\n * http://getbootstrap.com/javascript/#dropdowns\r\n * ========================================================================\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // DROPDOWN CLASS DEFINITION\r\n // =========================\r\n\r\n var backdrop = '.dropdown-backdrop'\r\n var toggle = '[data-toggle=\"dropdown\"]'\r\n var Dropdown = function (element) {\r\n $(element).on('click.bs.dropdown', this.toggle)\r\n }\r\n\r\n Dropdown.VERSION = '3.3.5'\r\n\r\n function getParent($this) {\r\n var selector = $this.attr('data-target')\r\n\r\n if (!selector) {\r\n selector = $this.attr('href')\r\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\r\n }\r\n\r\n var $parent = selector && $(selector)\r\n\r\n return $parent && $parent.length ? $parent : $this.parent()\r\n }\r\n\r\n function clearMenus(e) {\r\n if (e && e.which === 3) return\r\n $(backdrop).remove()\r\n $(toggle).each(function () {\r\n var $this = $(this)\r\n var $parent = getParent($this)\r\n var relatedTarget = { relatedTarget: this }\r\n\r\n if (!$parent.hasClass('open')) return\r\n\r\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\r\n\r\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\r\n\r\n if (e.isDefaultPrevented()) return\r\n\r\n $this.attr('aria-expanded', 'false')\r\n $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)\r\n })\r\n }\r\n\r\n Dropdown.prototype.toggle = function (e) {\r\n var $this = $(this)\r\n\r\n if ($this.is('.disabled, :disabled')) return\r\n\r\n var $parent = getParent($this)\r\n var isActive = $parent.hasClass('open')\r\n\r\n clearMenus()\r\n\r\n if (!isActive) {\r\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\r\n // if mobile we use a backdrop because click events don't delegate\r\n $(document.createElement('div'))\r\n .addClass('dropdown-backdrop')\r\n .insertAfter($(this))\r\n .on('click', clearMenus)\r\n }\r\n\r\n var relatedTarget = { relatedTarget: this }\r\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\r\n\r\n if (e.isDefaultPrevented()) return\r\n\r\n $this\r\n .trigger('focus')\r\n .attr('aria-expanded', 'true')\r\n\r\n $parent\r\n .toggleClass('open')\r\n .trigger('shown.bs.dropdown', relatedTarget)\r\n }\r\n\r\n return false\r\n }\r\n\r\n Dropdown.prototype.keydown = function (e) {\r\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\r\n\r\n var $this = $(this)\r\n\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n if ($this.is('.disabled, :disabled')) return\r\n\r\n var $parent = getParent($this)\r\n var isActive = $parent.hasClass('open')\r\n\r\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\r\n if (e.which == 27) $parent.find(toggle).trigger('focus')\r\n return $this.trigger('click')\r\n }\r\n\r\n var desc = ' li:not(.disabled):visible a'\r\n var $items = $parent.find('.dropdown-menu' + desc)\r\n\r\n if (!$items.length) return\r\n\r\n var index = $items.index(e.target)\r\n\r\n if (e.which == 38 && index > 0) index-- // up\r\n if (e.which == 40 && index < $items.length - 1) index++ // down\r\n if (!~index) index = 0\r\n\r\n $items.eq(index).trigger('focus')\r\n }\r\n\r\n\r\n // DROPDOWN PLUGIN DEFINITION\r\n // ==========================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.dropdown')\r\n\r\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\r\n if (typeof option == 'string') data[option].call($this)\r\n })\r\n }\r\n\r\n var old = $.fn.dropdown\r\n\r\n $.fn.dropdown = Plugin\r\n $.fn.dropdown.Constructor = Dropdown\r\n\r\n\r\n // DROPDOWN NO CONFLICT\r\n // ====================\r\n\r\n $.fn.dropdown.noConflict = function () {\r\n $.fn.dropdown = old\r\n return this\r\n }\r\n\r\n\r\n // APPLY TO STANDARD DROPDOWN ELEMENTS\r\n // ===================================\r\n\r\n $(document)\r\n .on('click.bs.dropdown.data-api', clearMenus)\r\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\r\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\r\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\r\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\r\n\r\n}(jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: modal.js v3.3.5\r\n * http://getbootstrap.com/javascript/#modals\r\n * ========================================================================\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // MODAL CLASS DEFINITION\r\n // ======================\r\n\r\n var Modal = function (element, options) {\r\n this.options = options\r\n this.$body = $(document.body)\r\n this.$element = $(element)\r\n this.$dialog = this.$element.find('.modal-dialog')\r\n this.$backdrop = null\r\n this.isShown = null\r\n this.originalBodyPad = null\r\n this.scrollbarWidth = 0\r\n this.ignoreBackdropClick = false\r\n\r\n if (this.options.remote) {\r\n this.$element\r\n .find('.modal-content')\r\n .load(this.options.remote, $.proxy(function () {\r\n this.$element.trigger('loaded.bs.modal')\r\n }, this))\r\n }\r\n }\r\n\r\n Modal.VERSION = '3.3.5'\r\n\r\n Modal.TRANSITION_DURATION = 300\r\n Modal.BACKDROP_TRANSITION_DURATION = 150\r\n\r\n Modal.DEFAULTS = {\r\n backdrop: true,\r\n keyboard: true,\r\n show: true\r\n }\r\n\r\n Modal.prototype.toggle = function (_relatedTarget) {\r\n return this.isShown ? this.hide() : this.show(_relatedTarget)\r\n }\r\n\r\n Modal.prototype.show = function (_relatedTarget) {\r\n var that = this\r\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\r\n\r\n this.$element.trigger(e)\r\n\r\n if (this.isShown || e.isDefaultPrevented()) return\r\n\r\n this.isShown = true\r\n\r\n this.checkScrollbar()\r\n this.setScrollbar()\r\n this.$body.addClass('modal-open')\r\n\r\n this.escape()\r\n this.resize()\r\n\r\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\r\n\r\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\r\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\r\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\r\n })\r\n })\r\n\r\n this.backdrop(function () {\r\n var transition = $.support.transition && that.$element.hasClass('fade')\r\n\r\n if (!that.$element.parent().length) {\r\n that.$element.appendTo(that.$body) // don't move modals dom position\r\n }\r\n\r\n that.$element\r\n .show()\r\n .scrollTop(0)\r\n\r\n that.adjustDialog()\r\n\r\n if (transition) {\r\n that.$element[0].offsetWidth // force reflow\r\n }\r\n\r\n that.$element.addClass('in')\r\n\r\n that.enforceFocus()\r\n\r\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\r\n\r\n transition ?\r\n that.$dialog // wait for modal to slide in\r\n .one('bsTransitionEnd', function () {\r\n that.$element.trigger('focus').trigger(e)\r\n })\r\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\r\n that.$element.trigger('focus').trigger(e)\r\n })\r\n }\r\n\r\n Modal.prototype.hide = function (e) {\r\n if (e) e.preventDefault()\r\n\r\n e = $.Event('hide.bs.modal')\r\n\r\n this.$element.trigger(e)\r\n\r\n if (!this.isShown || e.isDefaultPrevented()) return\r\n\r\n this.isShown = false\r\n\r\n this.escape()\r\n this.resize()\r\n\r\n $(document).off('focusin.bs.modal')\r\n\r\n this.$element\r\n .removeClass('in')\r\n .off('click.dismiss.bs.modal')\r\n .off('mouseup.dismiss.bs.modal')\r\n\r\n this.$dialog.off('mousedown.dismiss.bs.modal')\r\n\r\n $.support.transition && this.$element.hasClass('fade') ?\r\n this.$element\r\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\r\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\r\n this.hideModal()\r\n }\r\n\r\n Modal.prototype.enforceFocus = function () {\r\n $(document)\r\n .off('focusin.bs.modal') // guard against infinite focus loop\r\n .on('focusin.bs.modal', $.proxy(function (e) {\r\n if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\r\n this.$element.trigger('focus')\r\n }\r\n }, this))\r\n }\r\n\r\n Modal.prototype.escape = function () {\r\n if (this.isShown && this.options.keyboard) {\r\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\r\n e.which == 27 && this.hide()\r\n }, this))\r\n } else if (!this.isShown) {\r\n this.$element.off('keydown.dismiss.bs.modal')\r\n }\r\n }\r\n\r\n Modal.prototype.resize = function () {\r\n if (this.isShown) {\r\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\r\n } else {\r\n $(window).off('resize.bs.modal')\r\n }\r\n }\r\n\r\n Modal.prototype.hideModal = function () {\r\n var that = this\r\n this.$element.hide()\r\n this.backdrop(function () {\r\n that.$body.removeClass('modal-open')\r\n that.resetAdjustments()\r\n that.resetScrollbar()\r\n that.$element.trigger('hidden.bs.modal')\r\n })\r\n }\r\n\r\n Modal.prototype.removeBackdrop = function () {\r\n this.$backdrop && this.$backdrop.remove()\r\n this.$backdrop = null\r\n }\r\n\r\n Modal.prototype.backdrop = function (callback) {\r\n var that = this\r\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\r\n\r\n if (this.isShown && this.options.backdrop) {\r\n var doAnimate = $.support.transition && animate\r\n\r\n this.$backdrop = $(document.createElement('div'))\r\n .addClass('modal-backdrop ' + animate)\r\n .appendTo(this.$body)\r\n\r\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\r\n if (this.ignoreBackdropClick) {\r\n this.ignoreBackdropClick = false\r\n return\r\n }\r\n if (e.target !== e.currentTarget) return\r\n this.options.backdrop == 'static'\r\n ? this.$element[0].focus()\r\n : this.hide()\r\n }, this))\r\n\r\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\r\n\r\n this.$backdrop.addClass('in')\r\n\r\n if (!callback) return\r\n\r\n doAnimate ?\r\n this.$backdrop\r\n .one('bsTransitionEnd', callback)\r\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\r\n callback()\r\n\r\n } else if (!this.isShown && this.$backdrop) {\r\n this.$backdrop.removeClass('in')\r\n\r\n var callbackRemove = function () {\r\n that.removeBackdrop()\r\n callback && callback()\r\n }\r\n $.support.transition && this.$element.hasClass('fade') ?\r\n this.$backdrop\r\n .one('bsTransitionEnd', callbackRemove)\r\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\r\n callbackRemove()\r\n\r\n } else if (callback) {\r\n callback()\r\n }\r\n }\r\n\r\n // these following methods are used to handle overflowing modals\r\n\r\n Modal.prototype.handleUpdate = function () {\r\n this.adjustDialog()\r\n }\r\n\r\n Modal.prototype.adjustDialog = function () {\r\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\r\n\r\n this.$element.css({\r\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\r\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\r\n })\r\n }\r\n\r\n Modal.prototype.resetAdjustments = function () {\r\n this.$element.css({\r\n paddingLeft: '',\r\n paddingRight: ''\r\n })\r\n }\r\n\r\n Modal.prototype.checkScrollbar = function () {\r\n var fullWindowWidth = window.innerWidth\r\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\r\n var documentElementRect = document.documentElement.getBoundingClientRect()\r\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\r\n }\r\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\r\n this.scrollbarWidth = this.measureScrollbar()\r\n }\r\n\r\n Modal.prototype.setScrollbar = function () {\r\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\r\n this.originalBodyPad = document.body.style.paddingRight || ''\r\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\r\n }\r\n\r\n Modal.prototype.resetScrollbar = function () {\r\n this.$body.css('padding-right', this.originalBodyPad)\r\n }\r\n\r\n Modal.prototype.measureScrollbar = function () { // thx walsh\r\n var scrollDiv = document.createElement('div')\r\n scrollDiv.className = 'modal-scrollbar-measure'\r\n this.$body.append(scrollDiv)\r\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\r\n this.$body[0].removeChild(scrollDiv)\r\n return scrollbarWidth\r\n }\r\n\r\n\r\n // MODAL PLUGIN DEFINITION\r\n // =======================\r\n\r\n function Plugin(option, _relatedTarget) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.modal')\r\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n\r\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\r\n if (typeof option == 'string') data[option](_relatedTarget)\r\n else if (options.show) data.show(_relatedTarget)\r\n })\r\n }\r\n\r\n var old = $.fn.modal\r\n\r\n $.fn.modal = Plugin\r\n $.fn.modal.Constructor = Modal\r\n\r\n\r\n // MODAL NO CONFLICT\r\n // =================\r\n\r\n $.fn.modal.noConflict = function () {\r\n $.fn.modal = old\r\n return this\r\n }\r\n\r\n\r\n // MODAL DATA-API\r\n // ==============\r\n\r\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\r\n var $this = $(this)\r\n var href = $this.attr('href')\r\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\r\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\r\n\r\n if ($this.is('a')) e.preventDefault()\r\n\r\n $target.one('show.bs.modal', function (showEvent) {\r\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\r\n $target.one('hidden.bs.modal', function () {\r\n $this.is(':visible') && $this.trigger('focus')\r\n })\r\n })\r\n Plugin.call($target, option, this)\r\n })\r\n\r\n}(jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: tooltip.js v3.3.5\r\n * http://getbootstrap.com/javascript/#tooltip\r\n * Inspired by the original jQuery.tipsy by Jason Frame\r\n * ========================================================================\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // TOOLTIP PUBLIC CLASS DEFINITION\r\n // ===============================\r\n\r\n var Tooltip = function (element, options) {\r\n this.type = null\r\n this.options = null\r\n this.enabled = null\r\n this.timeout = null\r\n this.hoverState = null\r\n this.$element = null\r\n this.inState = null\r\n\r\n this.init('tooltip', element, options)\r\n }\r\n\r\n Tooltip.VERSION = '3.3.5'\r\n\r\n Tooltip.TRANSITION_DURATION = 150\r\n\r\n Tooltip.DEFAULTS = {\r\n animation: true,\r\n placement: 'top',\r\n selector: false,\r\n template: '
',\r\n trigger: 'hover focus',\r\n title: '',\r\n delay: 0,\r\n html: false,\r\n container: false,\r\n viewport: {\r\n selector: 'body',\r\n padding: 0\r\n }\r\n }\r\n\r\n Tooltip.prototype.init = function (type, element, options) {\r\n this.enabled = true\r\n this.type = type\r\n this.$element = $(element)\r\n this.options = this.getOptions(options)\r\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\r\n this.inState = { click: false, hover: false, focus: false }\r\n\r\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\r\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\r\n }\r\n\r\n var triggers = this.options.trigger.split(' ')\r\n\r\n for (var i = triggers.length; i--;) {\r\n var trigger = triggers[i]\r\n\r\n if (trigger == 'click') {\r\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\r\n } else if (trigger != 'manual') {\r\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\r\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\r\n\r\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\r\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\r\n }\r\n }\r\n\r\n this.options.selector ?\r\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\r\n this.fixTitle()\r\n }\r\n\r\n Tooltip.prototype.getDefaults = function () {\r\n return Tooltip.DEFAULTS\r\n }\r\n\r\n Tooltip.prototype.getOptions = function (options) {\r\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\r\n\r\n if (options.delay && typeof options.delay == 'number') {\r\n options.delay = {\r\n show: options.delay,\r\n hide: options.delay\r\n }\r\n }\r\n\r\n return options\r\n }\r\n\r\n Tooltip.prototype.getDelegateOptions = function () {\r\n var options = {}\r\n var defaults = this.getDefaults()\r\n\r\n this._options && $.each(this._options, function (key, value) {\r\n if (defaults[key] != value) options[key] = value\r\n })\r\n\r\n return options\r\n }\r\n\r\n Tooltip.prototype.enter = function (obj) {\r\n var self = obj instanceof this.constructor ?\r\n obj : $(obj.currentTarget).data('bs.' + this.type)\r\n\r\n if (!self) {\r\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\r\n $(obj.currentTarget).data('bs.' + this.type, self)\r\n }\r\n\r\n if (obj instanceof $.Event) {\r\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\r\n }\r\n\r\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\r\n self.hoverState = 'in'\r\n return\r\n }\r\n\r\n clearTimeout(self.timeout)\r\n\r\n self.hoverState = 'in'\r\n\r\n if (!self.options.delay || !self.options.delay.show) return self.show()\r\n\r\n self.timeout = setTimeout(function () {\r\n if (self.hoverState == 'in') self.show()\r\n }, self.options.delay.show)\r\n }\r\n\r\n Tooltip.prototype.isInStateTrue = function () {\r\n for (var key in this.inState) {\r\n if (this.inState[key]) return true\r\n }\r\n\r\n return false\r\n }\r\n\r\n Tooltip.prototype.leave = function (obj) {\r\n var self = obj instanceof this.constructor ?\r\n obj : $(obj.currentTarget).data('bs.' + this.type)\r\n\r\n if (!self) {\r\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\r\n $(obj.currentTarget).data('bs.' + this.type, self)\r\n }\r\n\r\n if (obj instanceof $.Event) {\r\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\r\n }\r\n\r\n if (self.isInStateTrue()) return\r\n\r\n clearTimeout(self.timeout)\r\n\r\n self.hoverState = 'out'\r\n\r\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\r\n\r\n self.timeout = setTimeout(function () {\r\n if (self.hoverState == 'out') self.hide()\r\n }, self.options.delay.hide)\r\n }\r\n\r\n Tooltip.prototype.show = function () {\r\n var e = $.Event('show.bs.' + this.type)\r\n\r\n if (this.hasContent() && this.enabled) {\r\n this.$element.trigger(e)\r\n\r\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\r\n if (e.isDefaultPrevented() || !inDom) return\r\n var that = this\r\n\r\n var $tip = this.tip()\r\n\r\n var tipId = this.getUID(this.type)\r\n\r\n this.setContent()\r\n $tip.attr('id', tipId)\r\n this.$element.attr('aria-describedby', tipId)\r\n\r\n if (this.options.animation) $tip.addClass('fade')\r\n\r\n var placement = typeof this.options.placement == 'function' ?\r\n this.options.placement.call(this, $tip[0], this.$element[0]) :\r\n this.options.placement\r\n\r\n var autoToken = /\\s?auto?\\s?/i\r\n var autoPlace = autoToken.test(placement)\r\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\r\n\r\n $tip\r\n .detach()\r\n .css({ top: 0, left: 0, display: 'block' })\r\n .addClass(placement)\r\n .data('bs.' + this.type, this)\r\n\r\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\r\n this.$element.trigger('inserted.bs.' + this.type)\r\n\r\n var pos = this.getPosition()\r\n var actualWidth = $tip[0].offsetWidth\r\n var actualHeight = $tip[0].offsetHeight\r\n\r\n if (autoPlace) {\r\n var orgPlacement = placement\r\n var viewportDim = this.getPosition(this.$viewport)\r\n\r\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\r\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\r\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\r\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\r\n placement\r\n\r\n $tip\r\n .removeClass(orgPlacement)\r\n .addClass(placement)\r\n }\r\n\r\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\r\n\r\n this.applyPlacement(calculatedOffset, placement)\r\n\r\n var complete = function () {\r\n var prevHoverState = that.hoverState\r\n that.$element.trigger('shown.bs.' + that.type)\r\n that.hoverState = null\r\n\r\n if (prevHoverState == 'out') that.leave(that)\r\n }\r\n\r\n $.support.transition && this.$tip.hasClass('fade') ?\r\n $tip\r\n .one('bsTransitionEnd', complete)\r\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\r\n complete()\r\n }\r\n }\r\n\r\n Tooltip.prototype.applyPlacement = function (offset, placement) {\r\n var $tip = this.tip()\r\n var width = $tip[0].offsetWidth\r\n var height = $tip[0].offsetHeight\r\n\r\n // manually read margins because getBoundingClientRect includes difference\r\n var marginTop = parseInt($tip.css('margin-top'), 10)\r\n var marginLeft = parseInt($tip.css('margin-left'), 10)\r\n\r\n // we must check for NaN for ie 8/9\r\n if (isNaN(marginTop)) marginTop = 0\r\n if (isNaN(marginLeft)) marginLeft = 0\r\n\r\n offset.top += marginTop\r\n offset.left += marginLeft\r\n\r\n // $.fn.offset doesn't round pixel values\r\n // so we use setOffset directly with our own function B-0\r\n $.offset.setOffset($tip[0], $.extend({\r\n using: function (props) {\r\n $tip.css({\r\n top: Math.round(props.top),\r\n left: Math.round(props.left)\r\n })\r\n }\r\n }, offset), 0)\r\n\r\n $tip.addClass('in')\r\n\r\n // check to see if placing tip in new offset caused the tip to resize itself\r\n var actualWidth = $tip[0].offsetWidth\r\n var actualHeight = $tip[0].offsetHeight\r\n\r\n if (placement == 'top' && actualHeight != height) {\r\n offset.top = offset.top + height - actualHeight\r\n }\r\n\r\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\r\n\r\n if (delta.left) offset.left += delta.left\r\n else offset.top += delta.top\r\n\r\n var isVertical = /top|bottom/.test(placement)\r\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\r\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\r\n\r\n $tip.offset(offset)\r\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\r\n }\r\n\r\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\r\n this.arrow()\r\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\r\n .css(isVertical ? 'top' : 'left', '')\r\n }\r\n\r\n Tooltip.prototype.setContent = function () {\r\n var $tip = this.tip()\r\n var title = this.getTitle()\r\n\r\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\r\n $tip.removeClass('fade in top bottom left right')\r\n }\r\n\r\n Tooltip.prototype.hide = function (callback) {\r\n var that = this\r\n var $tip = $(this.$tip)\r\n var e = $.Event('hide.bs.' + this.type)\r\n\r\n function complete() {\r\n if (that.hoverState != 'in') $tip.detach()\r\n that.$element\r\n .removeAttr('aria-describedby')\r\n .trigger('hidden.bs.' + that.type)\r\n callback && callback()\r\n }\r\n\r\n this.$element.trigger(e)\r\n\r\n if (e.isDefaultPrevented()) return\r\n\r\n $tip.removeClass('in')\r\n\r\n $.support.transition && $tip.hasClass('fade') ?\r\n $tip\r\n .one('bsTransitionEnd', complete)\r\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\r\n complete()\r\n\r\n this.hoverState = null\r\n\r\n return this\r\n }\r\n\r\n Tooltip.prototype.fixTitle = function () {\r\n var $e = this.$element\r\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\r\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\r\n }\r\n }\r\n\r\n Tooltip.prototype.hasContent = function () {\r\n return this.getTitle()\r\n }\r\n\r\n Tooltip.prototype.getPosition = function ($element) {\r\n $element = $element || this.$element\r\n\r\n var el = $element[0]\r\n var isBody = el.tagName == 'BODY'\r\n\r\n var elRect = el.getBoundingClientRect()\r\n if (elRect.width == null) {\r\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\r\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\r\n }\r\n var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()\r\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\r\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\r\n\r\n return $.extend({}, elRect, scroll, outerDims, elOffset)\r\n }\r\n\r\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\r\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\r\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\r\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\r\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\r\n\r\n }\r\n\r\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\r\n var delta = { top: 0, left: 0 }\r\n if (!this.$viewport) return delta\r\n\r\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\r\n var viewportDimensions = this.getPosition(this.$viewport)\r\n\r\n if (/right|left/.test(placement)) {\r\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\r\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\r\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\r\n delta.top = viewportDimensions.top - topEdgeOffset\r\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\r\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\r\n }\r\n } else {\r\n var leftEdgeOffset = pos.left - viewportPadding\r\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\r\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\r\n delta.left = viewportDimensions.left - leftEdgeOffset\r\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\r\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\r\n }\r\n }\r\n\r\n return delta\r\n }\r\n\r\n Tooltip.prototype.getTitle = function () {\r\n var title\r\n var $e = this.$element\r\n var o = this.options\r\n\r\n title = $e.attr('data-original-title')\r\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\r\n\r\n return title\r\n }\r\n\r\n Tooltip.prototype.getUID = function (prefix) {\r\n do prefix += ~~(Math.random() * 1000000)\r\n while (document.getElementById(prefix))\r\n return prefix\r\n }\r\n\r\n Tooltip.prototype.tip = function () {\r\n if (!this.$tip) {\r\n this.$tip = $(this.options.template)\r\n if (this.$tip.length != 1) {\r\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\r\n }\r\n }\r\n return this.$tip\r\n }\r\n\r\n Tooltip.prototype.arrow = function () {\r\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\r\n }\r\n\r\n Tooltip.prototype.enable = function () {\r\n this.enabled = true\r\n }\r\n\r\n Tooltip.prototype.disable = function () {\r\n this.enabled = false\r\n }\r\n\r\n Tooltip.prototype.toggleEnabled = function () {\r\n this.enabled = !this.enabled\r\n }\r\n\r\n Tooltip.prototype.toggle = function (e) {\r\n var self = this\r\n if (e) {\r\n self = $(e.currentTarget).data('bs.' + this.type)\r\n if (!self) {\r\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\r\n $(e.currentTarget).data('bs.' + this.type, self)\r\n }\r\n }\r\n\r\n if (e) {\r\n self.inState.click = !self.inState.click\r\n if (self.isInStateTrue()) self.enter(self)\r\n else self.leave(self)\r\n } else {\r\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\r\n }\r\n }\r\n\r\n Tooltip.prototype.destroy = function () {\r\n var that = this\r\n clearTimeout(this.timeout)\r\n this.hide(function () {\r\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\r\n if (that.$tip) {\r\n that.$tip.detach()\r\n }\r\n that.$tip = null\r\n that.$arrow = null\r\n that.$viewport = null\r\n })\r\n }\r\n\r\n\r\n // TOOLTIP PLUGIN DEFINITION\r\n // =========================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.tooltip')\r\n var options = typeof option == 'object' && option\r\n\r\n if (!data && /destroy|hide/.test(option)) return\r\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n var old = $.fn.tooltip\r\n\r\n $.fn.tooltip = Plugin\r\n $.fn.tooltip.Constructor = Tooltip\r\n\r\n\r\n // TOOLTIP NO CONFLICT\r\n // ===================\r\n\r\n $.fn.tooltip.noConflict = function () {\r\n $.fn.tooltip = old\r\n return this\r\n }\r\n\r\n}(jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: popover.js v3.3.5\r\n * http://getbootstrap.com/javascript/#popovers\r\n * ========================================================================\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // POPOVER PUBLIC CLASS DEFINITION\r\n // ===============================\r\n\r\n var Popover = function (element, options) {\r\n this.init('popover', element, options)\r\n }\r\n\r\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\r\n\r\n Popover.VERSION = '3.3.5'\r\n\r\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\r\n placement: 'right',\r\n trigger: 'click',\r\n content: '',\r\n template: '

'\r\n })\r\n\r\n\r\n // NOTE: POPOVER EXTENDS tooltip.js\r\n // ================================\r\n\r\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\r\n\r\n Popover.prototype.constructor = Popover\r\n\r\n Popover.prototype.getDefaults = function () {\r\n return Popover.DEFAULTS\r\n }\r\n\r\n Popover.prototype.setContent = function () {\r\n var $tip = this.tip()\r\n var title = this.getTitle()\r\n var content = this.getContent()\r\n\r\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\r\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\r\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\r\n ](content)\r\n\r\n $tip.removeClass('fade top bottom left right in')\r\n\r\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\r\n // this manually by checking the contents.\r\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\r\n }\r\n\r\n Popover.prototype.hasContent = function () {\r\n return this.getTitle() || this.getContent()\r\n }\r\n\r\n Popover.prototype.getContent = function () {\r\n var $e = this.$element\r\n var o = this.options\r\n\r\n return $e.attr('data-content')\r\n || (typeof o.content == 'function' ?\r\n o.content.call($e[0]) :\r\n o.content)\r\n }\r\n\r\n Popover.prototype.arrow = function () {\r\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\r\n }\r\n\r\n\r\n // POPOVER PLUGIN DEFINITION\r\n // =========================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.popover')\r\n var options = typeof option == 'object' && option\r\n\r\n if (!data && /destroy|hide/.test(option)) return\r\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n var old = $.fn.popover\r\n\r\n $.fn.popover = Plugin\r\n $.fn.popover.Constructor = Popover\r\n\r\n\r\n // POPOVER NO CONFLICT\r\n // ===================\r\n\r\n $.fn.popover.noConflict = function () {\r\n $.fn.popover = old\r\n return this\r\n }\r\n\r\n}(jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: scrollspy.js v3.3.5\r\n * http://getbootstrap.com/javascript/#scrollspy\r\n * ========================================================================\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // SCROLLSPY CLASS DEFINITION\r\n // ==========================\r\n\r\n function ScrollSpy(element, options) {\r\n this.$body = $(document.body)\r\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\r\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\r\n this.selector = (this.options.target || '') + ' .nav li > a'\r\n this.offsets = []\r\n this.targets = []\r\n this.activeTarget = null\r\n this.scrollHeight = 0\r\n\r\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\r\n this.refresh()\r\n this.process()\r\n }\r\n\r\n ScrollSpy.VERSION = '3.3.5'\r\n\r\n ScrollSpy.DEFAULTS = {\r\n offset: 10\r\n }\r\n\r\n ScrollSpy.prototype.getScrollHeight = function () {\r\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\r\n }\r\n\r\n ScrollSpy.prototype.refresh = function () {\r\n var that = this\r\n var offsetMethod = 'offset'\r\n var offsetBase = 0\r\n\r\n this.offsets = []\r\n this.targets = []\r\n this.scrollHeight = this.getScrollHeight()\r\n\r\n if (!$.isWindow(this.$scrollElement[0])) {\r\n offsetMethod = 'position'\r\n offsetBase = this.$scrollElement.scrollTop()\r\n }\r\n\r\n this.$body\r\n .find(this.selector)\r\n .map(function () {\r\n var $el = $(this)\r\n var href = $el.data('target') || $el.attr('href')\r\n var $href = /^#./.test(href) && $(href)\r\n\r\n return ($href\r\n && $href.length\r\n && $href.is(':visible')\r\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\r\n })\r\n .sort(function (a, b) { return a[0] - b[0] })\r\n .each(function () {\r\n that.offsets.push(this[0])\r\n that.targets.push(this[1])\r\n })\r\n }\r\n\r\n ScrollSpy.prototype.process = function () {\r\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\r\n var scrollHeight = this.getScrollHeight()\r\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\r\n var offsets = this.offsets\r\n var targets = this.targets\r\n var activeTarget = this.activeTarget\r\n var i\r\n\r\n if (this.scrollHeight != scrollHeight) {\r\n this.refresh()\r\n }\r\n\r\n if (scrollTop >= maxScroll) {\r\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\r\n }\r\n\r\n if (activeTarget && scrollTop < offsets[0]) {\r\n this.activeTarget = null\r\n return this.clear()\r\n }\r\n\r\n for (i = offsets.length; i--;) {\r\n activeTarget != targets[i]\r\n && scrollTop >= offsets[i]\r\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\r\n && this.activate(targets[i])\r\n }\r\n }\r\n\r\n ScrollSpy.prototype.activate = function (target) {\r\n this.activeTarget = target\r\n\r\n this.clear()\r\n\r\n var selector = this.selector +\r\n '[data-target=\"' + target + '\"],' +\r\n this.selector + '[href=\"' + target + '\"]'\r\n\r\n var active = $(selector)\r\n .parents('li')\r\n .addClass('active')\r\n\r\n if (active.parent('.dropdown-menu').length) {\r\n active = active\r\n .closest('li.dropdown')\r\n .addClass('active')\r\n }\r\n\r\n active.trigger('activate.bs.scrollspy')\r\n }\r\n\r\n ScrollSpy.prototype.clear = function () {\r\n $(this.selector)\r\n .parentsUntil(this.options.target, '.active')\r\n .removeClass('active')\r\n }\r\n\r\n\r\n // SCROLLSPY PLUGIN DEFINITION\r\n // ===========================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.scrollspy')\r\n var options = typeof option == 'object' && option\r\n\r\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n var old = $.fn.scrollspy\r\n\r\n $.fn.scrollspy = Plugin\r\n $.fn.scrollspy.Constructor = ScrollSpy\r\n\r\n\r\n // SCROLLSPY NO CONFLICT\r\n // =====================\r\n\r\n $.fn.scrollspy.noConflict = function () {\r\n $.fn.scrollspy = old\r\n return this\r\n }\r\n\r\n\r\n // SCROLLSPY DATA-API\r\n // ==================\r\n\r\n $(window).on('load.bs.scrollspy.data-api', function () {\r\n $('[data-spy=\"scroll\"]').each(function () {\r\n var $spy = $(this)\r\n Plugin.call($spy, $spy.data())\r\n })\r\n })\r\n\r\n}(jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: tab.js v3.3.5\r\n * http://getbootstrap.com/javascript/#tabs\r\n * ========================================================================\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // TAB CLASS DEFINITION\r\n // ====================\r\n\r\n var Tab = function (element) {\r\n // jscs:disable requireDollarBeforejQueryAssignment\r\n this.element = $(element)\r\n // jscs:enable requireDollarBeforejQueryAssignment\r\n }\r\n\r\n Tab.VERSION = '3.3.5'\r\n\r\n Tab.TRANSITION_DURATION = 150\r\n\r\n Tab.prototype.show = function () {\r\n var $this = this.element\r\n var $ul = $this.closest('ul:not(.dropdown-menu)')\r\n var selector = $this.data('target')\r\n\r\n if (!selector) {\r\n selector = $this.attr('href')\r\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\r\n }\r\n\r\n if ($this.parent('li').hasClass('active')) return\r\n\r\n var $previous = $ul.find('.active:last a')\r\n var hideEvent = $.Event('hide.bs.tab', {\r\n relatedTarget: $this[0]\r\n })\r\n var showEvent = $.Event('show.bs.tab', {\r\n relatedTarget: $previous[0]\r\n })\r\n\r\n $previous.trigger(hideEvent)\r\n $this.trigger(showEvent)\r\n\r\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\r\n\r\n var $target = $(selector)\r\n\r\n this.activate($this.closest('li'), $ul)\r\n this.activate($target, $target.parent(), function () {\r\n $previous.trigger({\r\n type: 'hidden.bs.tab',\r\n relatedTarget: $this[0]\r\n })\r\n $this.trigger({\r\n type: 'shown.bs.tab',\r\n relatedTarget: $previous[0]\r\n })\r\n })\r\n }\r\n\r\n Tab.prototype.activate = function (element, container, callback) {\r\n var $active = container.find('> .active')\r\n var transition = callback\r\n && $.support.transition\r\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\r\n\r\n function next() {\r\n $active\r\n .removeClass('active')\r\n .find('> .dropdown-menu > .active')\r\n .removeClass('active')\r\n .end()\r\n .find('[data-toggle=\"tab\"]')\r\n .attr('aria-expanded', false)\r\n\r\n element\r\n .addClass('active')\r\n .find('[data-toggle=\"tab\"]')\r\n .attr('aria-expanded', true)\r\n\r\n if (transition) {\r\n element[0].offsetWidth // reflow for transition\r\n element.addClass('in')\r\n } else {\r\n element.removeClass('fade')\r\n }\r\n\r\n if (element.parent('.dropdown-menu').length) {\r\n element\r\n .closest('li.dropdown')\r\n .addClass('active')\r\n .end()\r\n .find('[data-toggle=\"tab\"]')\r\n .attr('aria-expanded', true)\r\n }\r\n\r\n callback && callback()\r\n }\r\n\r\n $active.length && transition ?\r\n $active\r\n .one('bsTransitionEnd', next)\r\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\r\n next()\r\n\r\n $active.removeClass('in')\r\n }\r\n\r\n\r\n // TAB PLUGIN DEFINITION\r\n // =====================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.tab')\r\n\r\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n var old = $.fn.tab\r\n\r\n $.fn.tab = Plugin\r\n $.fn.tab.Constructor = Tab\r\n\r\n\r\n // TAB NO CONFLICT\r\n // ===============\r\n\r\n $.fn.tab.noConflict = function () {\r\n $.fn.tab = old\r\n return this\r\n }\r\n\r\n\r\n // TAB DATA-API\r\n // ============\r\n\r\n var clickHandler = function (e) {\r\n e.preventDefault()\r\n Plugin.call($(this), 'show')\r\n }\r\n\r\n $(document)\r\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\r\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\r\n\r\n}(jQuery);\r\n\r\n/* ========================================================================\r\n * Bootstrap: affix.js v3.3.5\r\n * http://getbootstrap.com/javascript/#affix\r\n * ========================================================================\r\n * Copyright 2011-2015 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // AFFIX CLASS DEFINITION\r\n // ======================\r\n\r\n var Affix = function (element, options) {\r\n this.options = $.extend({}, Affix.DEFAULTS, options)\r\n\r\n this.$target = $(this.options.target)\r\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\r\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\r\n\r\n this.$element = $(element)\r\n this.affixed = null\r\n this.unpin = null\r\n this.pinnedOffset = null\r\n\r\n this.checkPosition()\r\n }\r\n\r\n Affix.VERSION = '3.3.5'\r\n\r\n Affix.RESET = 'affix affix-top affix-bottom'\r\n\r\n Affix.DEFAULTS = {\r\n offset: 0,\r\n target: window\r\n }\r\n\r\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\r\n var scrollTop = this.$target.scrollTop()\r\n var position = this.$element.offset()\r\n var targetHeight = this.$target.height()\r\n\r\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\r\n\r\n if (this.affixed == 'bottom') {\r\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\r\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\r\n }\r\n\r\n var initializing = this.affixed == null\r\n var colliderTop = initializing ? scrollTop : position.top\r\n var colliderHeight = initializing ? targetHeight : height\r\n\r\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\r\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\r\n\r\n return false\r\n }\r\n\r\n Affix.prototype.getPinnedOffset = function () {\r\n if (this.pinnedOffset) return this.pinnedOffset\r\n this.$element.removeClass(Affix.RESET).addClass('affix')\r\n var scrollTop = this.$target.scrollTop()\r\n var position = this.$element.offset()\r\n return (this.pinnedOffset = position.top - scrollTop)\r\n }\r\n\r\n Affix.prototype.checkPositionWithEventLoop = function () {\r\n setTimeout($.proxy(this.checkPosition, this), 1)\r\n }\r\n\r\n Affix.prototype.checkPosition = function () {\r\n if (!this.$element.is(':visible')) return\r\n\r\n var height = this.$element.height()\r\n var offset = this.options.offset\r\n var offsetTop = offset.top\r\n var offsetBottom = offset.bottom\r\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\r\n\r\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\r\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\r\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\r\n\r\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\r\n\r\n if (this.affixed != affix) {\r\n if (this.unpin != null) this.$element.css('top', '')\r\n\r\n var affixType = 'affix' + (affix ? '-' + affix : '')\r\n var e = $.Event(affixType + '.bs.affix')\r\n\r\n this.$element.trigger(e)\r\n\r\n if (e.isDefaultPrevented()) return\r\n\r\n this.affixed = affix\r\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\r\n\r\n this.$element\r\n .removeClass(Affix.RESET)\r\n .addClass(affixType)\r\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\r\n }\r\n\r\n if (affix == 'bottom') {\r\n this.$element.offset({\r\n top: scrollHeight - height - offsetBottom\r\n })\r\n }\r\n }\r\n\r\n\r\n // AFFIX PLUGIN DEFINITION\r\n // =======================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.affix')\r\n var options = typeof option == 'object' && option\r\n\r\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n var old = $.fn.affix\r\n\r\n $.fn.affix = Plugin\r\n $.fn.affix.Constructor = Affix\r\n\r\n\r\n // AFFIX NO CONFLICT\r\n // =================\r\n\r\n $.fn.affix.noConflict = function () {\r\n $.fn.affix = old\r\n return this\r\n }\r\n\r\n\r\n // AFFIX DATA-API\r\n // ==============\r\n\r\n $(window).on('load', function () {\r\n $('[data-spy=\"affix\"]').each(function () {\r\n var $spy = $(this)\r\n var data = $spy.data()\r\n\r\n data.offset = data.offset || {}\r\n\r\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\r\n if (data.offsetTop != null) data.offset.top = data.offsetTop\r\n\r\n Plugin.call($spy, data)\r\n })\r\n })\r\n\r\n}(jQuery);\r\n","/*\r\n * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/\r\n *\r\n * Uses the built in easing capabilities added In jQuery 1.1\r\n * to offer multiple easing options\r\n *\r\n * TERMS OF USE - jQuery Easing\r\n * \r\n * Open source under the BSD License. \r\n * \r\n * Copyright © 2008 George McGinley Smith\r\n * All rights reserved.\r\n * \r\n * Redistribution and use in source and binary forms, with or without modification, \r\n * are permitted provided that the following conditions are met:\r\n * \r\n * Redistributions of source code must retain the above copyright notice, this list of \r\n * conditions and the following disclaimer.\r\n * Redistributions in binary form must reproduce the above copyright notice, this list \r\n * of conditions and the following disclaimer in the documentation and/or other materials \r\n * provided with the distribution.\r\n * \r\n * Neither the name of the author nor the names of contributors may be used to endorse \r\n * or promote products derived from this software without specific prior written permission.\r\n * \r\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY \r\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r\n * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\r\n * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r\n * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r\n * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED \r\n * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \r\n * OF THE POSSIBILITY OF SUCH DAMAGE. \r\n *\r\n*/\r\n\r\n// t: current time, b: begInnIng value, c: change In value, d: duration\r\njQuery.easing['jswing'] = jQuery.easing['swing'];\r\n\r\njQuery.extend( jQuery.easing,\r\n{\r\n\tdef: 'easeOutQuad',\r\n\tswing: function (x, t, b, c, d) {\r\n\t\t//alert(jQuery.easing.default);\r\n\t\treturn jQuery.easing[jQuery.easing.def](x, t, b, c, d);\r\n\t},\r\n\teaseInQuad: function (x, t, b, c, d) {\r\n\t\treturn c*(t/=d)*t + b;\r\n\t},\r\n\teaseOutQuad: function (x, t, b, c, d) {\r\n\t\treturn -c *(t/=d)*(t-2) + b;\r\n\t},\r\n\teaseInOutQuad: function (x, t, b, c, d) {\r\n\t\tif ((t/=d/2) < 1) return c/2*t*t + b;\r\n\t\treturn -c/2 * ((--t)*(t-2) - 1) + b;\r\n\t},\r\n\teaseInCubic: function (x, t, b, c, d) {\r\n\t\treturn c*(t/=d)*t*t + b;\r\n\t},\r\n\teaseOutCubic: function (x, t, b, c, d) {\r\n\t\treturn c*((t=t/d-1)*t*t + 1) + b;\r\n\t},\r\n\teaseInOutCubic: function (x, t, b, c, d) {\r\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t + b;\r\n\t\treturn c/2*((t-=2)*t*t + 2) + b;\r\n\t},\r\n\teaseInQuart: function (x, t, b, c, d) {\r\n\t\treturn c*(t/=d)*t*t*t + b;\r\n\t},\r\n\teaseOutQuart: function (x, t, b, c, d) {\r\n\t\treturn -c * ((t=t/d-1)*t*t*t - 1) + b;\r\n\t},\r\n\teaseInOutQuart: function (x, t, b, c, d) {\r\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t*t + b;\r\n\t\treturn -c/2 * ((t-=2)*t*t*t - 2) + b;\r\n\t},\r\n\teaseInQuint: function (x, t, b, c, d) {\r\n\t\treturn c*(t/=d)*t*t*t*t + b;\r\n\t},\r\n\teaseOutQuint: function (x, t, b, c, d) {\r\n\t\treturn c*((t=t/d-1)*t*t*t*t + 1) + b;\r\n\t},\r\n\teaseInOutQuint: function (x, t, b, c, d) {\r\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;\r\n\t\treturn c/2*((t-=2)*t*t*t*t + 2) + b;\r\n\t},\r\n\teaseInSine: function (x, t, b, c, d) {\r\n\t\treturn -c * Math.cos(t/d * (Math.PI/2)) + c + b;\r\n\t},\r\n\teaseOutSine: function (x, t, b, c, d) {\r\n\t\treturn c * Math.sin(t/d * (Math.PI/2)) + b;\r\n\t},\r\n\teaseInOutSine: function (x, t, b, c, d) {\r\n\t\treturn -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;\r\n\t},\r\n\teaseInExpo: function (x, t, b, c, d) {\r\n\t\treturn (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;\r\n\t},\r\n\teaseOutExpo: function (x, t, b, c, d) {\r\n\t\treturn (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;\r\n\t},\r\n\teaseInOutExpo: function (x, t, b, c, d) {\r\n\t\tif (t==0) return b;\r\n\t\tif (t==d) return b+c;\r\n\t\tif ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;\r\n\t\treturn c/2 * (-Math.pow(2, -10 * --t) + 2) + b;\r\n\t},\r\n\teaseInCirc: function (x, t, b, c, d) {\r\n\t\treturn -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;\r\n\t},\r\n\teaseOutCirc: function (x, t, b, c, d) {\r\n\t\treturn c * Math.sqrt(1 - (t=t/d-1)*t) + b;\r\n\t},\r\n\teaseInOutCirc: function (x, t, b, c, d) {\r\n\t\tif ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;\r\n\t\treturn c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;\r\n\t},\r\n\teaseInElastic: function (x, t, b, c, d) {\r\n\t\tvar s=1.70158;var p=0;var a=c;\r\n\t\tif (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;\r\n\t\tif (a < Math.abs(c)) { a=c; var s=p/4; }\r\n\t\telse var s = p/(2*Math.PI) * Math.asin (c/a);\r\n\t\treturn -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;\r\n\t},\r\n\teaseOutElastic: function (x, t, b, c, d) {\r\n\t\tvar s=1.70158;var p=0;var a=c;\r\n\t\tif (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;\r\n\t\tif (a < Math.abs(c)) { a=c; var s=p/4; }\r\n\t\telse var s = p/(2*Math.PI) * Math.asin (c/a);\r\n\t\treturn a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;\r\n\t},\r\n\teaseInOutElastic: function (x, t, b, c, d) {\r\n\t\tvar s=1.70158;var p=0;var a=c;\r\n\t\tif (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);\r\n\t\tif (a < Math.abs(c)) { a=c; var s=p/4; }\r\n\t\telse var s = p/(2*Math.PI) * Math.asin (c/a);\r\n\t\tif (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;\r\n\t\treturn a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;\r\n\t},\r\n\teaseInBack: function (x, t, b, c, d, s) {\r\n\t\tif (s == undefined) s = 1.70158;\r\n\t\treturn c*(t/=d)*t*((s+1)*t - s) + b;\r\n\t},\r\n\teaseOutBack: function (x, t, b, c, d, s) {\r\n\t\tif (s == undefined) s = 1.70158;\r\n\t\treturn c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;\r\n\t},\r\n\teaseInOutBack: function (x, t, b, c, d, s) {\r\n\t\tif (s == undefined) s = 1.70158; \r\n\t\tif ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;\r\n\t\treturn c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;\r\n\t},\r\n\teaseInBounce: function (x, t, b, c, d) {\r\n\t\treturn c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;\r\n\t},\r\n\teaseOutBounce: function (x, t, b, c, d) {\r\n\t\tif ((t/=d) < (1/2.75)) {\r\n\t\t\treturn c*(7.5625*t*t) + b;\r\n\t\t} else if (t < (2/2.75)) {\r\n\t\t\treturn c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;\r\n\t\t} else if (t < (2.5/2.75)) {\r\n\t\t\treturn c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;\r\n\t\t} else {\r\n\t\t\treturn c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;\r\n\t\t}\r\n\t},\r\n\teaseInOutBounce: function (x, t, b, c, d) {\r\n\t\tif (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;\r\n\t\treturn jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;\r\n\t}\r\n});\r\n\r\n/*\r\n *\r\n * TERMS OF USE - EASING EQUATIONS\r\n * \r\n * Open source under the BSD License. \r\n * \r\n * Copyright © 2001 Robert Penner\r\n * All rights reserved.\r\n * \r\n * Redistribution and use in source and binary forms, with or without modification, \r\n * are permitted provided that the following conditions are met:\r\n * \r\n * Redistributions of source code must retain the above copyright notice, this list of \r\n * conditions and the following disclaimer.\r\n * Redistributions in binary form must reproduce the above copyright notice, this list \r\n * of conditions and the following disclaimer in the documentation and/or other materials \r\n * provided with the distribution.\r\n * \r\n * Neither the name of the author nor the names of contributors may be used to endorse \r\n * or promote products derived from this software without specific prior written permission.\r\n * \r\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY \r\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r\n * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\r\n * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r\n * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r\n * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED \r\n * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \r\n * OF THE POSSIBILITY OF SUCH DAMAGE. \r\n *\r\n */","//Depends on \r\n//jquery.js\r\n//jquery.cookie.js\r\n\r\nfunction log(message) {\r\n console.log(message);\r\n}\r\n(function ($) {\r\n // Create the video namespace if it doesn't exist\r\n $.tsw = $.tsw || {};\r\n\r\n $.tsw.video = $.tsw.video || {};\r\n\r\n // Define constants for cookie names\r\n $.tsw.video.lastPlayedName = \"tsw.video.lastPlayed\";\r\n $.tsw.video.lastAdDisplayedName = \"tsw.video.lastAdDisplayed\";\r\n $.tsw.video.videosWatchedCountName = \"tsw.video.videosWatchedCount\";\r\n\r\n // Method to set the last played time in a cookie\r\n $.tsw.video.setPlayedTime = function () {\r\n try {\r\n $.cookie($.tsw.video.lastPlayedName, new Date().toISOString(), { expires: 7, path: '/' });\r\n $.tsw.video.incrementVideosWatchedCount();\r\n } catch (e) {\r\n console.warn(\"Failed to set last played time:\", e);\r\n }\r\n };\r\n\r\n // Method to set the last ad displayed time in a cookie\r\n $.tsw.video.setAdDisplayedTime = function () {\r\n try {\r\n $.cookie($.tsw.video.lastAdDisplayedName, new Date().toISOString(), { expires: 7, path: '/' });\r\n } catch (e) {\r\n console.warn(\"Failed to set last ad displayed time:\", e);\r\n }\r\n };\r\n\r\n // Method to increment the videos watched count in a cookie\r\n $.tsw.video.incrementVideosWatchedCount = function () {\r\n try {\r\n var currentCount = parseInt($.cookie($.tsw.video.videosWatchedCountName) || \"0\", 10);\r\n var newCount = currentCount + 1;\r\n $.cookie($.tsw.video.videosWatchedCountName, newCount, { expires: 7, path: '/' });\r\n } catch (e) {\r\n console.warn(\"Failed to increment videos watched count:\", e);\r\n }\r\n };\r\n\r\n // Method to get the videos watched count from the cookie\r\n $.tsw.video.getVideosWatchedCount = function () {\r\n try {\r\n return parseInt($.cookie($.tsw.video.videosWatchedCountName) || \"0\", 10);\r\n } catch (e) {\r\n console.warn(\"Failed to retrieve videos watched count:\", e);\r\n return -1; // Default to 0 if something goes wrong\r\n }\r\n };\r\n $.tsw.video.shouldServePromo = function () {\r\n var lastPlayed = $.tsw.video.getTimeSinceLastPlayed();\r\n // console.log(\"in skipping add for last play \" + $.tsw.video.getTimeSinceLastPlayed());\r\n if (lastPlayed != -1 && lastPlayed > 2 * 60 * 60) {\r\n // console.log(\"skipping add for last play \" + $.tsw.video.getTimeSinceLastPlayed());\r\n return false;\r\n }\r\n var lastAdDisplayed = $.tsw.video.getTimeSinceAdDisplayed();\r\n if (lastAdDisplayed != -1 && lastAdDisplayed < 3 * 60 * 60) {\r\n // console.log(\"skipping add for last play \" + $.tsw.video.getTimeSinceLastPlayed());\r\n return false;\r\n }\r\n // console.log(\"in skipping add for last play \" + $.tsw.video.getVideosWatchedCount() + \" no in \" + window.tsw.excludePromo);\r\n if (typeof window.tsw !== 'undefined'\r\n && Array.isArray(window.tsw.excludePromo)\r\n && window.tsw.excludePromo.includes($.tsw.video.getVideosWatchedCount())) {\r\n // console.log(\"skipping add for last play \" + $.tsw.video.getVideosWatchedCount() + \" no in \" + window.tsw.excludePromo);\r\n return false;\r\n }\r\n else {\r\n if (typeof window.tsw !== 'undefined') return true;\r\n // console.log(\"promo enabled\" + window.tsw.InVideoPromoEnabled);\r\n if (window.tsw.inVideoPromoEnabled == true) return true;\r\n return false;\r\n } \r\n };\r\n\r\n $.tsw.video.promoURL = function () {\r\n\r\n /*if (typeof window.tsw !== 'undefined'\r\n && Array.isArray(window.tsw.vastConfig) && window.tsw.vastConfig.length > 0) {\r\n console.log(\"promo url \" + window.tsw.vastConfig[0].url);\r\n return window.tsw.vastConfig[0].url;\r\n }\r\n else {\r\n console.log(\"promo fallback \" );\r\n return 'https://s.magsrv.com/v1/vast.php?idzone=5368460'\r\n }*/\r\n }\r\n \r\n // Method to get the time difference in seconds between now and last played time\r\n $.tsw.video.getTimeSinceLastPlayed = function () {\r\n return $.tsw.video._getTimeSince($.tsw.video.lastPlayedName);\r\n };\r\n\r\n // Method to get the time difference in seconds between now and last ad displayed time\r\n $.tsw.video.getTimeSinceAdDisplayed = function () {\r\n return $.tsw.video._getTimeSince($.tsw.video.lastAdDisplayedName);\r\n };\r\n\r\n // Private method to calculate time difference in seconds for a given cookie name\r\n $.tsw.video._getTimeSince = function (cookieName) {\r\n var now = new Date();\r\n var baseDate = new Date(\"2000-01-01T00:00:00Z\");\r\n\r\n try {\r\n var lastEventTime = $.cookie(cookieName);\r\n\r\n if (!lastEventTime) {\r\n // If the cookie doesn't exist, return the time from 2000-01-01\r\n return Math.floor((now - baseDate) / 1000);\r\n }\r\n\r\n // Parse the cookie value as a Date object\r\n var lastEventDate = new Date(lastEventTime);\r\n\r\n // Calculate the difference in seconds\r\n return Math.floor((now - lastEventDate) / 1000);\r\n } catch (e) {\r\n // Log the error and return a fallback value\r\n console.warn(\"Failed to calculate time difference for cookie:\", cookieName, e);\r\n return -1;\r\n }\r\n };\r\n\r\n})(jQuery);","//Depends on \r\n//jquery.js\r\n\r\n(function ($) {\r\n // Create the video namespace if it doesn't exist\r\n $.tsw = $.tsw || {};\r\n\r\n $.tsw.report = $.tsw.report || {};\r\n\r\n // Define constants for cookie names\r\n $.tsw.report.url = \"/api/reporting/\";\r\n\r\n if (window.hasOwnProperty(\"tsw\") && window.tsw !== 'undefined' && window.tsw.hasOwnProperty(\"reportingUrl\") && window.tsw.reportingUrl !== 'undefined') {\r\n $.tsw.report.url = window.tsw.reportingUrl;\r\n }\r\n\r\n $.tsw.report.generateGUID= function() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = Math.random() * 16 | 0;\r\n const v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n $.tsw.report.playbackFailure = function (isInitial, session, source) {\r\n try {\r\n var data = {\r\n initial: isInitial,\r\n session: session,\r\n source: source\r\n };\r\n\r\n // Make an asynchronous POST request\r\n $.ajax({\r\n url: $.tsw.report.url + 'playback-failure', // Replace with your server endpoint\r\n type: 'POST',\r\n data: JSON.stringify(data),\r\n contentType: 'application/json',\r\n async: true, // Make it asynchronous (non-blocking)\r\n success: function (response) {\r\n //console.log(\"Request was successful:\", response);\r\n },\r\n error: function (xhr, status, error) {\r\n //console.warn(\"Error in the POST request:\", error);\r\n }\r\n });\r\n\r\n } catch (e) {\r\n console.warn(\"Failed to report buffer time\", e);\r\n }\r\n };\r\n // Method to set the last played time in a cookie\r\n $.tsw.report.bufferTime = function (isInitial, bufferTime , session , playbackTime, source) {\r\n try {\r\n var data = {\r\n initial: isInitial,\r\n bufferTime: bufferTime,\r\n session: session,\r\n playbackTime: playbackTime,\r\n source : source\r\n };\r\n\r\n // Make an asynchronous POST request\r\n $.ajax({\r\n url: $.tsw.report.url+'buffer-time', // Replace with your server endpoint\r\n type: 'POST',\r\n data: JSON.stringify(data),\r\n contentType: 'application/json',\r\n async: true, // Make it asynchronous (non-blocking)\r\n success: function (response) {\r\n //console.log(\"Request was successful:\", response);\r\n },\r\n error: function (xhr, status, error) {\r\n //console.warn(\"Error in the POST request:\", error);\r\n }\r\n });\r\n\r\n } catch (e) {\r\n console.warn(\"Failed to report buffer time\", e);\r\n }\r\n };\r\n\r\n})(jQuery);","/*\r\n * jQuery Cookie Plugin v1.4.1\r\n * https://github.com/carhartl/jquery-cookie\r\n *\r\n * Copyright 2013 Klaus Hartl\r\n * Released under the MIT license\r\n */\r\n(function (factory) {\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\t// AMD\r\n\t\tdefine(['jquery'], factory);\r\n\t} else if (typeof exports === 'object') {\r\n\t\t// CommonJS\r\n\t\tfactory(require('jquery'));\r\n\t} else {\r\n\t\t// Browser globals\r\n\t\tfactory(jQuery);\r\n\t}\r\n}(function ($) {\r\n\r\n\tvar pluses = /\\+/g;\r\n\r\n\tfunction encode(s) {\r\n\t\treturn config.raw ? s : encodeURIComponent(s);\r\n\t}\r\n\r\n\tfunction decode(s) {\r\n\t\treturn config.raw ? s : decodeURIComponent(s);\r\n\t}\r\n\r\n\tfunction stringifyCookieValue(value) {\r\n\t\treturn encode(config.json ? JSON.stringify(value) : String(value));\r\n\t}\r\n\r\n\tfunction parseCookieValue(s) {\r\n\t\tif (s.indexOf('\"') === 0) {\r\n\t\t\t// This is a quoted cookie as according to RFC2068, unescape...\r\n\t\t\ts = s.slice(1, -1).replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\');\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\t// Replace server-side written pluses with spaces.\r\n\t\t\t// If we can't decode the cookie, ignore it, it's unusable.\r\n\t\t\t// If we can't parse the cookie, ignore it, it's unusable.\r\n\t\t\ts = decodeURIComponent(s.replace(pluses, ' '));\r\n\t\t\treturn config.json ? JSON.parse(s) : s;\r\n\t\t} catch(e) {}\r\n\t}\r\n\r\n\tfunction read(s, converter) {\r\n\t\tvar value = config.raw ? s : parseCookieValue(s);\r\n\t\treturn $.isFunction(converter) ? converter(value) : value;\r\n\t}\r\n\r\n\tvar config = $.cookie = function (key, value, options) {\r\n\r\n\t\t// Write\r\n\r\n\t\tif (value !== undefined && !$.isFunction(value)) {\r\n\t\t\toptions = $.extend({}, config.defaults, options);\r\n\r\n\t\t\tif (typeof options.expires === 'number') {\r\n\t\t\t\tvar days = options.expires, t = options.expires = new Date();\r\n\t\t\t\tt.setTime(+t + days * 864e+5);\r\n\t\t\t}\r\n\r\n\t\t\treturn (document.cookie = [\r\n\t\t\t\tencode(key), '=', stringifyCookieValue(value),\r\n\t\t\t\toptions.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE\r\n\t\t\t\toptions.path ? '; path=' + options.path : '',\r\n\t\t\t\toptions.domain ? '; domain=' + options.domain : '',\r\n\t\t\t\toptions.secure ? '; secure' : ''\r\n\t\t\t].join(''));\r\n\t\t}\r\n\r\n\t\t// Read\r\n\r\n\t\tvar result = key ? undefined : {};\r\n\r\n\t\t// To prevent the for loop in the first place assign an empty array\r\n\t\t// in case there are no cookies at all. Also prevents odd result when\r\n\t\t// calling $.cookie().\r\n\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\r\n\r\n\t\tfor (var i = 0, l = cookies.length; i < l; i++) {\r\n\t\t\tvar parts = cookies[i].split('=');\r\n\t\t\tvar name = decode(parts.shift());\r\n\t\t\tvar cookie = parts.join('=');\r\n\r\n\t\t\tif (key && key === name) {\r\n\t\t\t\t// If second argument (value) is a function it's a converter...\r\n\t\t\t\tresult = read(cookie, value);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\t// Prevent storing a cookie that we couldn't decode.\r\n\t\t\tif (!key && (cookie = read(cookie)) !== undefined) {\r\n\t\t\t\tresult[name] = cookie;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t};\r\n\r\n\tconfig.defaults = {};\r\n\r\n\t$.removeCookie = function (key, options) {\r\n\t\tif ($.cookie(key) === undefined) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// Must not alter options, thus extending a fresh object...\r\n\t\t$.cookie(key, '', $.extend({}, options, { expires: -1 }));\r\n\t\treturn !$.cookie(key);\r\n\t};\r\n\r\n}));\r\n","/*\r\n * jQuery JavaScript Library v2.1.1\r\n * http://jquery.com/\r\n *\r\n * Includes Sizzle.js\r\n * http://sizzlejs.com/\r\n *\r\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\r\n * Released under the MIT license\r\n * http://jquery.org/license\r\n *\r\n * Date: 2014-05-01T17:11Z\r\n */\r\n\r\n(function( global, factory ) {\r\n\r\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\r\n\t\t// For CommonJS and CommonJS-like environments where a proper window is present,\r\n\t\t// execute the factory and get jQuery\r\n\t\t// For environments that do not inherently posses a window with a document\r\n\t\t// (such as Node.js), expose a jQuery-making factory as module.exports\r\n\t\t// This accentuates the need for the creation of a real window\r\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\r\n\t\t// See ticket #14549 for more info\r\n\t\tmodule.exports = global.document ?\r\n\t\t\tfactory( global, true ) :\r\n\t\t\tfunction( w ) {\r\n\t\t\t\tif ( !w.document ) {\r\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\r\n\t\t\t\t}\r\n\t\t\t\treturn factory( w );\r\n\t\t\t};\r\n\t} else {\r\n\t\tfactory( global );\r\n\t}\r\n\r\n// Pass this if window is not defined yet\r\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\r\n\r\n// Can't do this because several apps including ASP.NET trace\r\n// the stack via arguments.caller.callee and Firefox dies if\r\n// you try to trace through \"use strict\" call chains. (#13335)\r\n// Support: Firefox 18+\r\n//\r\n\r\nvar arr = [];\r\n\r\nvar slice = arr.slice;\r\n\r\nvar concat = arr.concat;\r\n\r\nvar push = arr.push;\r\n\r\nvar indexOf = arr.indexOf;\r\n\r\nvar class2type = {};\r\n\r\nvar toString = class2type.toString;\r\n\r\nvar hasOwn = class2type.hasOwnProperty;\r\n\r\nvar support = {};\r\n\r\n\r\n\r\nvar\r\n\t// Use the correct document accordingly with window argument (sandbox)\r\n\tdocument = window.document,\r\n\r\n\tversion = \"2.1.1\",\r\n\r\n\t// Define a local copy of jQuery\r\n\tjQuery = function( selector, context ) {\r\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\r\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\r\n\t\treturn new jQuery.fn.init( selector, context );\r\n\t},\r\n\r\n\t// Support: Android<4.1\r\n\t// Make sure we trim BOM and NBSP\r\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\r\n\r\n\t// Matches dashed string for camelizing\r\n\trmsPrefix = /^-ms-/,\r\n\trdashAlpha = /-([\\da-z])/gi,\r\n\r\n\t// Used by jQuery.camelCase as callback to replace()\r\n\tfcamelCase = function( all, letter ) {\r\n\t\treturn letter.toUpperCase();\r\n\t};\r\n\r\njQuery.fn = jQuery.prototype = {\r\n\t// The current version of jQuery being used\r\n\tjquery: version,\r\n\r\n\tconstructor: jQuery,\r\n\r\n\t// Start with an empty selector\r\n\tselector: \"\",\r\n\r\n\t// The default length of a jQuery object is 0\r\n\tlength: 0,\r\n\r\n\ttoArray: function() {\r\n\t\treturn slice.call( this );\r\n\t},\r\n\r\n\t// Get the Nth element in the matched element set OR\r\n\t// Get the whole matched element set as a clean array\r\n\tget: function( num ) {\r\n\t\treturn num != null ?\r\n\r\n\t\t\t// Return just the one element from the set\r\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\r\n\r\n\t\t\t// Return all the elements in a clean array\r\n\t\t\tslice.call( this );\r\n\t},\r\n\r\n\t// Take an array of elements and push it onto the stack\r\n\t// (returning the new matched element set)\r\n\tpushStack: function( elems ) {\r\n\r\n\t\t// Build a new jQuery matched element set\r\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\r\n\r\n\t\t// Add the old object onto the stack (as a reference)\r\n\t\tret.prevObject = this;\r\n\t\tret.context = this.context;\r\n\r\n\t\t// Return the newly-formed element set\r\n\t\treturn ret;\r\n\t},\r\n\r\n\t// Execute a callback for every element in the matched set.\r\n\t// (You can seed the arguments with an array of args, but this is\r\n\t// only used internally.)\r\n\teach: function( callback, args ) {\r\n\t\treturn jQuery.each( this, callback, args );\r\n\t},\r\n\r\n\tmap: function( callback ) {\r\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\r\n\t\t\treturn callback.call( elem, i, elem );\r\n\t\t}));\r\n\t},\r\n\r\n\tslice: function() {\r\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\r\n\t},\r\n\r\n\tfirst: function() {\r\n\t\treturn this.eq( 0 );\r\n\t},\r\n\r\n\tlast: function() {\r\n\t\treturn this.eq( -1 );\r\n\t},\r\n\r\n\teq: function( i ) {\r\n\t\tvar len = this.length,\r\n\t\t\tj = +i + ( i < 0 ? len : 0 );\r\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\r\n\t},\r\n\r\n\tend: function() {\r\n\t\treturn this.prevObject || this.constructor(null);\r\n\t},\r\n\r\n\t// For internal use only.\r\n\t// Behaves like an Array's method, not like a jQuery method.\r\n\tpush: push,\r\n\tsort: arr.sort,\r\n\tsplice: arr.splice\r\n};\r\n\r\njQuery.extend = jQuery.fn.extend = function() {\r\n\tvar options, name, src, copy, copyIsArray, clone,\r\n\t\ttarget = arguments[0] || {},\r\n\t\ti = 1,\r\n\t\tlength = arguments.length,\r\n\t\tdeep = false;\r\n\r\n\t// Handle a deep copy situation\r\n\tif ( typeof target === \"boolean\" ) {\r\n\t\tdeep = target;\r\n\r\n\t\t// skip the boolean and the target\r\n\t\ttarget = arguments[ i ] || {};\r\n\t\ti++;\r\n\t}\r\n\r\n\t// Handle case when target is a string or something (possible in deep copy)\r\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\r\n\t\ttarget = {};\r\n\t}\r\n\r\n\t// extend jQuery itself if only one argument is passed\r\n\tif ( i === length ) {\r\n\t\ttarget = this;\r\n\t\ti--;\r\n\t}\r\n\r\n\tfor ( ; i < length; i++ ) {\r\n\t\t// Only deal with non-null/undefined values\r\n\t\tif ( (options = arguments[ i ]) != null ) {\r\n\t\t\t// Extend the base object\r\n\t\t\tfor ( name in options ) {\r\n\t\t\t\tsrc = target[ name ];\r\n\t\t\t\tcopy = options[ name ];\r\n\r\n\t\t\t\t// Prevent never-ending loop\r\n\t\t\t\tif ( target === copy ) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Recurse if we're merging plain objects or arrays\r\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\r\n\t\t\t\t\tif ( copyIsArray ) {\r\n\t\t\t\t\t\tcopyIsArray = false;\r\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Never move original objects, clone them\r\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\r\n\r\n\t\t\t\t// Don't bring in undefined values\r\n\t\t\t\t} else if ( copy !== undefined ) {\r\n\t\t\t\t\ttarget[ name ] = copy;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Return the modified object\r\n\treturn target;\r\n};\r\n\r\njQuery.extend({\r\n\t// Unique for each copy of jQuery on the page\r\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\r\n\r\n\t// Assume jQuery is ready without the ready module\r\n\tisReady: true,\r\n\r\n\terror: function( msg ) {\r\n\t\tthrow new Error( msg );\r\n\t},\r\n\r\n\tnoop: function() {},\r\n\r\n\t// See test/unit/core.js for details concerning isFunction.\r\n\t// Since version 1.3, DOM methods and functions like alert\r\n\t// aren't supported. They return false on IE (#2968).\r\n\tisFunction: function( obj ) {\r\n\t\treturn jQuery.type(obj) === \"function\";\r\n\t},\r\n\r\n\tisArray: Array.isArray,\r\n\r\n\tisWindow: function( obj ) {\r\n\t\treturn obj != null && obj === obj.window;\r\n\t},\r\n\r\n\tisNumeric: function( obj ) {\r\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\r\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\r\n\t\t// subtraction forces infinities to NaN\r\n\t\treturn !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0;\r\n\t},\r\n\r\n\tisPlainObject: function( obj ) {\r\n\t\t// Not plain objects:\r\n\t\t// - Any object or value whose internal [[Class]] property is not \"[object Object]\"\r\n\t\t// - DOM nodes\r\n\t\t// - window\r\n\t\tif ( jQuery.type( obj ) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif ( obj.constructor &&\r\n\t\t\t\t!hasOwn.call( obj.constructor.prototype, \"isPrototypeOf\" ) ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// If the function hasn't returned already, we're confident that\r\n\t\t// |obj| is a plain object, created by {} or constructed with new Object\r\n\t\treturn true;\r\n\t},\r\n\r\n\tisEmptyObject: function( obj ) {\r\n\t\tvar name;\r\n\t\tfor ( name in obj ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\r\n\ttype: function( obj ) {\r\n\t\tif ( obj == null ) {\r\n\t\t\treturn obj + \"\";\r\n\t\t}\r\n\t\t// Support: Android < 4.0, iOS < 6 (functionish RegExp)\r\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\r\n\t\t\tclass2type[ toString.call(obj) ] || \"object\" :\r\n\t\t\ttypeof obj;\r\n\t},\r\n\r\n\t// Evaluates a script in a global context\r\n\tglobalEval: function( code ) {\r\n\t\tvar script,\r\n\t\t\tindirect = eval;\r\n\r\n\t\tcode = jQuery.trim( code );\r\n\r\n\t\tif ( code ) {\r\n\t\t\t// If the code includes a valid, prologue position\r\n\t\t\t// strict mode pragma, execute code by injecting a\r\n\t\t\t// script tag into the document.\r\n\t\t\tif ( code.indexOf(\"use strict\") === 1 ) {\r\n\t\t\t\tscript = document.createElement(\"script\");\r\n\t\t\t\tscript.text = code;\r\n\t\t\t\tdocument.head.appendChild( script ).parentNode.removeChild( script );\r\n\t\t\t} else {\r\n\t\t\t// Otherwise, avoid the DOM node creation, insertion\r\n\t\t\t// and removal by using an indirect global eval\r\n\t\t\t\tindirect( code );\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// Convert dashed to camelCase; used by the css and data modules\r\n\t// Microsoft forgot to hump their vendor prefix (#9572)\r\n\tcamelCase: function( string ) {\r\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\r\n\t},\r\n\r\n\tnodeName: function( elem, name ) {\r\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\r\n\t},\r\n\r\n\t// args is for internal usage only\r\n\teach: function( obj, callback, args ) {\r\n\t\tvar value,\r\n\t\t\ti = 0,\r\n\t\t\tlength = obj.length,\r\n\t\t\tisArray = isArraylike( obj );\r\n\r\n\t\tif ( args ) {\r\n\t\t\tif ( isArray ) {\r\n\t\t\t\tfor ( ; i < length; i++ ) {\r\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\r\n\r\n\t\t\t\t\tif ( value === false ) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor ( i in obj ) {\r\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\r\n\r\n\t\t\t\t\tif ( value === false ) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t// A special, fast, case for the most common use of each\r\n\t\t} else {\r\n\t\t\tif ( isArray ) {\r\n\t\t\t\tfor ( ; i < length; i++ ) {\r\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\r\n\r\n\t\t\t\t\tif ( value === false ) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor ( i in obj ) {\r\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\r\n\r\n\t\t\t\t\tif ( value === false ) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn obj;\r\n\t},\r\n\r\n\t// Support: Android<4.1\r\n\ttrim: function( text ) {\r\n\t\treturn text == null ?\r\n\t\t\t\"\" :\r\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\r\n\t},\r\n\r\n\t// results is for internal usage only\r\n\tmakeArray: function( arr, results ) {\r\n\t\tvar ret = results || [];\r\n\r\n\t\tif ( arr != null ) {\r\n\t\t\tif ( isArraylike( Object(arr) ) ) {\r\n\t\t\t\tjQuery.merge( ret,\r\n\t\t\t\t\ttypeof arr === \"string\" ?\r\n\t\t\t\t\t[ arr ] : arr\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tpush.call( ret, arr );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\tinArray: function( elem, arr, i ) {\r\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\r\n\t},\r\n\r\n\tmerge: function( first, second ) {\r\n\t\tvar len = +second.length,\r\n\t\t\tj = 0,\r\n\t\t\ti = first.length;\r\n\r\n\t\tfor ( ; j < len; j++ ) {\r\n\t\t\tfirst[ i++ ] = second[ j ];\r\n\t\t}\r\n\r\n\t\tfirst.length = i;\r\n\r\n\t\treturn first;\r\n\t},\r\n\r\n\tgrep: function( elems, callback, invert ) {\r\n\t\tvar callbackInverse,\r\n\t\t\tmatches = [],\r\n\t\t\ti = 0,\r\n\t\t\tlength = elems.length,\r\n\t\t\tcallbackExpect = !invert;\r\n\r\n\t\t// Go through the array, only saving the items\r\n\t\t// that pass the validator function\r\n\t\tfor ( ; i < length; i++ ) {\r\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\r\n\t\t\tif ( callbackInverse !== callbackExpect ) {\r\n\t\t\t\tmatches.push( elems[ i ] );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn matches;\r\n\t},\r\n\r\n\t// arg is for internal usage only\r\n\tmap: function( elems, callback, arg ) {\r\n\t\tvar value,\r\n\t\t\ti = 0,\r\n\t\t\tlength = elems.length,\r\n\t\t\tisArray = isArraylike( elems ),\r\n\t\t\tret = [];\r\n\r\n\t\t// Go through the array, translating each of the items to their new values\r\n\t\tif ( isArray ) {\r\n\t\t\tfor ( ; i < length; i++ ) {\r\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\r\n\r\n\t\t\t\tif ( value != null ) {\r\n\t\t\t\t\tret.push( value );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t// Go through every key on the object,\r\n\t\t} else {\r\n\t\t\tfor ( i in elems ) {\r\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\r\n\r\n\t\t\t\tif ( value != null ) {\r\n\t\t\t\t\tret.push( value );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Flatten any nested arrays\r\n\t\treturn concat.apply( [], ret );\r\n\t},\r\n\r\n\t// A global GUID counter for objects\r\n\tguid: 1,\r\n\r\n\t// Bind a function to a context, optionally partially applying any\r\n\t// arguments.\r\n\tproxy: function( fn, context ) {\r\n\t\tvar tmp, args, proxy;\r\n\r\n\t\tif ( typeof context === \"string\" ) {\r\n\t\t\ttmp = fn[ context ];\r\n\t\t\tcontext = fn;\r\n\t\t\tfn = tmp;\r\n\t\t}\r\n\r\n\t\t// Quick check to determine if target is callable, in the spec\r\n\t\t// this throws a TypeError, but we will just return undefined.\r\n\t\tif ( !jQuery.isFunction( fn ) ) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\r\n\t\t// Simulated bind\r\n\t\targs = slice.call( arguments, 2 );\r\n\t\tproxy = function() {\r\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\r\n\t\t};\r\n\r\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\r\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\r\n\r\n\t\treturn proxy;\r\n\t},\r\n\r\n\tnow: Date.now,\r\n\r\n\t// jQuery.support is not used in Core but other projects attach their\r\n\t// properties to it so it needs to exist.\r\n\tsupport: support\r\n});\r\n\r\n// Populate the class2type map\r\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\r\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\r\n});\r\n\r\nfunction isArraylike( obj ) {\r\n\tvar length = obj.length,\r\n\t\ttype = jQuery.type( obj );\r\n\r\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tif ( obj.nodeType === 1 && length ) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\treturn type === \"array\" || length === 0 ||\r\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\r\n}\r\nvar Sizzle =\r\n\r\n(function( window ) {\r\n\r\nvar i,\r\n\tsupport,\r\n\tExpr,\r\n\tgetText,\r\n\tisXML,\r\n\ttokenize,\r\n\tcompile,\r\n\tselect,\r\n\toutermostContext,\r\n\tsortInput,\r\n\thasDuplicate,\r\n\r\n\t// Local document vars\r\n\tsetDocument,\r\n\tdocument,\r\n\tdocElem,\r\n\tdocumentIsHTML,\r\n\trbuggyQSA,\r\n\trbuggyMatches,\r\n\tmatches,\r\n\tcontains,\r\n\r\n\t// Instance-specific data\r\n\texpando = \"sizzle\" + -(new Date()),\r\n\tpreferredDoc = window.document,\r\n\tdirruns = 0,\r\n\tdone = 0,\r\n\tclassCache = createCache(),\r\n\ttokenCache = createCache(),\r\n\tcompilerCache = createCache(),\r\n\tsortOrder = function( a, b ) {\r\n\t\tif ( a === b ) {\r\n\t\t\thasDuplicate = true;\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// General-purpose constants\r\n\tstrundefined = typeof undefined,\r\n\tMAX_NEGATIVE = 1 << 31,\r\n\r\n\t// Instance methods\r\n\thasOwn = ({}).hasOwnProperty,\r\n\tarr = [],\r\n\tpop = arr.pop,\r\n\tpush_native = arr.push,\r\n\tpush = arr.push,\r\n\tslice = arr.slice,\r\n\t// Use a stripped-down indexOf if we can't use a native one\r\n\tindexOf = arr.indexOf || function( elem ) {\r\n\t\tvar i = 0,\r\n\t\t\tlen = this.length;\r\n\t\tfor ( ; i < len; i++ ) {\r\n\t\t\tif ( this[i] === elem ) {\r\n\t\t\t\treturn i;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn -1;\r\n\t},\r\n\r\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\r\n\r\n\t// Regular expressions\r\n\r\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\r\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\r\n\t// http://www.w3.org/TR/css3-syntax/#characters\r\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\r\n\r\n\t// Loosely modeled on CSS identifier characters\r\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\r\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\r\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\r\n\r\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\r\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\r\n\t\t// Operator (capture 2)\r\n\t\t\"*([*^$|!~]?=)\" + whitespace +\r\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\r\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\r\n\t\t\"*\\\\]\",\r\n\r\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\r\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\r\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\r\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\r\n\t\t// 2. simple (capture 6)\r\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\r\n\t\t// 3. anything else (capture 2)\r\n\t\t\".*\" +\r\n\t\t\")\\\\)|)\",\r\n\r\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\r\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\r\n\r\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\r\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\r\n\r\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\r\n\r\n\trpseudo = new RegExp( pseudos ),\r\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\r\n\r\n\tmatchExpr = {\r\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\r\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\r\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\r\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\r\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\r\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\r\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\r\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\r\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\r\n\t\t// For use in libraries implementing .is()\r\n\t\t// We use this for POS matching in `select`\r\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\r\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\r\n\t},\r\n\r\n\trinputs = /^(?:input|select|textarea|button)$/i,\r\n\trheader = /^h\\d$/i,\r\n\r\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\r\n\r\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\r\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\r\n\r\n\trsibling = /[+~]/,\r\n\trescape = /'|\\\\/g,\r\n\r\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\r\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\r\n\tfunescape = function( _, escaped, escapedWhitespace ) {\r\n\t\tvar high = \"0x\" + escaped - 0x10000;\r\n\t\t// NaN means non-codepoint\r\n\t\t// Support: Firefox<24\r\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\r\n\t\treturn high !== high || escapedWhitespace ?\r\n\t\t\tescaped :\r\n\t\t\thigh < 0 ?\r\n\t\t\t\t// BMP codepoint\r\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\r\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\r\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\r\n\t};\r\n\r\n// Optimize for push.apply( _, NodeList )\r\ntry {\r\n\tpush.apply(\r\n\t\t(arr = slice.call( preferredDoc.childNodes )),\r\n\t\tpreferredDoc.childNodes\r\n\t);\r\n\t// Support: Android<4.0\r\n\t// Detect silently failing push.apply\r\n\tarr[ preferredDoc.childNodes.length ].nodeType;\r\n} catch ( e ) {\r\n\tpush = { apply: arr.length ?\r\n\r\n\t\t// Leverage slice if possible\r\n\t\tfunction( target, els ) {\r\n\t\t\tpush_native.apply( target, slice.call(els) );\r\n\t\t} :\r\n\r\n\t\t// Support: IE<9\r\n\t\t// Otherwise append directly\r\n\t\tfunction( target, els ) {\r\n\t\t\tvar j = target.length,\r\n\t\t\t\ti = 0;\r\n\t\t\t// Can't trust NodeList.length\r\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\r\n\t\t\ttarget.length = j - 1;\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction Sizzle( selector, context, results, seed ) {\r\n\tvar match, elem, m, nodeType,\r\n\t\t// QSA vars\r\n\t\ti, groups, old, nid, newContext, newSelector;\r\n\r\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\r\n\t\tsetDocument( context );\r\n\t}\r\n\r\n\tcontext = context || document;\r\n\tresults = results || [];\r\n\r\n\tif ( !selector || typeof selector !== \"string\" ) {\r\n\t\treturn results;\r\n\t}\r\n\r\n\tif ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tif ( documentIsHTML && !seed ) {\r\n\r\n\t\t// Shortcuts\r\n\t\tif ( (match = rquickExpr.exec( selector )) ) {\r\n\t\t\t// Speed-up: Sizzle(\"#ID\")\r\n\t\t\tif ( (m = match[1]) ) {\r\n\t\t\t\tif ( nodeType === 9 ) {\r\n\t\t\t\t\telem = context.getElementById( m );\r\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\r\n\t\t\t\t\t// nodes that are no longer in the document (jQuery #6963)\r\n\t\t\t\t\tif ( elem && elem.parentNode ) {\r\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\r\n\t\t\t\t\t\t// by name instead of ID\r\n\t\t\t\t\t\tif ( elem.id === m ) {\r\n\t\t\t\t\t\t\tresults.push( elem );\r\n\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Context is not a document\r\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\r\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\r\n\t\t\t\t\t\tresults.push( elem );\r\n\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t// Speed-up: Sizzle(\"TAG\")\r\n\t\t\t} else if ( match[2] ) {\r\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\r\n\t\t\t\treturn results;\r\n\r\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\r\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {\r\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\r\n\t\t\t\treturn results;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// QSA path\r\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\r\n\t\t\tnid = old = expando;\r\n\t\t\tnewContext = context;\r\n\t\t\tnewSelector = nodeType === 9 && selector;\r\n\r\n\t\t\t// qSA works strangely on Element-rooted queries\r\n\t\t\t// We can work around this by specifying an extra ID on the root\r\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\r\n\t\t\t// IE 8 doesn't work on object elements\r\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\r\n\t\t\t\tgroups = tokenize( selector );\r\n\r\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\r\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\r\n\t\t\t\t}\r\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\r\n\r\n\t\t\t\ti = groups.length;\r\n\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\r\n\t\t\t\t}\r\n\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;\r\n\t\t\t\tnewSelector = groups.join(\",\");\r\n\t\t\t}\r\n\r\n\t\t\tif ( newSelector ) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tpush.apply( results,\r\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\r\n\t\t\t\t\t);\r\n\t\t\t\t\treturn results;\r\n\t\t\t\t} catch(qsaError) {\r\n\t\t\t\t} finally {\r\n\t\t\t\t\tif ( !old ) {\r\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// All others\r\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\r\n}\r\n\r\n/**\r\n * Create key-value caches of limited size\r\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\r\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\r\n *\tdeleting the oldest entry\r\n */\r\nfunction createCache() {\r\n\tvar keys = [];\r\n\r\n\tfunction cache( key, value ) {\r\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\r\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\r\n\t\t\t// Only keep the most recent entries\r\n\t\t\tdelete cache[ keys.shift() ];\r\n\t\t}\r\n\t\treturn (cache[ key + \" \" ] = value);\r\n\t}\r\n\treturn cache;\r\n}\r\n\r\n/**\r\n * Mark a function for special use by Sizzle\r\n * @param {Function} fn The function to mark\r\n */\r\nfunction markFunction( fn ) {\r\n\tfn[ expando ] = true;\r\n\treturn fn;\r\n}\r\n\r\n/**\r\n * Support testing using an element\r\n * @param {Function} fn Passed the created div and expects a boolean result\r\n */\r\nfunction assert( fn ) {\r\n\tvar div = document.createElement(\"div\");\r\n\r\n\ttry {\r\n\t\treturn !!fn( div );\r\n\t} catch (e) {\r\n\t\treturn false;\r\n\t} finally {\r\n\t\t// Remove from its parent by default\r\n\t\tif ( div.parentNode ) {\r\n\t\t\tdiv.parentNode.removeChild( div );\r\n\t\t}\r\n\t\t// release memory in IE\r\n\t\tdiv = null;\r\n\t}\r\n}\r\n\r\n/**\r\n * Adds the same handler for all of the specified attrs\r\n * @param {String} attrs Pipe-separated list of attributes\r\n * @param {Function} handler The method that will be applied\r\n */\r\nfunction addHandle( attrs, handler ) {\r\n\tvar arr = attrs.split(\"|\"),\r\n\t\ti = attrs.length;\r\n\r\n\twhile ( i-- ) {\r\n\t\tExpr.attrHandle[ arr[i] ] = handler;\r\n\t}\r\n}\r\n\r\n/**\r\n * Checks document order of two siblings\r\n * @param {Element} a\r\n * @param {Element} b\r\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\r\n */\r\nfunction siblingCheck( a, b ) {\r\n\tvar cur = b && a,\r\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\r\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\r\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\r\n\r\n\t// Use IE sourceIndex if available on both nodes\r\n\tif ( diff ) {\r\n\t\treturn diff;\r\n\t}\r\n\r\n\t// Check if b follows a\r\n\tif ( cur ) {\r\n\t\twhile ( (cur = cur.nextSibling) ) {\r\n\t\t\tif ( cur === b ) {\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn a ? 1 : -1;\r\n}\r\n\r\n/**\r\n * Returns a function to use in pseudos for input types\r\n * @param {String} type\r\n */\r\nfunction createInputPseudo( type ) {\r\n\treturn function( elem ) {\r\n\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\treturn name === \"input\" && elem.type === type;\r\n\t};\r\n}\r\n\r\n/**\r\n * Returns a function to use in pseudos for buttons\r\n * @param {String} type\r\n */\r\nfunction createButtonPseudo( type ) {\r\n\treturn function( elem ) {\r\n\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\r\n\t};\r\n}\r\n\r\n/**\r\n * Returns a function to use in pseudos for positionals\r\n * @param {Function} fn\r\n */\r\nfunction createPositionalPseudo( fn ) {\r\n\treturn markFunction(function( argument ) {\r\n\t\targument = +argument;\r\n\t\treturn markFunction(function( seed, matches ) {\r\n\t\t\tvar j,\r\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\r\n\t\t\t\ti = matchIndexes.length;\r\n\r\n\t\t\t// Match elements found at the specified indexes\r\n\t\t\twhile ( i-- ) {\r\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\r\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Checks a node for validity as a Sizzle context\r\n * @param {Element|Object=} context\r\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\r\n */\r\nfunction testContext( context ) {\r\n\treturn context && typeof context.getElementsByTagName !== strundefined && context;\r\n}\r\n\r\n// Expose support vars for convenience\r\nsupport = Sizzle.support = {};\r\n\r\n/**\r\n * Detects XML nodes\r\n * @param {Element|Object} elem An element or a document\r\n * @returns {Boolean} True iff elem is a non-HTML XML node\r\n */\r\nisXML = Sizzle.isXML = function( elem ) {\r\n\t// documentElement is verified for cases where it doesn't yet exist\r\n\t// (such as loading iframes in IE - #4833)\r\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\r\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\r\n};\r\n\r\n/**\r\n * Sets document-related variables once based on the current document\r\n * @param {Element|Object} [doc] An element or document object to use to set the document\r\n * @returns {Object} Returns the current document\r\n */\r\nsetDocument = Sizzle.setDocument = function( node ) {\r\n\tvar hasCompare,\r\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc,\r\n\t\tparent = doc.defaultView;\r\n\r\n\t// If no document and documentElement is available, return\r\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\r\n\t\treturn document;\r\n\t}\r\n\r\n\t// Set our document\r\n\tdocument = doc;\r\n\tdocElem = doc.documentElement;\r\n\r\n\t// Support tests\r\n\tdocumentIsHTML = !isXML( doc );\r\n\r\n\t// Support: IE>8\r\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\r\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\r\n\t// IE6-8 do not support the defaultView property so parent will be undefined\r\n\tif ( parent && parent !== parent.top ) {\r\n\t\t// IE11 does not have attachEvent, so all must suffer\r\n\t\tif ( parent.addEventListener ) {\r\n\t\t\tparent.addEventListener( \"unload\", function() {\r\n\t\t\t\tsetDocument();\r\n\t\t\t}, false );\r\n\t\t} else if ( parent.attachEvent ) {\r\n\t\t\tparent.attachEvent( \"onunload\", function() {\r\n\t\t\t\tsetDocument();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/* Attributes\r\n\t---------------------------------------------------------------------- */\r\n\r\n\t// Support: IE<8\r\n\t// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)\r\n\tsupport.attributes = assert(function( div ) {\r\n\t\tdiv.className = \"i\";\r\n\t\treturn !div.getAttribute(\"className\");\r\n\t});\r\n\r\n\t/* getElement(s)By*\r\n\t---------------------------------------------------------------------- */\r\n\r\n\t// Check if getElementsByTagName(\"*\") returns only elements\r\n\tsupport.getElementsByTagName = assert(function( div ) {\r\n\t\tdiv.appendChild( doc.createComment(\"\") );\r\n\t\treturn !div.getElementsByTagName(\"*\").length;\r\n\t});\r\n\r\n\t// Check if getElementsByClassName can be trusted\r\n\tsupport.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) {\r\n\t\tdiv.innerHTML = \"
\";\r\n\r\n\t\t// Support: Safari<4\r\n\t\t// Catch class over-caching\r\n\t\tdiv.firstChild.className = \"i\";\r\n\t\t// Support: Opera<10\r\n\t\t// Catch gEBCN failure to find non-leading classes\r\n\t\treturn div.getElementsByClassName(\"i\").length === 2;\r\n\t});\r\n\r\n\t// Support: IE<10\r\n\t// Check if getElementById returns elements by name\r\n\t// The broken getElementById methods don't pick up programatically-set names,\r\n\t// so use a roundabout getElementsByName test\r\n\tsupport.getById = assert(function( div ) {\r\n\t\tdocElem.appendChild( div ).id = expando;\r\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\r\n\t});\r\n\r\n\t// ID find and filter\r\n\tif ( support.getById ) {\r\n\t\tExpr.find[\"ID\"] = function( id, context ) {\r\n\t\t\tif ( typeof context.getElementById !== strundefined && documentIsHTML ) {\r\n\t\t\t\tvar m = context.getElementById( id );\r\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\r\n\t\t\t\t// nodes that are no longer in the document #6963\r\n\t\t\t\treturn m && m.parentNode ? [ m ] : [];\r\n\t\t\t}\r\n\t\t};\r\n\t\tExpr.filter[\"ID\"] = function( id ) {\r\n\t\t\tvar attrId = id.replace( runescape, funescape );\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\r\n\t\t\t};\r\n\t\t};\r\n\t} else {\r\n\t\t// Support: IE6/7\r\n\t\t// getElementById is not reliable as a find shortcut\r\n\t\tdelete Expr.find[\"ID\"];\r\n\r\n\t\tExpr.filter[\"ID\"] = function( id ) {\r\n\t\t\tvar attrId = id.replace( runescape, funescape );\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\tvar node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode(\"id\");\r\n\t\t\t\treturn node && node.value === attrId;\r\n\t\t\t};\r\n\t\t};\r\n\t}\r\n\r\n\t// Tag\r\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\r\n\t\tfunction( tag, context ) {\r\n\t\t\tif ( typeof context.getElementsByTagName !== strundefined ) {\r\n\t\t\t\treturn context.getElementsByTagName( tag );\r\n\t\t\t}\r\n\t\t} :\r\n\t\tfunction( tag, context ) {\r\n\t\t\tvar elem,\r\n\t\t\t\ttmp = [],\r\n\t\t\t\ti = 0,\r\n\t\t\t\tresults = context.getElementsByTagName( tag );\r\n\r\n\t\t\t// Filter out possible comments\r\n\t\t\tif ( tag === \"*\" ) {\r\n\t\t\t\twhile ( (elem = results[i++]) ) {\r\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\r\n\t\t\t\t\t\ttmp.push( elem );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn tmp;\r\n\t\t\t}\r\n\t\t\treturn results;\r\n\t\t};\r\n\r\n\t// Class\r\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\r\n\t\tif ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {\r\n\t\t\treturn context.getElementsByClassName( className );\r\n\t\t}\r\n\t};\r\n\r\n\t/* QSA/matchesSelector\r\n\t---------------------------------------------------------------------- */\r\n\r\n\t// QSA and matchesSelector support\r\n\r\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\r\n\trbuggyMatches = [];\r\n\r\n\t// qSa(:focus) reports false when true (Chrome 21)\r\n\t// We allow this because of a bug in IE8/9 that throws an error\r\n\t// whenever `document.activeElement` is accessed on an iframe\r\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\r\n\t// See http://bugs.jquery.com/ticket/13378\r\n\trbuggyQSA = [];\r\n\r\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\r\n\t\t// Build QSA regex\r\n\t\t// Regex strategy adopted from Diego Perini\r\n\t\tassert(function( div ) {\r\n\t\t\t// Select is set to empty string on purpose\r\n\t\t\t// This is to test IE's treatment of not explicitly\r\n\t\t\t// setting a boolean content attribute,\r\n\t\t\t// since its presence should be enough\r\n\t\t\t// http://bugs.jquery.com/ticket/12359\r\n\t\t\tdiv.innerHTML = \"\";\r\n\r\n\t\t\t// Support: IE8, Opera 11-12.16\r\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\r\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\r\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\r\n\t\t\tif ( div.querySelectorAll(\"[msallowclip^='']\").length ) {\r\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: IE8\r\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\r\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\r\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Webkit/Opera - :checked should return selected option elements\r\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r\n\t\t\t// IE8 throws error here and will not see later tests\r\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\r\n\t\t\t\trbuggyQSA.push(\":checked\");\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tassert(function( div ) {\r\n\t\t\t// Support: Windows 8 Native Apps\r\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\r\n\t\t\tvar input = doc.createElement(\"input\");\r\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\r\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\r\n\r\n\t\t\t// Support: IE8\r\n\t\t\t// Enforce case-sensitivity of name attribute\r\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\r\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\r\n\t\t\t}\r\n\r\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\r\n\t\t\t// IE8 throws error here and will not see later tests\r\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\r\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\r\n\t\t\tdiv.querySelectorAll(\"*,:x\");\r\n\t\t\trbuggyQSA.push(\",.*:\");\r\n\t\t});\r\n\t}\r\n\r\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\r\n\t\tdocElem.webkitMatchesSelector ||\r\n\t\tdocElem.mozMatchesSelector ||\r\n\t\tdocElem.oMatchesSelector ||\r\n\t\tdocElem.msMatchesSelector) )) ) {\r\n\r\n\t\tassert(function( div ) {\r\n\t\t\t// Check to see if it's possible to do matchesSelector\r\n\t\t\t// on a disconnected node (IE 9)\r\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\r\n\r\n\t\t\t// This should fail with an exception\r\n\t\t\t// Gecko does not error, returns false instead\r\n\t\t\tmatches.call( div, \"[s!='']:x\" );\r\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\r\n\t\t});\r\n\t}\r\n\r\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\r\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\r\n\r\n\t/* Contains\r\n\t---------------------------------------------------------------------- */\r\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\r\n\r\n\t// Element contains another\r\n\t// Purposefully does not implement inclusive descendent\r\n\t// As in, an element does not contain itself\r\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\r\n\t\tfunction( a, b ) {\r\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\r\n\t\t\t\tbup = b && b.parentNode;\r\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\r\n\t\t\t\tadown.contains ?\r\n\t\t\t\t\tadown.contains( bup ) :\r\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\r\n\t\t\t));\r\n\t\t} :\r\n\t\tfunction( a, b ) {\r\n\t\t\tif ( b ) {\r\n\t\t\t\twhile ( (b = b.parentNode) ) {\r\n\t\t\t\t\tif ( b === a ) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\t/* Sorting\r\n\t---------------------------------------------------------------------- */\r\n\r\n\t// Document order sorting\r\n\tsortOrder = hasCompare ?\r\n\tfunction( a, b ) {\r\n\r\n\t\t// Flag for duplicate removal\r\n\t\tif ( a === b ) {\r\n\t\t\thasDuplicate = true;\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Sort on method existence if only one input has compareDocumentPosition\r\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\r\n\t\tif ( compare ) {\r\n\t\t\treturn compare;\r\n\t\t}\r\n\r\n\t\t// Calculate position if both inputs belong to the same document\r\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\r\n\t\t\ta.compareDocumentPosition( b ) :\r\n\r\n\t\t\t// Otherwise we know they are disconnected\r\n\t\t\t1;\r\n\r\n\t\t// Disconnected nodes\r\n\t\tif ( compare & 1 ||\r\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\r\n\r\n\t\t\t// Choose the first element that is related to our preferred document\r\n\t\t\tif ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t\tif ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\r\n\t\t\t// Maintain original order\r\n\t\t\treturn sortInput ?\r\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\r\n\t\t\t\t0;\r\n\t\t}\r\n\r\n\t\treturn compare & 4 ? -1 : 1;\r\n\t} :\r\n\tfunction( a, b ) {\r\n\t\t// Exit early if the nodes are identical\r\n\t\tif ( a === b ) {\r\n\t\t\thasDuplicate = true;\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tvar cur,\r\n\t\t\ti = 0,\r\n\t\t\taup = a.parentNode,\r\n\t\t\tbup = b.parentNode,\r\n\t\t\tap = [ a ],\r\n\t\t\tbp = [ b ];\r\n\r\n\t\t// Parentless nodes are either documents or disconnected\r\n\t\tif ( !aup || !bup ) {\r\n\t\t\treturn a === doc ? -1 :\r\n\t\t\t\tb === doc ? 1 :\r\n\t\t\t\taup ? -1 :\r\n\t\t\t\tbup ? 1 :\r\n\t\t\t\tsortInput ?\r\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\r\n\t\t\t\t0;\r\n\r\n\t\t// If the nodes are siblings, we can do a quick check\r\n\t\t} else if ( aup === bup ) {\r\n\t\t\treturn siblingCheck( a, b );\r\n\t\t}\r\n\r\n\t\t// Otherwise we need full lists of their ancestors for comparison\r\n\t\tcur = a;\r\n\t\twhile ( (cur = cur.parentNode) ) {\r\n\t\t\tap.unshift( cur );\r\n\t\t}\r\n\t\tcur = b;\r\n\t\twhile ( (cur = cur.parentNode) ) {\r\n\t\t\tbp.unshift( cur );\r\n\t\t}\r\n\r\n\t\t// Walk down the tree looking for a discrepancy\r\n\t\twhile ( ap[i] === bp[i] ) {\r\n\t\t\ti++;\r\n\t\t}\r\n\r\n\t\treturn i ?\r\n\t\t\t// Do a sibling check if the nodes have a common ancestor\r\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\r\n\r\n\t\t\t// Otherwise nodes in our document sort first\r\n\t\t\tap[i] === preferredDoc ? -1 :\r\n\t\t\tbp[i] === preferredDoc ? 1 :\r\n\t\t\t0;\r\n\t};\r\n\r\n\treturn doc;\r\n};\r\n\r\nSizzle.matches = function( expr, elements ) {\r\n\treturn Sizzle( expr, null, null, elements );\r\n};\r\n\r\nSizzle.matchesSelector = function( elem, expr ) {\r\n\t// Set document vars if needed\r\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\r\n\t\tsetDocument( elem );\r\n\t}\r\n\r\n\t// Make sure that attribute selectors are quoted\r\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\r\n\r\n\tif ( support.matchesSelector && documentIsHTML &&\r\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\r\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\r\n\r\n\t\ttry {\r\n\t\t\tvar ret = matches.call( elem, expr );\r\n\r\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\r\n\t\t\tif ( ret || support.disconnectedMatch ||\r\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\r\n\t\t\t\t\t// fragment in IE 9\r\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\t\t} catch(e) {}\r\n\t}\r\n\r\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\r\n};\r\n\r\nSizzle.contains = function( context, elem ) {\r\n\t// Set document vars if needed\r\n\tif ( ( context.ownerDocument || context ) !== document ) {\r\n\t\tsetDocument( context );\r\n\t}\r\n\treturn contains( context, elem );\r\n};\r\n\r\nSizzle.attr = function( elem, name ) {\r\n\t// Set document vars if needed\r\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\r\n\t\tsetDocument( elem );\r\n\t}\r\n\r\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\r\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\r\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\r\n\t\t\tfn( elem, name, !documentIsHTML ) :\r\n\t\t\tundefined;\r\n\r\n\treturn val !== undefined ?\r\n\t\tval :\r\n\t\tsupport.attributes || !documentIsHTML ?\r\n\t\t\telem.getAttribute( name ) :\r\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\r\n\t\t\t\tval.value :\r\n\t\t\t\tnull;\r\n};\r\n\r\nSizzle.error = function( msg ) {\r\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\r\n};\r\n\r\n/**\r\n * Document sorting and removing duplicates\r\n * @param {ArrayLike} results\r\n */\r\nSizzle.uniqueSort = function( results ) {\r\n\tvar elem,\r\n\t\tduplicates = [],\r\n\t\tj = 0,\r\n\t\ti = 0;\r\n\r\n\t// Unless we *know* we can detect duplicates, assume their presence\r\n\thasDuplicate = !support.detectDuplicates;\r\n\tsortInput = !support.sortStable && results.slice( 0 );\r\n\tresults.sort( sortOrder );\r\n\r\n\tif ( hasDuplicate ) {\r\n\t\twhile ( (elem = results[i++]) ) {\r\n\t\t\tif ( elem === results[ i ] ) {\r\n\t\t\t\tj = duplicates.push( i );\r\n\t\t\t}\r\n\t\t}\r\n\t\twhile ( j-- ) {\r\n\t\t\tresults.splice( duplicates[ j ], 1 );\r\n\t\t}\r\n\t}\r\n\r\n\t// Clear input after sorting to release objects\r\n\t// See https://github.com/jquery/sizzle/pull/225\r\n\tsortInput = null;\r\n\r\n\treturn results;\r\n};\r\n\r\n/**\r\n * Utility function for retrieving the text value of an array of DOM nodes\r\n * @param {Array|Element} elem\r\n */\r\ngetText = Sizzle.getText = function( elem ) {\r\n\tvar node,\r\n\t\tret = \"\",\r\n\t\ti = 0,\r\n\t\tnodeType = elem.nodeType;\r\n\r\n\tif ( !nodeType ) {\r\n\t\t// If no nodeType, this is expected to be an array\r\n\t\twhile ( (node = elem[i++]) ) {\r\n\t\t\t// Do not traverse comment nodes\r\n\t\t\tret += getText( node );\r\n\t\t}\r\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\r\n\t\t// Use textContent for elements\r\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\r\n\t\tif ( typeof elem.textContent === \"string\" ) {\r\n\t\t\treturn elem.textContent;\r\n\t\t} else {\r\n\t\t\t// Traverse its children\r\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\r\n\t\t\t\tret += getText( elem );\r\n\t\t\t}\r\n\t\t}\r\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\r\n\t\treturn elem.nodeValue;\r\n\t}\r\n\t// Do not include comment or processing instruction nodes\r\n\r\n\treturn ret;\r\n};\r\n\r\nExpr = Sizzle.selectors = {\r\n\r\n\t// Can be adjusted by the user\r\n\tcacheLength: 50,\r\n\r\n\tcreatePseudo: markFunction,\r\n\r\n\tmatch: matchExpr,\r\n\r\n\tattrHandle: {},\r\n\r\n\tfind: {},\r\n\r\n\trelative: {\r\n\t\t\">\": { dir: \"parentNode\", first: true },\r\n\t\t\" \": { dir: \"parentNode\" },\r\n\t\t\"+\": { dir: \"previousSibling\", first: true },\r\n\t\t\"~\": { dir: \"previousSibling\" }\r\n\t},\r\n\r\n\tpreFilter: {\r\n\t\t\"ATTR\": function( match ) {\r\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\r\n\r\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\r\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\r\n\r\n\t\t\tif ( match[2] === \"~=\" ) {\r\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\r\n\t\t\t}\r\n\r\n\t\t\treturn match.slice( 0, 4 );\r\n\t\t},\r\n\r\n\t\t\"CHILD\": function( match ) {\r\n\t\t\t/* matches from matchExpr[\"CHILD\"]\r\n\t\t\t\t1 type (only|nth|...)\r\n\t\t\t\t2 what (child|of-type)\r\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\r\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\r\n\t\t\t\t5 sign of xn-component\r\n\t\t\t\t6 x of xn-component\r\n\t\t\t\t7 sign of y-component\r\n\t\t\t\t8 y of y-component\r\n\t\t\t*/\r\n\t\t\tmatch[1] = match[1].toLowerCase();\r\n\r\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\r\n\t\t\t\t// nth-* requires argument\r\n\t\t\t\tif ( !match[3] ) {\r\n\t\t\t\t\tSizzle.error( match[0] );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\r\n\t\t\t\t// remember that false/true cast respectively to 0/1\r\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\r\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\r\n\r\n\t\t\t// other types prohibit arguments\r\n\t\t\t} else if ( match[3] ) {\r\n\t\t\t\tSizzle.error( match[0] );\r\n\t\t\t}\r\n\r\n\t\t\treturn match;\r\n\t\t},\r\n\r\n\t\t\"PSEUDO\": function( match ) {\r\n\t\t\tvar excess,\r\n\t\t\t\tunquoted = !match[6] && match[2];\r\n\r\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\t// Accept quoted arguments as-is\r\n\t\t\tif ( match[3] ) {\r\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\r\n\r\n\t\t\t// Strip excess characters from unquoted arguments\r\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\r\n\t\t\t\t// Get excess from tokenize (recursively)\r\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\r\n\t\t\t\t// advance to the next closing parenthesis\r\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\r\n\r\n\t\t\t\t// excess is a negative index\r\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\r\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\r\n\t\t\t}\r\n\r\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\r\n\t\t\treturn match.slice( 0, 3 );\r\n\t\t}\r\n\t},\r\n\r\n\tfilter: {\r\n\r\n\t\t\"TAG\": function( nodeNameSelector ) {\r\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\r\n\t\t\treturn nodeNameSelector === \"*\" ?\r\n\t\t\t\tfunction() { return true; } :\r\n\t\t\t\tfunction( elem ) {\r\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\r\n\t\t\t\t};\r\n\t\t},\r\n\r\n\t\t\"CLASS\": function( className ) {\r\n\t\t\tvar pattern = classCache[ className + \" \" ];\r\n\r\n\t\t\treturn pattern ||\r\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\r\n\t\t\t\tclassCache( className, function( elem ) {\r\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute(\"class\") || \"\" );\r\n\t\t\t\t});\r\n\t\t},\r\n\r\n\t\t\"ATTR\": function( name, operator, check ) {\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\tvar result = Sizzle.attr( elem, name );\r\n\r\n\t\t\t\tif ( result == null ) {\r\n\t\t\t\t\treturn operator === \"!=\";\r\n\t\t\t\t}\r\n\t\t\t\tif ( !operator ) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tresult += \"\";\r\n\r\n\t\t\t\treturn operator === \"=\" ? result === check :\r\n\t\t\t\t\toperator === \"!=\" ? result !== check :\r\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\r\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\r\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\r\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result + \" \" ).indexOf( check ) > -1 :\r\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\r\n\t\t\t\t\tfalse;\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\r\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\r\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\r\n\t\t\t\tofType = what === \"of-type\";\r\n\r\n\t\t\treturn first === 1 && last === 0 ?\r\n\r\n\t\t\t\t// Shortcut for :nth-*(n)\r\n\t\t\t\tfunction( elem ) {\r\n\t\t\t\t\treturn !!elem.parentNode;\r\n\t\t\t\t} :\r\n\r\n\t\t\t\tfunction( elem, context, xml ) {\r\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\r\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\r\n\t\t\t\t\t\tparent = elem.parentNode,\r\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\r\n\t\t\t\t\t\tuseCache = !xml && !ofType;\r\n\r\n\t\t\t\t\tif ( parent ) {\r\n\r\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\r\n\t\t\t\t\t\tif ( simple ) {\r\n\t\t\t\t\t\t\twhile ( dir ) {\r\n\t\t\t\t\t\t\t\tnode = elem;\r\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\r\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\r\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\r\n\r\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\r\n\t\t\t\t\t\tif ( forward && useCache ) {\r\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\r\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\r\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\r\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\r\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\r\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\r\n\r\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\r\n\r\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\r\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\r\n\r\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\r\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\r\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Use previously-cached element index if available\r\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\r\n\t\t\t\t\t\t\tdiff = cache[1];\r\n\r\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\r\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\r\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\r\n\r\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\r\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\r\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\r\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\r\n\t\t\t\t\t\tdiff -= last;\r\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t},\r\n\r\n\t\t\"PSEUDO\": function( pseudo, argument ) {\r\n\t\t\t// pseudo-class names are case-insensitive\r\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\r\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\r\n\t\t\t// Remember that setFilters inherits from pseudos\r\n\t\t\tvar args,\r\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\r\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\r\n\r\n\t\t\t// The user may use createPseudo to indicate that\r\n\t\t\t// arguments are needed to create the filter function\r\n\t\t\t// just as Sizzle does\r\n\t\t\tif ( fn[ expando ] ) {\r\n\t\t\t\treturn fn( argument );\r\n\t\t\t}\r\n\r\n\t\t\t// But maintain support for old signatures\r\n\t\t\tif ( fn.length > 1 ) {\r\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\r\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\r\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\r\n\t\t\t\t\t\tvar idx,\r\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\r\n\t\t\t\t\t\t\ti = matched.length;\r\n\t\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[i] );\r\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}) :\r\n\t\t\t\t\tfunction( elem ) {\r\n\t\t\t\t\t\treturn fn( elem, 0, args );\r\n\t\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn fn;\r\n\t\t}\r\n\t},\r\n\r\n\tpseudos: {\r\n\t\t// Potentially complex pseudos\r\n\t\t\"not\": markFunction(function( selector ) {\r\n\t\t\t// Trim the selector passed to compile\r\n\t\t\t// to avoid treating leading and trailing\r\n\t\t\t// spaces as combinators\r\n\t\t\tvar input = [],\r\n\t\t\t\tresults = [],\r\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\r\n\r\n\t\t\treturn matcher[ expando ] ?\r\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\r\n\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\r\n\t\t\t\t\t\ti = seed.length;\r\n\r\n\t\t\t\t\t// Match elements unmatched by `matcher`\r\n\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\r\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}) :\r\n\t\t\t\tfunction( elem, context, xml ) {\r\n\t\t\t\t\tinput[0] = elem;\r\n\t\t\t\t\tmatcher( input, null, xml, results );\r\n\t\t\t\t\treturn !results.pop();\r\n\t\t\t\t};\r\n\t\t}),\r\n\r\n\t\t\"has\": markFunction(function( selector ) {\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\r\n\t\t\t};\r\n\t\t}),\r\n\r\n\t\t\"contains\": markFunction(function( text ) {\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\r\n\t\t\t};\r\n\t\t}),\r\n\r\n\t\t// \"Whether an element is represented by a :lang() selector\r\n\t\t// is based solely on the element's language value\r\n\t\t// being equal to the identifier C,\r\n\t\t// or beginning with the identifier C immediately followed by \"-\".\r\n\t\t// The matching of C against the element's language value is performed case-insensitively.\r\n\t\t// The identifier C does not have to be a valid language name.\"\r\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\r\n\t\t\"lang\": markFunction( function( lang ) {\r\n\t\t\t// lang value must be a valid identifier\r\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\r\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\r\n\t\t\t}\r\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\tvar elemLang;\r\n\t\t\t\tdo {\r\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\r\n\t\t\t\t\t\telem.lang :\r\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\r\n\r\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\r\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\r\n\t\t\t\treturn false;\r\n\t\t\t};\r\n\t\t}),\r\n\r\n\t\t// Miscellaneous\r\n\t\t\"target\": function( elem ) {\r\n\t\t\tvar hash = window.location && window.location.hash;\r\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\r\n\t\t},\r\n\r\n\t\t\"root\": function( elem ) {\r\n\t\t\treturn elem === docElem;\r\n\t\t},\r\n\r\n\t\t\"focus\": function( elem ) {\r\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\r\n\t\t},\r\n\r\n\t\t// Boolean properties\r\n\t\t\"enabled\": function( elem ) {\r\n\t\t\treturn elem.disabled === false;\r\n\t\t},\r\n\r\n\t\t\"disabled\": function( elem ) {\r\n\t\t\treturn elem.disabled === true;\r\n\t\t},\r\n\r\n\t\t\"checked\": function( elem ) {\r\n\t\t\t// In CSS3, :checked should return both checked and selected elements\r\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\r\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\r\n\t\t},\r\n\r\n\t\t\"selected\": function( elem ) {\r\n\t\t\t// Accessing this property makes selected-by-default\r\n\t\t\t// options in Safari work properly\r\n\t\t\tif ( elem.parentNode ) {\r\n\t\t\t\telem.parentNode.selectedIndex;\r\n\t\t\t}\r\n\r\n\t\t\treturn elem.selected === true;\r\n\t\t},\r\n\r\n\t\t// Contents\r\n\t\t\"empty\": function( elem ) {\r\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\r\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\r\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\r\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\r\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\r\n\t\t\t\tif ( elem.nodeType < 6 ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t},\r\n\r\n\t\t\"parent\": function( elem ) {\r\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\r\n\t\t},\r\n\r\n\t\t// Element/input types\r\n\t\t\"header\": function( elem ) {\r\n\t\t\treturn rheader.test( elem.nodeName );\r\n\t\t},\r\n\r\n\t\t\"input\": function( elem ) {\r\n\t\t\treturn rinputs.test( elem.nodeName );\r\n\t\t},\r\n\r\n\t\t\"button\": function( elem ) {\r\n\t\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\r\n\t\t},\r\n\r\n\t\t\"text\": function( elem ) {\r\n\t\t\tvar attr;\r\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\r\n\t\t\t\telem.type === \"text\" &&\r\n\r\n\t\t\t\t// Support: IE<8\r\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\r\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\r\n\t\t},\r\n\r\n\t\t// Position-in-collection\r\n\t\t\"first\": createPositionalPseudo(function() {\r\n\t\t\treturn [ 0 ];\r\n\t\t}),\r\n\r\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\r\n\t\t\treturn [ length - 1 ];\r\n\t\t}),\r\n\r\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\r\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\r\n\t\t}),\r\n\r\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\r\n\t\t\tvar i = 0;\r\n\t\t\tfor ( ; i < length; i += 2 ) {\r\n\t\t\t\tmatchIndexes.push( i );\r\n\t\t\t}\r\n\t\t\treturn matchIndexes;\r\n\t\t}),\r\n\r\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\r\n\t\t\tvar i = 1;\r\n\t\t\tfor ( ; i < length; i += 2 ) {\r\n\t\t\t\tmatchIndexes.push( i );\r\n\t\t\t}\r\n\t\t\treturn matchIndexes;\r\n\t\t}),\r\n\r\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\r\n\t\t\tvar i = argument < 0 ? argument + length : argument;\r\n\t\t\tfor ( ; --i >= 0; ) {\r\n\t\t\t\tmatchIndexes.push( i );\r\n\t\t\t}\r\n\t\t\treturn matchIndexes;\r\n\t\t}),\r\n\r\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\r\n\t\t\tvar i = argument < 0 ? argument + length : argument;\r\n\t\t\tfor ( ; ++i < length; ) {\r\n\t\t\t\tmatchIndexes.push( i );\r\n\t\t\t}\r\n\t\t\treturn matchIndexes;\r\n\t\t})\r\n\t}\r\n};\r\n\r\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\r\n\r\n// Add button/input type pseudos\r\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\r\n\tExpr.pseudos[ i ] = createInputPseudo( i );\r\n}\r\nfor ( i in { submit: true, reset: true } ) {\r\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\r\n}\r\n\r\n// Easy API for creating new setFilters\r\nfunction setFilters() {}\r\nsetFilters.prototype = Expr.filters = Expr.pseudos;\r\nExpr.setFilters = new setFilters();\r\n\r\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\r\n\tvar matched, match, tokens, type,\r\n\t\tsoFar, groups, preFilters,\r\n\t\tcached = tokenCache[ selector + \" \" ];\r\n\r\n\tif ( cached ) {\r\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\r\n\t}\r\n\r\n\tsoFar = selector;\r\n\tgroups = [];\r\n\tpreFilters = Expr.preFilter;\r\n\r\n\twhile ( soFar ) {\r\n\r\n\t\t// Comma and first run\r\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\r\n\t\t\tif ( match ) {\r\n\t\t\t\t// Don't consume trailing commas as valid\r\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\r\n\t\t\t}\r\n\t\t\tgroups.push( (tokens = []) );\r\n\t\t}\r\n\r\n\t\tmatched = false;\r\n\r\n\t\t// Combinators\r\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\r\n\t\t\tmatched = match.shift();\r\n\t\t\ttokens.push({\r\n\t\t\t\tvalue: matched,\r\n\t\t\t\t// Cast descendant combinators to space\r\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\r\n\t\t\t});\r\n\t\t\tsoFar = soFar.slice( matched.length );\r\n\t\t}\r\n\r\n\t\t// Filters\r\n\t\tfor ( type in Expr.filter ) {\r\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\r\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\r\n\t\t\t\tmatched = match.shift();\r\n\t\t\t\ttokens.push({\r\n\t\t\t\t\tvalue: matched,\r\n\t\t\t\t\ttype: type,\r\n\t\t\t\t\tmatches: match\r\n\t\t\t\t});\r\n\t\t\t\tsoFar = soFar.slice( matched.length );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( !matched ) {\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\t// Return the length of the invalid excess\r\n\t// if we're just parsing\r\n\t// Otherwise, throw an error or return tokens\r\n\treturn parseOnly ?\r\n\t\tsoFar.length :\r\n\t\tsoFar ?\r\n\t\t\tSizzle.error( selector ) :\r\n\t\t\t// Cache the tokens\r\n\t\t\ttokenCache( selector, groups ).slice( 0 );\r\n};\r\n\r\nfunction toSelector( tokens ) {\r\n\tvar i = 0,\r\n\t\tlen = tokens.length,\r\n\t\tselector = \"\";\r\n\tfor ( ; i < len; i++ ) {\r\n\t\tselector += tokens[i].value;\r\n\t}\r\n\treturn selector;\r\n}\r\n\r\nfunction addCombinator( matcher, combinator, base ) {\r\n\tvar dir = combinator.dir,\r\n\t\tcheckNonElements = base && dir === \"parentNode\",\r\n\t\tdoneName = done++;\r\n\r\n\treturn combinator.first ?\r\n\t\t// Check against closest ancestor/preceding element\r\n\t\tfunction( elem, context, xml ) {\r\n\t\t\twhile ( (elem = elem[ dir ]) ) {\r\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\r\n\t\t\t\t\treturn matcher( elem, context, xml );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} :\r\n\r\n\t\t// Check against all ancestor/preceding elements\r\n\t\tfunction( elem, context, xml ) {\r\n\t\t\tvar oldCache, outerCache,\r\n\t\t\t\tnewCache = [ dirruns, doneName ];\r\n\r\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\r\n\t\t\tif ( xml ) {\r\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\r\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\r\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\r\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\r\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\r\n\t\t\t\t\t\tif ( (oldCache = outerCache[ dir ]) &&\r\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\r\n\r\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\r\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\r\n\t\t\t\t\t\t\touterCache[ dir ] = newCache;\r\n\r\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\r\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n}\r\n\r\nfunction elementMatcher( matchers ) {\r\n\treturn matchers.length > 1 ?\r\n\t\tfunction( elem, context, xml ) {\r\n\t\t\tvar i = matchers.length;\r\n\t\t\twhile ( i-- ) {\r\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t} :\r\n\t\tmatchers[0];\r\n}\r\n\r\nfunction multipleContexts( selector, contexts, results ) {\r\n\tvar i = 0,\r\n\t\tlen = contexts.length;\r\n\tfor ( ; i < len; i++ ) {\r\n\t\tSizzle( selector, contexts[i], results );\r\n\t}\r\n\treturn results;\r\n}\r\n\r\nfunction condense( unmatched, map, filter, context, xml ) {\r\n\tvar elem,\r\n\t\tnewUnmatched = [],\r\n\t\ti = 0,\r\n\t\tlen = unmatched.length,\r\n\t\tmapped = map != null;\r\n\r\n\tfor ( ; i < len; i++ ) {\r\n\t\tif ( (elem = unmatched[i]) ) {\r\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\r\n\t\t\t\tnewUnmatched.push( elem );\r\n\t\t\t\tif ( mapped ) {\r\n\t\t\t\t\tmap.push( i );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn newUnmatched;\r\n}\r\n\r\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\r\n\tif ( postFilter && !postFilter[ expando ] ) {\r\n\t\tpostFilter = setMatcher( postFilter );\r\n\t}\r\n\tif ( postFinder && !postFinder[ expando ] ) {\r\n\t\tpostFinder = setMatcher( postFinder, postSelector );\r\n\t}\r\n\treturn markFunction(function( seed, results, context, xml ) {\r\n\t\tvar temp, i, elem,\r\n\t\t\tpreMap = [],\r\n\t\t\tpostMap = [],\r\n\t\t\tpreexisting = results.length,\r\n\r\n\t\t\t// Get initial elements from seed or context\r\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\r\n\r\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\r\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\r\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\r\n\t\t\t\telems,\r\n\r\n\t\t\tmatcherOut = matcher ?\r\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\r\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\r\n\r\n\t\t\t\t\t// ...intermediate processing is necessary\r\n\t\t\t\t\t[] :\r\n\r\n\t\t\t\t\t// ...otherwise use results directly\r\n\t\t\t\t\tresults :\r\n\t\t\t\tmatcherIn;\r\n\r\n\t\t// Find primary matches\r\n\t\tif ( matcher ) {\r\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\r\n\t\t}\r\n\r\n\t\t// Apply postFilter\r\n\t\tif ( postFilter ) {\r\n\t\t\ttemp = condense( matcherOut, postMap );\r\n\t\t\tpostFilter( temp, [], context, xml );\r\n\r\n\t\t\t// Un-match failing elements by moving them back to matcherIn\r\n\t\t\ti = temp.length;\r\n\t\t\twhile ( i-- ) {\r\n\t\t\t\tif ( (elem = temp[i]) ) {\r\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( seed ) {\r\n\t\t\tif ( postFinder || preFilter ) {\r\n\t\t\t\tif ( postFinder ) {\r\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\r\n\t\t\t\t\ttemp = [];\r\n\t\t\t\t\ti = matcherOut.length;\r\n\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\r\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\r\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\r\n\t\t\t\ti = matcherOut.length;\r\n\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\r\n\t\t\t\t\t\t(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {\r\n\r\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t// Add elements to results, through postFinder if defined\r\n\t\t} else {\r\n\t\t\tmatcherOut = condense(\r\n\t\t\t\tmatcherOut === results ?\r\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\r\n\t\t\t\t\tmatcherOut\r\n\t\t\t);\r\n\t\t\tif ( postFinder ) {\r\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\r\n\t\t\t} else {\r\n\t\t\t\tpush.apply( results, matcherOut );\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction matcherFromTokens( tokens ) {\r\n\tvar checkContext, matcher, j,\r\n\t\tlen = tokens.length,\r\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\r\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\r\n\t\ti = leadingRelative ? 1 : 0,\r\n\r\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\r\n\t\tmatchContext = addCombinator( function( elem ) {\r\n\t\t\treturn elem === checkContext;\r\n\t\t}, implicitRelative, true ),\r\n\t\tmatchAnyContext = addCombinator( function( elem ) {\r\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\r\n\t\t}, implicitRelative, true ),\r\n\t\tmatchers = [ function( elem, context, xml ) {\r\n\t\t\treturn ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\r\n\t\t\t\t(checkContext = context).nodeType ?\r\n\t\t\t\t\tmatchContext( elem, context, xml ) :\r\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\r\n\t\t} ];\r\n\r\n\tfor ( ; i < len; i++ ) {\r\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\r\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\r\n\t\t} else {\r\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\r\n\r\n\t\t\t// Return special upon seeing a positional matcher\r\n\t\t\tif ( matcher[ expando ] ) {\r\n\t\t\t\t// Find the next relative operator (if any) for proper handling\r\n\t\t\t\tj = ++i;\r\n\t\t\t\tfor ( ; j < len; j++ ) {\r\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn setMatcher(\r\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\r\n\t\t\t\t\ti > 1 && toSelector(\r\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\r\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\r\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\r\n\t\t\t\t\tmatcher,\r\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\r\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\r\n\t\t\t\t\tj < len && toSelector( tokens )\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tmatchers.push( matcher );\r\n\t\t}\r\n\t}\r\n\r\n\treturn elementMatcher( matchers );\r\n}\r\n\r\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\r\n\tvar bySet = setMatchers.length > 0,\r\n\t\tbyElement = elementMatchers.length > 0,\r\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\r\n\t\t\tvar elem, j, matcher,\r\n\t\t\t\tmatchedCount = 0,\r\n\t\t\t\ti = \"0\",\r\n\t\t\t\tunmatched = seed && [],\r\n\t\t\t\tsetMatched = [],\r\n\t\t\t\tcontextBackup = outermostContext,\r\n\t\t\t\t// We must always have either seed elements or outermost context\r\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\r\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\r\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\r\n\t\t\t\tlen = elems.length;\r\n\r\n\t\t\tif ( outermost ) {\r\n\t\t\t\toutermostContext = context !== document && context;\r\n\t\t\t}\r\n\r\n\t\t\t// Add elements passing elementMatchers directly to results\r\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\r\n\t\t\t// Support: IE<9, Safari\r\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\r\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\r\n\t\t\t\tif ( byElement && elem ) {\r\n\t\t\t\t\tj = 0;\r\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\r\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\r\n\t\t\t\t\t\t\tresults.push( elem );\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( outermost ) {\r\n\t\t\t\t\t\tdirruns = dirrunsUnique;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Track unmatched elements for set filters\r\n\t\t\t\tif ( bySet ) {\r\n\t\t\t\t\t// They will have gone through all possible matchers\r\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\r\n\t\t\t\t\t\tmatchedCount--;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Lengthen the array for every element, matched or not\r\n\t\t\t\t\tif ( seed ) {\r\n\t\t\t\t\t\tunmatched.push( elem );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Apply set filters to unmatched elements\r\n\t\t\tmatchedCount += i;\r\n\t\t\tif ( bySet && i !== matchedCount ) {\r\n\t\t\t\tj = 0;\r\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\r\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( seed ) {\r\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\r\n\t\t\t\t\tif ( matchedCount > 0 ) {\r\n\t\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\r\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\r\n\t\t\t\t\tsetMatched = condense( setMatched );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Add matches to results\r\n\t\t\t\tpush.apply( results, setMatched );\r\n\r\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\r\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\r\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\r\n\r\n\t\t\t\t\tSizzle.uniqueSort( results );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Override manipulation of globals by nested matchers\r\n\t\t\tif ( outermost ) {\r\n\t\t\t\tdirruns = dirrunsUnique;\r\n\t\t\t\toutermostContext = contextBackup;\r\n\t\t\t}\r\n\r\n\t\t\treturn unmatched;\r\n\t\t};\r\n\r\n\treturn bySet ?\r\n\t\tmarkFunction( superMatcher ) :\r\n\t\tsuperMatcher;\r\n}\r\n\r\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\r\n\tvar i,\r\n\t\tsetMatchers = [],\r\n\t\telementMatchers = [],\r\n\t\tcached = compilerCache[ selector + \" \" ];\r\n\r\n\tif ( !cached ) {\r\n\t\t// Generate a function of recursive functions that can be used to check each element\r\n\t\tif ( !match ) {\r\n\t\t\tmatch = tokenize( selector );\r\n\t\t}\r\n\t\ti = match.length;\r\n\t\twhile ( i-- ) {\r\n\t\t\tcached = matcherFromTokens( match[i] );\r\n\t\t\tif ( cached[ expando ] ) {\r\n\t\t\t\tsetMatchers.push( cached );\r\n\t\t\t} else {\r\n\t\t\t\telementMatchers.push( cached );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Cache the compiled function\r\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\r\n\r\n\t\t// Save selector and tokenization\r\n\t\tcached.selector = selector;\r\n\t}\r\n\treturn cached;\r\n};\r\n\r\n/**\r\n * A low-level selection function that works with Sizzle's compiled\r\n * selector functions\r\n * @param {String|Function} selector A selector or a pre-compiled\r\n * selector function built with Sizzle.compile\r\n * @param {Element} context\r\n * @param {Array} [results]\r\n * @param {Array} [seed] A set of elements to match against\r\n */\r\nselect = Sizzle.select = function( selector, context, results, seed ) {\r\n\tvar i, tokens, token, type, find,\r\n\t\tcompiled = typeof selector === \"function\" && selector,\r\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\r\n\r\n\tresults = results || [];\r\n\r\n\t// Try to minimize operations if there is no seed and only one group\r\n\tif ( match.length === 1 ) {\r\n\r\n\t\t// Take a shortcut and set the context if the root selector is an ID\r\n\t\ttokens = match[0] = match[0].slice( 0 );\r\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\r\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\r\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\r\n\r\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\r\n\t\t\tif ( !context ) {\r\n\t\t\t\treturn results;\r\n\r\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\r\n\t\t\t} else if ( compiled ) {\r\n\t\t\t\tcontext = context.parentNode;\r\n\t\t\t}\r\n\r\n\t\t\tselector = selector.slice( tokens.shift().value.length );\r\n\t\t}\r\n\r\n\t\t// Fetch a seed set for right-to-left matching\r\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\r\n\t\twhile ( i-- ) {\r\n\t\t\ttoken = tokens[i];\r\n\r\n\t\t\t// Abort if we hit a combinator\r\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif ( (find = Expr.find[ type ]) ) {\r\n\t\t\t\t// Search, expanding context for leading sibling combinators\r\n\t\t\t\tif ( (seed = find(\r\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\r\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\r\n\t\t\t\t)) ) {\r\n\r\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\r\n\t\t\t\t\ttokens.splice( i, 1 );\r\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\r\n\t\t\t\t\tif ( !selector ) {\r\n\t\t\t\t\t\tpush.apply( results, seed );\r\n\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Compile and execute a filtering function if one is not provided\r\n\t// Provide `match` to avoid retokenization if we modified the selector above\r\n\t( compiled || compile( selector, match ) )(\r\n\t\tseed,\r\n\t\tcontext,\r\n\t\t!documentIsHTML,\r\n\t\tresults,\r\n\t\trsibling.test( selector ) && testContext( context.parentNode ) || context\r\n\t);\r\n\treturn results;\r\n};\r\n\r\n// One-time assignments\r\n\r\n// Sort stability\r\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\r\n\r\n// Support: Chrome<14\r\n// Always assume duplicates if they aren't passed to the comparison function\r\nsupport.detectDuplicates = !!hasDuplicate;\r\n\r\n// Initialize against the default document\r\nsetDocument();\r\n\r\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\r\n// Detached nodes confoundingly follow *each other*\r\nsupport.sortDetached = assert(function( div1 ) {\r\n\t// Should return 1, but returns 4 (following)\r\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\r\n});\r\n\r\n// Support: IE<8\r\n// Prevent attribute/property \"interpolation\"\r\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\r\nif ( !assert(function( div ) {\r\n\tdiv.innerHTML = \"\";\r\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\r\n}) ) {\r\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\r\n\t\tif ( !isXML ) {\r\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\r\n\t\t}\r\n\t});\r\n}\r\n\r\n// Support: IE<9\r\n// Use defaultValue in place of getAttribute(\"value\")\r\nif ( !support.attributes || !assert(function( div ) {\r\n\tdiv.innerHTML = \"\";\r\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\r\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\r\n}) ) {\r\n\taddHandle( \"value\", function( elem, name, isXML ) {\r\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\r\n\t\t\treturn elem.defaultValue;\r\n\t\t}\r\n\t});\r\n}\r\n\r\n// Support: IE<9\r\n// Use getAttributeNode to fetch booleans when getAttribute lies\r\nif ( !assert(function( div ) {\r\n\treturn div.getAttribute(\"disabled\") == null;\r\n}) ) {\r\n\taddHandle( booleans, function( elem, name, isXML ) {\r\n\t\tvar val;\r\n\t\tif ( !isXML ) {\r\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\r\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\r\n\t\t\t\t\tval.value :\r\n\t\t\t\tnull;\r\n\t\t}\r\n\t});\r\n}\r\n\r\nreturn Sizzle;\r\n\r\n})( window );\r\n\r\n\r\n\r\njQuery.find = Sizzle;\r\njQuery.expr = Sizzle.selectors;\r\njQuery.expr[\":\"] = jQuery.expr.pseudos;\r\njQuery.unique = Sizzle.uniqueSort;\r\njQuery.text = Sizzle.getText;\r\njQuery.isXMLDoc = Sizzle.isXML;\r\njQuery.contains = Sizzle.contains;\r\n\r\n\r\n\r\nvar rneedsContext = jQuery.expr.match.needsContext;\r\n\r\nvar rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\r\n\r\n\r\n\r\nvar risSimple = /^.[^:#\\[\\.,]*$/;\r\n\r\n// Implement the identical functionality for filter and not\r\nfunction winnow( elements, qualifier, not ) {\r\n\tif ( jQuery.isFunction( qualifier ) ) {\r\n\t\treturn jQuery.grep( elements, function( elem, i ) {\r\n\t\t\t/* jshint -W018 */\r\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tif ( qualifier.nodeType ) {\r\n\t\treturn jQuery.grep( elements, function( elem ) {\r\n\t\t\treturn ( elem === qualifier ) !== not;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tif ( typeof qualifier === \"string\" ) {\r\n\t\tif ( risSimple.test( qualifier ) ) {\r\n\t\t\treturn jQuery.filter( qualifier, elements, not );\r\n\t\t}\r\n\r\n\t\tqualifier = jQuery.filter( qualifier, elements );\r\n\t}\r\n\r\n\treturn jQuery.grep( elements, function( elem ) {\r\n\t\treturn ( indexOf.call( qualifier, elem ) >= 0 ) !== not;\r\n\t});\r\n}\r\n\r\njQuery.filter = function( expr, elems, not ) {\r\n\tvar elem = elems[ 0 ];\r\n\r\n\tif ( not ) {\r\n\t\texpr = \":not(\" + expr + \")\";\r\n\t}\r\n\r\n\treturn elems.length === 1 && elem.nodeType === 1 ?\r\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\r\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\r\n\t\t\treturn elem.nodeType === 1;\r\n\t\t}));\r\n};\r\n\r\njQuery.fn.extend({\r\n\tfind: function( selector ) {\r\n\t\tvar i,\r\n\t\t\tlen = this.length,\r\n\t\t\tret = [],\r\n\t\t\tself = this;\r\n\r\n\t\tif ( typeof selector !== \"string\" ) {\r\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\r\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\r\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}) );\r\n\t\t}\r\n\r\n\t\tfor ( i = 0; i < len; i++ ) {\r\n\t\t\tjQuery.find( selector, self[ i ], ret );\r\n\t\t}\r\n\r\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\r\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\r\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\r\n\t\treturn ret;\r\n\t},\r\n\tfilter: function( selector ) {\r\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\r\n\t},\r\n\tnot: function( selector ) {\r\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\r\n\t},\r\n\tis: function( selector ) {\r\n\t\treturn !!winnow(\r\n\t\t\tthis,\r\n\r\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\r\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\r\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\r\n\t\t\t\tjQuery( selector ) :\r\n\t\t\t\tselector || [],\r\n\t\t\tfalse\r\n\t\t).length;\r\n\t}\r\n});\r\n\r\n\r\n// Initialize a jQuery object\r\n\r\n\r\n// A central reference to the root jQuery(document)\r\nvar rootjQuery,\r\n\r\n\t// A simple way to check for HTML strings\r\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\r\n\t// Strict HTML recognition (#11290: must start with <)\r\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\r\n\r\n\tinit = jQuery.fn.init = function( selector, context ) {\r\n\t\tvar match, elem;\r\n\r\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\r\n\t\tif ( !selector ) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\t// Handle HTML strings\r\n\t\tif ( typeof selector === \"string\" ) {\r\n\t\t\tif ( selector[0] === \"<\" && selector[ selector.length - 1 ] === \">\" && selector.length >= 3 ) {\r\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\r\n\t\t\t\tmatch = [ null, selector, null ];\r\n\r\n\t\t\t} else {\r\n\t\t\t\tmatch = rquickExpr.exec( selector );\r\n\t\t\t}\r\n\r\n\t\t\t// Match html or make sure no context is specified for #id\r\n\t\t\tif ( match && (match[1] || !context) ) {\r\n\r\n\t\t\t\t// HANDLE: $(html) -> $(array)\r\n\t\t\t\tif ( match[1] ) {\r\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\r\n\r\n\t\t\t\t\t// scripts is true for back-compat\r\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\r\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\r\n\t\t\t\t\t\tmatch[1],\r\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\r\n\t\t\t\t\t\ttrue\r\n\t\t\t\t\t) );\r\n\r\n\t\t\t\t\t// HANDLE: $(html, props)\r\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\r\n\t\t\t\t\t\tfor ( match in context ) {\r\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\r\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\r\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\r\n\r\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this;\r\n\r\n\t\t\t\t// HANDLE: $(#id)\r\n\t\t\t\t} else {\r\n\t\t\t\t\telem = document.getElementById( match[2] );\r\n\r\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\r\n\t\t\t\t\t// nodes that are no longer in the document #6963\r\n\t\t\t\t\tif ( elem && elem.parentNode ) {\r\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\r\n\t\t\t\t\t\tthis.length = 1;\r\n\t\t\t\t\t\tthis[0] = elem;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.context = document;\r\n\t\t\t\t\tthis.selector = selector;\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t}\r\n\r\n\t\t\t// HANDLE: $(expr, $(...))\r\n\t\t\t} else if ( !context || context.jquery ) {\r\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\r\n\r\n\t\t\t// HANDLE: $(expr, context)\r\n\t\t\t// (which is just equivalent to: $(context).find(expr)\r\n\t\t\t} else {\r\n\t\t\t\treturn this.constructor( context ).find( selector );\r\n\t\t\t}\r\n\r\n\t\t// HANDLE: $(DOMElement)\r\n\t\t} else if ( selector.nodeType ) {\r\n\t\t\tthis.context = this[0] = selector;\r\n\t\t\tthis.length = 1;\r\n\t\t\treturn this;\r\n\r\n\t\t// HANDLE: $(function)\r\n\t\t// Shortcut for document ready\r\n\t\t} else if ( jQuery.isFunction( selector ) ) {\r\n\t\t\treturn typeof rootjQuery.ready !== \"undefined\" ?\r\n\t\t\t\trootjQuery.ready( selector ) :\r\n\t\t\t\t// Execute immediately if ready is not present\r\n\t\t\t\tselector( jQuery );\r\n\t\t}\r\n\r\n\t\tif ( selector.selector !== undefined ) {\r\n\t\t\tthis.selector = selector.selector;\r\n\t\t\tthis.context = selector.context;\r\n\t\t}\r\n\r\n\t\treturn jQuery.makeArray( selector, this );\r\n\t};\r\n\r\n// Give the init function the jQuery prototype for later instantiation\r\ninit.prototype = jQuery.fn;\r\n\r\n// Initialize central reference\r\nrootjQuery = jQuery( document );\r\n\r\n\r\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\r\n\t// methods guaranteed to produce a unique set when starting from a unique set\r\n\tguaranteedUnique = {\r\n\t\tchildren: true,\r\n\t\tcontents: true,\r\n\t\tnext: true,\r\n\t\tprev: true\r\n\t};\r\n\r\njQuery.extend({\r\n\tdir: function( elem, dir, until ) {\r\n\t\tvar matched = [],\r\n\t\t\ttruncate = until !== undefined;\r\n\r\n\t\twhile ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {\r\n\t\t\tif ( elem.nodeType === 1 ) {\r\n\t\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tmatched.push( elem );\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn matched;\r\n\t},\r\n\r\n\tsibling: function( n, elem ) {\r\n\t\tvar matched = [];\r\n\r\n\t\tfor ( ; n; n = n.nextSibling ) {\r\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\r\n\t\t\t\tmatched.push( n );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn matched;\r\n\t}\r\n});\r\n\r\njQuery.fn.extend({\r\n\thas: function( target ) {\r\n\t\tvar targets = jQuery( target, this ),\r\n\t\t\tl = targets.length;\r\n\r\n\t\treturn this.filter(function() {\r\n\t\t\tvar i = 0;\r\n\t\t\tfor ( ; i < l; i++ ) {\r\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tclosest: function( selectors, context ) {\r\n\t\tvar cur,\r\n\t\t\ti = 0,\r\n\t\t\tl = this.length,\r\n\t\t\tmatched = [],\r\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\r\n\t\t\t\tjQuery( selectors, context || this.context ) :\r\n\t\t\t\t0;\r\n\r\n\t\tfor ( ; i < l; i++ ) {\r\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\r\n\t\t\t\t// Always skip document fragments\r\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\r\n\t\t\t\t\tpos.index(cur) > -1 :\r\n\r\n\t\t\t\t\t// Don't pass non-elements to Sizzle\r\n\t\t\t\t\tcur.nodeType === 1 &&\r\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\r\n\r\n\t\t\t\t\tmatched.push( cur );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );\r\n\t},\r\n\r\n\t// Determine the position of an element within\r\n\t// the matched set of elements\r\n\tindex: function( elem ) {\r\n\r\n\t\t// No argument, return index in parent\r\n\t\tif ( !elem ) {\r\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\r\n\t\t}\r\n\r\n\t\t// index in selector\r\n\t\tif ( typeof elem === \"string\" ) {\r\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\r\n\t\t}\r\n\r\n\t\t// Locate the position of the desired element\r\n\t\treturn indexOf.call( this,\r\n\r\n\t\t\t// If it receives a jQuery object, the first element is used\r\n\t\t\telem.jquery ? elem[ 0 ] : elem\r\n\t\t);\r\n\t},\r\n\r\n\tadd: function( selector, context ) {\r\n\t\treturn this.pushStack(\r\n\t\t\tjQuery.unique(\r\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\r\n\t\t\t)\r\n\t\t);\r\n\t},\r\n\r\n\taddBack: function( selector ) {\r\n\t\treturn this.add( selector == null ?\r\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\r\n\t\t);\r\n\t}\r\n});\r\n\r\nfunction sibling( cur, dir ) {\r\n\twhile ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}\r\n\treturn cur;\r\n}\r\n\r\njQuery.each({\r\n\tparent: function( elem ) {\r\n\t\tvar parent = elem.parentNode;\r\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\r\n\t},\r\n\tparents: function( elem ) {\r\n\t\treturn jQuery.dir( elem, \"parentNode\" );\r\n\t},\r\n\tparentsUntil: function( elem, i, until ) {\r\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\r\n\t},\r\n\tnext: function( elem ) {\r\n\t\treturn sibling( elem, \"nextSibling\" );\r\n\t},\r\n\tprev: function( elem ) {\r\n\t\treturn sibling( elem, \"previousSibling\" );\r\n\t},\r\n\tnextAll: function( elem ) {\r\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\r\n\t},\r\n\tprevAll: function( elem ) {\r\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\r\n\t},\r\n\tnextUntil: function( elem, i, until ) {\r\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\r\n\t},\r\n\tprevUntil: function( elem, i, until ) {\r\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\r\n\t},\r\n\tsiblings: function( elem ) {\r\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\r\n\t},\r\n\tchildren: function( elem ) {\r\n\t\treturn jQuery.sibling( elem.firstChild );\r\n\t},\r\n\tcontents: function( elem ) {\r\n\t\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\r\n\t}\r\n}, function( name, fn ) {\r\n\tjQuery.fn[ name ] = function( until, selector ) {\r\n\t\tvar matched = jQuery.map( this, fn, until );\r\n\r\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\r\n\t\t\tselector = until;\r\n\t\t}\r\n\r\n\t\tif ( selector && typeof selector === \"string\" ) {\r\n\t\t\tmatched = jQuery.filter( selector, matched );\r\n\t\t}\r\n\r\n\t\tif ( this.length > 1 ) {\r\n\t\t\t// Remove duplicates\r\n\t\t\tif ( !guaranteedUnique[ name ] ) {\r\n\t\t\t\tjQuery.unique( matched );\r\n\t\t\t}\r\n\r\n\t\t\t// Reverse order for parents* and prev-derivatives\r\n\t\t\tif ( rparentsprev.test( name ) ) {\r\n\t\t\t\tmatched.reverse();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.pushStack( matched );\r\n\t};\r\n});\r\nvar rnotwhite = (/\\S+/g);\r\n\r\n\r\n\r\n// String to Object options format cache\r\nvar optionsCache = {};\r\n\r\n// Convert String-formatted options into Object-formatted ones and store in cache\r\nfunction createOptions( options ) {\r\n\tvar object = optionsCache[ options ] = {};\r\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\r\n\t\tobject[ flag ] = true;\r\n\t});\r\n\treturn object;\r\n}\r\n\r\n/*\r\n * Create a callback list using the following parameters:\r\n *\r\n *\toptions: an optional list of space-separated options that will change how\r\n *\t\t\tthe callback list behaves or a more traditional option object\r\n *\r\n * By default a callback list will act like an event callback list and can be\r\n * \"fired\" multiple times.\r\n *\r\n * Possible options:\r\n *\r\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\r\n *\r\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\r\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\r\n *\t\t\t\t\tvalues (like a Deferred)\r\n *\r\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\r\n *\r\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\r\n *\r\n */\r\njQuery.Callbacks = function( options ) {\r\n\r\n\t// Convert options from String-formatted to Object-formatted if needed\r\n\t// (we check in cache first)\r\n\toptions = typeof options === \"string\" ?\r\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\r\n\t\tjQuery.extend( {}, options );\r\n\r\n\tvar // Last fire value (for non-forgettable lists)\r\n\t\tmemory,\r\n\t\t// Flag to know if list was already fired\r\n\t\tfired,\r\n\t\t// Flag to know if list is currently firing\r\n\t\tfiring,\r\n\t\t// First callback to fire (used internally by add and fireWith)\r\n\t\tfiringStart,\r\n\t\t// End of the loop when firing\r\n\t\tfiringLength,\r\n\t\t// Index of currently firing callback (modified by remove if needed)\r\n\t\tfiringIndex,\r\n\t\t// Actual callback list\r\n\t\tlist = [],\r\n\t\t// Stack of fire calls for repeatable lists\r\n\t\tstack = !options.once && [],\r\n\t\t// Fire callbacks\r\n\t\tfire = function( data ) {\r\n\t\t\tmemory = options.memory && data;\r\n\t\t\tfired = true;\r\n\t\t\tfiringIndex = firingStart || 0;\r\n\t\t\tfiringStart = 0;\r\n\t\t\tfiringLength = list.length;\r\n\t\t\tfiring = true;\r\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\r\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\r\n\t\t\t\t\tmemory = false; // To prevent further calls using add\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfiring = false;\r\n\t\t\tif ( list ) {\r\n\t\t\t\tif ( stack ) {\r\n\t\t\t\t\tif ( stack.length ) {\r\n\t\t\t\t\t\tfire( stack.shift() );\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if ( memory ) {\r\n\t\t\t\t\tlist = [];\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.disable();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t// Actual Callbacks object\r\n\t\tself = {\r\n\t\t\t// Add a callback or a collection of callbacks to the list\r\n\t\t\tadd: function() {\r\n\t\t\t\tif ( list ) {\r\n\t\t\t\t\t// First, we save the current length\r\n\t\t\t\t\tvar start = list.length;\r\n\t\t\t\t\t(function add( args ) {\r\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\r\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\r\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\r\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\r\n\t\t\t\t\t\t\t\t\tlist.push( arg );\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\r\n\t\t\t\t\t\t\t\t// Inspect recursively\r\n\t\t\t\t\t\t\t\tadd( arg );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})( arguments );\r\n\t\t\t\t\t// Do we need to add the callbacks to the\r\n\t\t\t\t\t// current firing batch?\r\n\t\t\t\t\tif ( firing ) {\r\n\t\t\t\t\t\tfiringLength = list.length;\r\n\t\t\t\t\t// With memory, if we're not firing then\r\n\t\t\t\t\t// we should call right away\r\n\t\t\t\t\t} else if ( memory ) {\r\n\t\t\t\t\t\tfiringStart = start;\r\n\t\t\t\t\t\tfire( memory );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\t// Remove a callback from the list\r\n\t\t\tremove: function() {\r\n\t\t\t\tif ( list ) {\r\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\r\n\t\t\t\t\t\tvar index;\r\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\r\n\t\t\t\t\t\t\tlist.splice( index, 1 );\r\n\t\t\t\t\t\t\t// Handle firing indexes\r\n\t\t\t\t\t\t\tif ( firing ) {\r\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\r\n\t\t\t\t\t\t\t\t\tfiringLength--;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\r\n\t\t\t\t\t\t\t\t\tfiringIndex--;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\t// Check if a given callback is in the list.\r\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\r\n\t\t\thas: function( fn ) {\r\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\r\n\t\t\t},\r\n\t\t\t// Remove all callbacks from the list\r\n\t\t\tempty: function() {\r\n\t\t\t\tlist = [];\r\n\t\t\t\tfiringLength = 0;\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\t// Have the list do nothing anymore\r\n\t\t\tdisable: function() {\r\n\t\t\t\tlist = stack = memory = undefined;\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\t// Is it disabled?\r\n\t\t\tdisabled: function() {\r\n\t\t\t\treturn !list;\r\n\t\t\t},\r\n\t\t\t// Lock the list in its current state\r\n\t\t\tlock: function() {\r\n\t\t\t\tstack = undefined;\r\n\t\t\t\tif ( !memory ) {\r\n\t\t\t\t\tself.disable();\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\t// Is it locked?\r\n\t\t\tlocked: function() {\r\n\t\t\t\treturn !stack;\r\n\t\t\t},\r\n\t\t\t// Call all callbacks with the given context and arguments\r\n\t\t\tfireWith: function( context, args ) {\r\n\t\t\t\tif ( list && ( !fired || stack ) ) {\r\n\t\t\t\t\targs = args || [];\r\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\r\n\t\t\t\t\tif ( firing ) {\r\n\t\t\t\t\t\tstack.push( args );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfire( args );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\t// Call all the callbacks with the given arguments\r\n\t\t\tfire: function() {\r\n\t\t\t\tself.fireWith( this, arguments );\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\t// To know if the callbacks have already been called at least once\r\n\t\t\tfired: function() {\r\n\t\t\t\treturn !!fired;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\treturn self;\r\n};\r\n\r\n\r\njQuery.extend({\r\n\r\n\tDeferred: function( func ) {\r\n\t\tvar tuples = [\r\n\t\t\t\t// action, add listener, listener list, final state\r\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\r\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\r\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\r\n\t\t\t],\r\n\t\t\tstate = \"pending\",\r\n\t\t\tpromise = {\r\n\t\t\t\tstate: function() {\r\n\t\t\t\t\treturn state;\r\n\t\t\t\t},\r\n\t\t\t\talways: function() {\r\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t},\r\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\r\n\t\t\t\t\tvar fns = arguments;\r\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\r\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\r\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\r\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\r\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\r\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\r\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\r\n\t\t\t\t\t\t\t\t\treturned.promise()\r\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\r\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\r\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tfns = null;\r\n\t\t\t\t\t}).promise();\r\n\t\t\t\t},\r\n\t\t\t\t// Get a promise for this deferred\r\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\r\n\t\t\t\tpromise: function( obj ) {\r\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdeferred = {};\r\n\r\n\t\t// Keep pipe for back-compat\r\n\t\tpromise.pipe = promise.then;\r\n\r\n\t\t// Add list-specific methods\r\n\t\tjQuery.each( tuples, function( i, tuple ) {\r\n\t\t\tvar list = tuple[ 2 ],\r\n\t\t\t\tstateString = tuple[ 3 ];\r\n\r\n\t\t\t// promise[ done | fail | progress ] = list.add\r\n\t\t\tpromise[ tuple[1] ] = list.add;\r\n\r\n\t\t\t// Handle state\r\n\t\t\tif ( stateString ) {\r\n\t\t\t\tlist.add(function() {\r\n\t\t\t\t\t// state = [ resolved | rejected ]\r\n\t\t\t\t\tstate = stateString;\r\n\r\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\r\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\r\n\t\t\t}\r\n\r\n\t\t\t// deferred[ resolve | reject | notify ]\r\n\t\t\tdeferred[ tuple[0] ] = function() {\r\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\r\n\t\t\t\treturn this;\r\n\t\t\t};\r\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\r\n\t\t});\r\n\r\n\t\t// Make the deferred a promise\r\n\t\tpromise.promise( deferred );\r\n\r\n\t\t// Call given func if any\r\n\t\tif ( func ) {\r\n\t\t\tfunc.call( deferred, deferred );\r\n\t\t}\r\n\r\n\t\t// All done!\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t// Deferred helper\r\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\r\n\t\tvar i = 0,\r\n\t\t\tresolveValues = slice.call( arguments ),\r\n\t\t\tlength = resolveValues.length,\r\n\r\n\t\t\t// the count of uncompleted subordinates\r\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\r\n\r\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\r\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\r\n\r\n\t\t\t// Update function for both resolve and progress values\r\n\t\t\tupdateFunc = function( i, contexts, values ) {\r\n\t\t\t\treturn function( value ) {\r\n\t\t\t\t\tcontexts[ i ] = this;\r\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\r\n\t\t\t\t\tif ( values === progressValues ) {\r\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\r\n\t\t\t\t\t} else if ( !( --remaining ) ) {\r\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t},\r\n\r\n\t\t\tprogressValues, progressContexts, resolveContexts;\r\n\r\n\t\t// add listeners to Deferred subordinates; treat others as resolved\r\n\t\tif ( length > 1 ) {\r\n\t\t\tprogressValues = new Array( length );\r\n\t\t\tprogressContexts = new Array( length );\r\n\t\t\tresolveContexts = new Array( length );\r\n\t\t\tfor ( ; i < length; i++ ) {\r\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\r\n\t\t\t\t\tresolveValues[ i ].promise()\r\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\r\n\t\t\t\t\t\t.fail( deferred.reject )\r\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\r\n\t\t\t\t} else {\r\n\t\t\t\t\t--remaining;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// if we're not waiting on anything, resolve the master\r\n\t\tif ( !remaining ) {\r\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\r\n\t\t}\r\n\r\n\t\treturn deferred.promise();\r\n\t}\r\n});\r\n\r\n\r\n// The deferred used on DOM ready\r\nvar readyList;\r\n\r\njQuery.fn.ready = function( fn ) {\r\n\t// Add the callback\r\n\tjQuery.ready.promise().done( fn );\r\n\r\n\treturn this;\r\n};\r\n\r\njQuery.extend({\r\n\t// Is the DOM ready to be used? Set to true once it occurs.\r\n\tisReady: false,\r\n\r\n\t// A counter to track how many items to wait for before\r\n\t// the ready event fires. See #6781\r\n\treadyWait: 1,\r\n\r\n\t// Hold (or release) the ready event\r\n\tholdReady: function( hold ) {\r\n\t\tif ( hold ) {\r\n\t\t\tjQuery.readyWait++;\r\n\t\t} else {\r\n\t\t\tjQuery.ready( true );\r\n\t\t}\r\n\t},\r\n\r\n\t// Handle when the DOM is ready\r\n\tready: function( wait ) {\r\n\r\n\t\t// Abort if there are pending holds or we're already ready\r\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Remember that the DOM is ready\r\n\t\tjQuery.isReady = true;\r\n\r\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\r\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// If there are functions bound, to execute\r\n\t\treadyList.resolveWith( document, [ jQuery ] );\r\n\r\n\t\t// Trigger any bound ready events\r\n\t\tif ( jQuery.fn.triggerHandler ) {\r\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\r\n\t\t\tjQuery( document ).off( \"ready\" );\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * The ready event handler and self cleanup method\r\n */\r\nfunction completed() {\r\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\r\n\twindow.removeEventListener( \"load\", completed, false );\r\n\tjQuery.ready();\r\n}\r\n\r\njQuery.ready.promise = function( obj ) {\r\n\tif ( !readyList ) {\r\n\r\n\t\treadyList = jQuery.Deferred();\r\n\r\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\r\n\t\t// we once tried to use readyState \"interactive\" here, but it caused issues like the one\r\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\r\n\t\tif ( document.readyState === \"complete\" ) {\r\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\r\n\t\t\tsetTimeout( jQuery.ready );\r\n\r\n\t\t} else {\r\n\r\n\t\t\t// Use the handy event callback\r\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\r\n\r\n\t\t\t// A fallback to window.onload, that will always work\r\n\t\t\twindow.addEventListener( \"load\", completed, false );\r\n\t\t}\r\n\t}\r\n\treturn readyList.promise( obj );\r\n};\r\n\r\n// Kick off the DOM ready check even if the user does not\r\njQuery.ready.promise();\r\n\r\n\r\n\r\n\r\n// Multifunctional method to get and set values of a collection\r\n// The value/s can optionally be executed if it's a function\r\nvar access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\r\n\tvar i = 0,\r\n\t\tlen = elems.length,\r\n\t\tbulk = key == null;\r\n\r\n\t// Sets many values\r\n\tif ( jQuery.type( key ) === \"object\" ) {\r\n\t\tchainable = true;\r\n\t\tfor ( i in key ) {\r\n\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\r\n\t\t}\r\n\r\n\t// Sets one value\r\n\t} else if ( value !== undefined ) {\r\n\t\tchainable = true;\r\n\r\n\t\tif ( !jQuery.isFunction( value ) ) {\r\n\t\t\traw = true;\r\n\t\t}\r\n\r\n\t\tif ( bulk ) {\r\n\t\t\t// Bulk operations run against the entire set\r\n\t\t\tif ( raw ) {\r\n\t\t\t\tfn.call( elems, value );\r\n\t\t\t\tfn = null;\r\n\r\n\t\t\t// ...except when executing function values\r\n\t\t\t} else {\r\n\t\t\t\tbulk = fn;\r\n\t\t\t\tfn = function( elem, key, value ) {\r\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( fn ) {\r\n\t\t\tfor ( ; i < len; i++ ) {\r\n\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn chainable ?\r\n\t\telems :\r\n\r\n\t\t// Gets\r\n\t\tbulk ?\r\n\t\t\tfn.call( elems ) :\r\n\t\t\tlen ? fn( elems[0], key ) : emptyGet;\r\n};\r\n\r\n\r\n/**\r\n * Determines whether an object can have data\r\n */\r\njQuery.acceptData = function( owner ) {\r\n\t// Accepts only:\r\n\t// - Node\r\n\t// - Node.ELEMENT_NODE\r\n\t// - Node.DOCUMENT_NODE\r\n\t// - Object\r\n\t// - Any\r\n\t/* jshint -W018 */\r\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\r\n};\r\n\r\n\r\nfunction Data() {\r\n\t// Support: Android < 4,\r\n\t// Old WebKit does not have Object.preventExtensions/freeze method,\r\n\t// return new empty object instead with no [[set]] accessor\r\n\tObject.defineProperty( this.cache = {}, 0, {\r\n\t\tget: function() {\r\n\t\t\treturn {};\r\n\t\t}\r\n\t});\r\n\r\n\tthis.expando = jQuery.expando + Math.random();\r\n}\r\n\r\nData.uid = 1;\r\nData.accepts = jQuery.acceptData;\r\n\r\nData.prototype = {\r\n\tkey: function( owner ) {\r\n\t\t// We can accept data for non-element nodes in modern browsers,\r\n\t\t// but we should not, see #8335.\r\n\t\t// Always return the key for a frozen object.\r\n\t\tif ( !Data.accepts( owner ) ) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tvar descriptor = {},\r\n\t\t\t// Check if the owner object already has a cache key\r\n\t\t\tunlock = owner[ this.expando ];\r\n\r\n\t\t// If not, create one\r\n\t\tif ( !unlock ) {\r\n\t\t\tunlock = Data.uid++;\r\n\r\n\t\t\t// Secure it in a non-enumerable, non-writable property\r\n\t\t\ttry {\r\n\t\t\t\tdescriptor[ this.expando ] = { value: unlock };\r\n\t\t\t\tObject.defineProperties( owner, descriptor );\r\n\r\n\t\t\t// Support: Android < 4\r\n\t\t\t// Fallback to a less secure definition\r\n\t\t\t} catch ( e ) {\r\n\t\t\t\tdescriptor[ this.expando ] = unlock;\r\n\t\t\t\tjQuery.extend( owner, descriptor );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Ensure the cache object\r\n\t\tif ( !this.cache[ unlock ] ) {\r\n\t\t\tthis.cache[ unlock ] = {};\r\n\t\t}\r\n\r\n\t\treturn unlock;\r\n\t},\r\n\tset: function( owner, data, value ) {\r\n\t\tvar prop,\r\n\t\t\t// There may be an unlock assigned to this node,\r\n\t\t\t// if there is no entry for this \"owner\", create one inline\r\n\t\t\t// and set the unlock as though an owner entry had always existed\r\n\t\t\tunlock = this.key( owner ),\r\n\t\t\tcache = this.cache[ unlock ];\r\n\r\n\t\t// Handle: [ owner, key, value ] args\r\n\t\tif ( typeof data === \"string\" ) {\r\n\t\t\tcache[ data ] = value;\r\n\r\n\t\t// Handle: [ owner, { properties } ] args\r\n\t\t} else {\r\n\t\t\t// Fresh assignments by object are shallow copied\r\n\t\t\tif ( jQuery.isEmptyObject( cache ) ) {\r\n\t\t\t\tjQuery.extend( this.cache[ unlock ], data );\r\n\t\t\t// Otherwise, copy the properties one-by-one to the cache object\r\n\t\t\t} else {\r\n\t\t\t\tfor ( prop in data ) {\r\n\t\t\t\t\tcache[ prop ] = data[ prop ];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn cache;\r\n\t},\r\n\tget: function( owner, key ) {\r\n\t\t// Either a valid cache is found, or will be created.\r\n\t\t// New caches will be created and the unlock returned,\r\n\t\t// allowing direct access to the newly created\r\n\t\t// empty data object. A valid owner object must be provided.\r\n\t\tvar cache = this.cache[ this.key( owner ) ];\r\n\r\n\t\treturn key === undefined ?\r\n\t\t\tcache : cache[ key ];\r\n\t},\r\n\taccess: function( owner, key, value ) {\r\n\t\tvar stored;\r\n\t\t// In cases where either:\r\n\t\t//\r\n\t\t// 1. No key was specified\r\n\t\t// 2. A string key was specified, but no value provided\r\n\t\t//\r\n\t\t// Take the \"read\" path and allow the get method to determine\r\n\t\t// which value to return, respectively either:\r\n\t\t//\r\n\t\t// 1. The entire cache object\r\n\t\t// 2. The data stored at the key\r\n\t\t//\r\n\t\tif ( key === undefined ||\r\n\t\t\t\t((key && typeof key === \"string\") && value === undefined) ) {\r\n\r\n\t\t\tstored = this.get( owner, key );\r\n\r\n\t\t\treturn stored !== undefined ?\r\n\t\t\t\tstored : this.get( owner, jQuery.camelCase(key) );\r\n\t\t}\r\n\r\n\t\t// [*]When the key is not a string, or both a key and value\r\n\t\t// are specified, set or extend (existing objects) with either:\r\n\t\t//\r\n\t\t// 1. An object of properties\r\n\t\t// 2. A key and value\r\n\t\t//\r\n\t\tthis.set( owner, key, value );\r\n\r\n\t\t// Since the \"set\" path can have two possible entry points\r\n\t\t// return the expected data based on which path was taken[*]\r\n\t\treturn value !== undefined ? value : key;\r\n\t},\r\n\tremove: function( owner, key ) {\r\n\t\tvar i, name, camel,\r\n\t\t\tunlock = this.key( owner ),\r\n\t\t\tcache = this.cache[ unlock ];\r\n\r\n\t\tif ( key === undefined ) {\r\n\t\t\tthis.cache[ unlock ] = {};\r\n\r\n\t\t} else {\r\n\t\t\t// Support array or space separated string of keys\r\n\t\t\tif ( jQuery.isArray( key ) ) {\r\n\t\t\t\t// If \"name\" is an array of keys...\r\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\r\n\t\t\t\t// keys will be converted to camelCase.\r\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\r\n\t\t\t\t// both plain key and camelCase key. #12786\r\n\t\t\t\t// This will only penalize the array argument path.\r\n\t\t\t\tname = key.concat( key.map( jQuery.camelCase ) );\r\n\t\t\t} else {\r\n\t\t\t\tcamel = jQuery.camelCase( key );\r\n\t\t\t\t// Try the string as a key before any manipulation\r\n\t\t\t\tif ( key in cache ) {\r\n\t\t\t\t\tname = [ key, camel ];\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// If a key with the spaces exists, use it.\r\n\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\r\n\t\t\t\t\tname = camel;\r\n\t\t\t\t\tname = name in cache ?\r\n\t\t\t\t\t\t[ name ] : ( name.match( rnotwhite ) || [] );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\ti = name.length;\r\n\t\t\twhile ( i-- ) {\r\n\t\t\t\tdelete cache[ name[ i ] ];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\thasData: function( owner ) {\r\n\t\treturn !jQuery.isEmptyObject(\r\n\t\t\tthis.cache[ owner[ this.expando ] ] || {}\r\n\t\t);\r\n\t},\r\n\tdiscard: function( owner ) {\r\n\t\tif ( owner[ this.expando ] ) {\r\n\t\t\tdelete this.cache[ owner[ this.expando ] ];\r\n\t\t}\r\n\t}\r\n};\r\nvar data_priv = new Data();\r\n\r\nvar data_user = new Data();\r\n\r\n\r\n\r\n/*\r\n\tImplementation Summary\r\n\r\n\t1. Enforce API surface and semantic compatibility with 1.9.x branch\r\n\t2. Improve the module's maintainability by reducing the storage\r\n\t\tpaths to a single mechanism.\r\n\t3. Use the same single mechanism to support \"private\" and \"user\" data.\r\n\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\r\n\t5. Avoid exposing implementation details on user objects (eg. expando properties)\r\n\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\r\n*/\r\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\r\n\trmultiDash = /([A-Z])/g;\r\n\r\nfunction dataAttr( elem, key, data ) {\r\n\tvar name;\r\n\r\n\t// If nothing was found internally, try to fetch any\r\n\t// data from the HTML5 data-* attribute\r\n\tif ( data === undefined && elem.nodeType === 1 ) {\r\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\r\n\t\tdata = elem.getAttribute( name );\r\n\r\n\t\tif ( typeof data === \"string\" ) {\r\n\t\t\ttry {\r\n\t\t\t\tdata = data === \"true\" ? true :\r\n\t\t\t\t\tdata === \"false\" ? false :\r\n\t\t\t\t\tdata === \"null\" ? null :\r\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\r\n\t\t\t\t\t+data + \"\" === data ? +data :\r\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\r\n\t\t\t\t\tdata;\r\n\t\t\t} catch( e ) {}\r\n\r\n\t\t\t// Make sure we set the data so it isn't changed later\r\n\t\t\tdata_user.set( elem, key, data );\r\n\t\t} else {\r\n\t\t\tdata = undefined;\r\n\t\t}\r\n\t}\r\n\treturn data;\r\n}\r\n\r\njQuery.extend({\r\n\thasData: function( elem ) {\r\n\t\treturn data_user.hasData( elem ) || data_priv.hasData( elem );\r\n\t},\r\n\r\n\tdata: function( elem, name, data ) {\r\n\t\treturn data_user.access( elem, name, data );\r\n\t},\r\n\r\n\tremoveData: function( elem, name ) {\r\n\t\tdata_user.remove( elem, name );\r\n\t},\r\n\r\n\t// TODO: Now that all calls to _data and _removeData have been replaced\r\n\t// with direct calls to data_priv methods, these can be deprecated.\r\n\t_data: function( elem, name, data ) {\r\n\t\treturn data_priv.access( elem, name, data );\r\n\t},\r\n\r\n\t_removeData: function( elem, name ) {\r\n\t\tdata_priv.remove( elem, name );\r\n\t}\r\n});\r\n\r\njQuery.fn.extend({\r\n\tdata: function( key, value ) {\r\n\t\tvar i, name, data,\r\n\t\t\telem = this[ 0 ],\r\n\t\t\tattrs = elem && elem.attributes;\r\n\r\n\t\t// Gets all values\r\n\t\tif ( key === undefined ) {\r\n\t\t\tif ( this.length ) {\r\n\t\t\t\tdata = data_user.get( elem );\r\n\r\n\t\t\t\tif ( elem.nodeType === 1 && !data_priv.get( elem, \"hasDataAttrs\" ) ) {\r\n\t\t\t\t\ti = attrs.length;\r\n\t\t\t\t\twhile ( i-- ) {\r\n\r\n\t\t\t\t\t\t// Support: IE11+\r\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\r\n\t\t\t\t\t\tif ( attrs[ i ] ) {\r\n\t\t\t\t\t\t\tname = attrs[ i ].name;\r\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\r\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\r\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdata_priv.set( elem, \"hasDataAttrs\", true );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t}\r\n\r\n\t\t// Sets multiple values\r\n\t\tif ( typeof key === \"object\" ) {\r\n\t\t\treturn this.each(function() {\r\n\t\t\t\tdata_user.set( this, key );\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn access( this, function( value ) {\r\n\t\t\tvar data,\r\n\t\t\t\tcamelKey = jQuery.camelCase( key );\r\n\r\n\t\t\t// The calling jQuery object (element matches) is not empty\r\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\r\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\r\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\r\n\t\t\t// throw an exception if an attempt to read a data cache is made.\r\n\t\t\tif ( elem && value === undefined ) {\r\n\t\t\t\t// Attempt to get data from the cache\r\n\t\t\t\t// with the key as-is\r\n\t\t\t\tdata = data_user.get( elem, key );\r\n\t\t\t\tif ( data !== undefined ) {\r\n\t\t\t\t\treturn data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Attempt to get data from the cache\r\n\t\t\t\t// with the key camelized\r\n\t\t\t\tdata = data_user.get( elem, camelKey );\r\n\t\t\t\tif ( data !== undefined ) {\r\n\t\t\t\t\treturn data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Attempt to \"discover\" the data in\r\n\t\t\t\t// HTML5 custom data-* attrs\r\n\t\t\t\tdata = dataAttr( elem, camelKey, undefined );\r\n\t\t\t\tif ( data !== undefined ) {\r\n\t\t\t\t\treturn data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// We tried really hard, but the data doesn't exist.\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Set the data...\r\n\t\t\tthis.each(function() {\r\n\t\t\t\t// First, attempt to store a copy or reference of any\r\n\t\t\t\t// data that might've been store with a camelCased key.\r\n\t\t\t\tvar data = data_user.get( this, camelKey );\r\n\r\n\t\t\t\t// For HTML5 data-* attribute interop, we have to\r\n\t\t\t\t// store property names with dashes in a camelCase form.\r\n\t\t\t\t// This might not apply to all properties...*\r\n\t\t\t\tdata_user.set( this, camelKey, value );\r\n\r\n\t\t\t\t// *... In the case of properties that might _actually_\r\n\t\t\t\t// have dashes, we need to also store a copy of that\r\n\t\t\t\t// unchanged property.\r\n\t\t\t\tif ( key.indexOf(\"-\") !== -1 && data !== undefined ) {\r\n\t\t\t\t\tdata_user.set( this, key, value );\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}, null, value, arguments.length > 1, null, true );\r\n\t},\r\n\r\n\tremoveData: function( key ) {\r\n\t\treturn this.each(function() {\r\n\t\t\tdata_user.remove( this, key );\r\n\t\t});\r\n\t}\r\n});\r\n\r\n\r\njQuery.extend({\r\n\tqueue: function( elem, type, data ) {\r\n\t\tvar queue;\r\n\r\n\t\tif ( elem ) {\r\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\r\n\t\t\tqueue = data_priv.get( elem, type );\r\n\r\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\r\n\t\t\tif ( data ) {\r\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\r\n\t\t\t\t\tqueue = data_priv.access( elem, type, jQuery.makeArray(data) );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tqueue.push( data );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn queue || [];\r\n\t\t}\r\n\t},\r\n\r\n\tdequeue: function( elem, type ) {\r\n\t\ttype = type || \"fx\";\r\n\r\n\t\tvar queue = jQuery.queue( elem, type ),\r\n\t\t\tstartLength = queue.length,\r\n\t\t\tfn = queue.shift(),\r\n\t\t\thooks = jQuery._queueHooks( elem, type ),\r\n\t\t\tnext = function() {\r\n\t\t\t\tjQuery.dequeue( elem, type );\r\n\t\t\t};\r\n\r\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\r\n\t\tif ( fn === \"inprogress\" ) {\r\n\t\t\tfn = queue.shift();\r\n\t\t\tstartLength--;\r\n\t\t}\r\n\r\n\t\tif ( fn ) {\r\n\r\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\r\n\t\t\t// automatically dequeued\r\n\t\t\tif ( type === \"fx\" ) {\r\n\t\t\t\tqueue.unshift( \"inprogress\" );\r\n\t\t\t}\r\n\r\n\t\t\t// clear up the last queue stop function\r\n\t\t\tdelete hooks.stop;\r\n\t\t\tfn.call( elem, next, hooks );\r\n\t\t}\r\n\r\n\t\tif ( !startLength && hooks ) {\r\n\t\t\thooks.empty.fire();\r\n\t\t}\r\n\t},\r\n\r\n\t// not intended for public consumption - generates a queueHooks object, or returns the current one\r\n\t_queueHooks: function( elem, type ) {\r\n\t\tvar key = type + \"queueHooks\";\r\n\t\treturn data_priv.get( elem, key ) || data_priv.access( elem, key, {\r\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\r\n\t\t\t\tdata_priv.remove( elem, [ type + \"queue\", key ] );\r\n\t\t\t})\r\n\t\t});\r\n\t}\r\n});\r\n\r\njQuery.fn.extend({\r\n\tqueue: function( type, data ) {\r\n\t\tvar setter = 2;\r\n\r\n\t\tif ( typeof type !== \"string\" ) {\r\n\t\t\tdata = type;\r\n\t\t\ttype = \"fx\";\r\n\t\t\tsetter--;\r\n\t\t}\r\n\r\n\t\tif ( arguments.length < setter ) {\r\n\t\t\treturn jQuery.queue( this[0], type );\r\n\t\t}\r\n\r\n\t\treturn data === undefined ?\r\n\t\t\tthis :\r\n\t\t\tthis.each(function() {\r\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\r\n\r\n\t\t\t\t// ensure a hooks for this queue\r\n\t\t\t\tjQuery._queueHooks( this, type );\r\n\r\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\r\n\t\t\t\t\tjQuery.dequeue( this, type );\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t},\r\n\tdequeue: function( type ) {\r\n\t\treturn this.each(function() {\r\n\t\t\tjQuery.dequeue( this, type );\r\n\t\t});\r\n\t},\r\n\tclearQueue: function( type ) {\r\n\t\treturn this.queue( type || \"fx\", [] );\r\n\t},\r\n\t// Get a promise resolved when queues of a certain type\r\n\t// are emptied (fx is the type by default)\r\n\tpromise: function( type, obj ) {\r\n\t\tvar tmp,\r\n\t\t\tcount = 1,\r\n\t\t\tdefer = jQuery.Deferred(),\r\n\t\t\telements = this,\r\n\t\t\ti = this.length,\r\n\t\t\tresolve = function() {\r\n\t\t\t\tif ( !( --count ) ) {\r\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\tif ( typeof type !== \"string\" ) {\r\n\t\t\tobj = type;\r\n\t\t\ttype = undefined;\r\n\t\t}\r\n\t\ttype = type || \"fx\";\r\n\r\n\t\twhile ( i-- ) {\r\n\t\t\ttmp = data_priv.get( elements[ i ], type + \"queueHooks\" );\r\n\t\t\tif ( tmp && tmp.empty ) {\r\n\t\t\t\tcount++;\r\n\t\t\t\ttmp.empty.add( resolve );\r\n\t\t\t}\r\n\t\t}\r\n\t\tresolve();\r\n\t\treturn defer.promise( obj );\r\n\t}\r\n});\r\nvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\r\n\r\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\r\n\r\nvar isHidden = function( elem, el ) {\r\n\t\t// isHidden might be called from jQuery#filter function;\r\n\t\t// in that case, element will be second argument\r\n\t\telem = el || elem;\r\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\r\n\t};\r\n\r\nvar rcheckableType = (/^(?:checkbox|radio)$/i);\r\n\r\n\r\n\r\n(function() {\r\n\tvar fragment = document.createDocumentFragment(),\r\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\r\n\t\tinput = document.createElement( \"input\" );\r\n\r\n\t// #11217 - WebKit loses check when the name is after the checked attribute\r\n\t// Support: Windows Web Apps (WWA)\r\n\t// `name` and `type` need .setAttribute for WWA\r\n\tinput.setAttribute( \"type\", \"radio\" );\r\n\tinput.setAttribute( \"checked\", \"checked\" );\r\n\tinput.setAttribute( \"name\", \"t\" );\r\n\r\n\tdiv.appendChild( input );\r\n\r\n\t// Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\r\n\t// old WebKit doesn't clone checked state correctly in fragments\r\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\r\n\r\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\r\n\t// Support: IE9-IE11+\r\n\tdiv.innerHTML = \"\";\r\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\r\n})();\r\nvar strundefined = typeof undefined;\r\n\r\n\r\n\r\nsupport.focusinBubbles = \"onfocusin\" in window;\r\n\r\n\r\nvar\r\n\trkeyEvent = /^key/,\r\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\r\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\r\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\r\n\r\nfunction returnTrue() {\r\n\treturn true;\r\n}\r\n\r\nfunction returnFalse() {\r\n\treturn false;\r\n}\r\n\r\nfunction safeActiveElement() {\r\n\ttry {\r\n\t\treturn document.activeElement;\r\n\t} catch ( err ) { }\r\n}\r\n\r\n/*\r\n * Helper functions for managing events -- not part of the public interface.\r\n * Props to Dean Edwards' addEvent library for many of the ideas.\r\n */\r\njQuery.event = {\r\n\r\n\tglobal: {},\r\n\r\n\tadd: function( elem, types, handler, data, selector ) {\r\n\r\n\t\tvar handleObjIn, eventHandle, tmp,\r\n\t\t\tevents, t, handleObj,\r\n\t\t\tspecial, handlers, type, namespaces, origType,\r\n\t\t\telemData = data_priv.get( elem );\r\n\r\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\r\n\t\tif ( !elemData ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Caller can pass in an object of custom data in lieu of the handler\r\n\t\tif ( handler.handler ) {\r\n\t\t\thandleObjIn = handler;\r\n\t\t\thandler = handleObjIn.handler;\r\n\t\t\tselector = handleObjIn.selector;\r\n\t\t}\r\n\r\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\r\n\t\tif ( !handler.guid ) {\r\n\t\t\thandler.guid = jQuery.guid++;\r\n\t\t}\r\n\r\n\t\t// Init the element's event structure and main handler, if this is the first\r\n\t\tif ( !(events = elemData.events) ) {\r\n\t\t\tevents = elemData.events = {};\r\n\t\t}\r\n\t\tif ( !(eventHandle = elemData.handle) ) {\r\n\t\t\teventHandle = elemData.handle = function( e ) {\r\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\r\n\t\t\t\t// when an event is called after a page has unloaded\r\n\t\t\t\treturn typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?\r\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t// Handle multiple events separated by a space\r\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\r\n\t\tt = types.length;\r\n\t\twhile ( t-- ) {\r\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\r\n\t\t\ttype = origType = tmp[1];\r\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\r\n\r\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\r\n\t\t\tif ( !type ) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// If event changes its type, use the special event handlers for the changed type\r\n\t\t\tspecial = jQuery.event.special[ type ] || {};\r\n\r\n\t\t\t// If selector defined, determine special event api type, otherwise given type\r\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\r\n\r\n\t\t\t// Update special based on newly reset type\r\n\t\t\tspecial = jQuery.event.special[ type ] || {};\r\n\r\n\t\t\t// handleObj is passed to all event handlers\r\n\t\t\thandleObj = jQuery.extend({\r\n\t\t\t\ttype: type,\r\n\t\t\t\torigType: origType,\r\n\t\t\t\tdata: data,\r\n\t\t\t\thandler: handler,\r\n\t\t\t\tguid: handler.guid,\r\n\t\t\t\tselector: selector,\r\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\r\n\t\t\t\tnamespace: namespaces.join(\".\")\r\n\t\t\t}, handleObjIn );\r\n\r\n\t\t\t// Init the event handler queue if we're the first\r\n\t\t\tif ( !(handlers = events[ type ]) ) {\r\n\t\t\t\thandlers = events[ type ] = [];\r\n\t\t\t\thandlers.delegateCount = 0;\r\n\r\n\t\t\t\t// Only use addEventListener if the special events handler returns false\r\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\r\n\t\t\t\t\tif ( elem.addEventListener ) {\r\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ( special.add ) {\r\n\t\t\t\tspecial.add.call( elem, handleObj );\r\n\r\n\t\t\t\tif ( !handleObj.handler.guid ) {\r\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Add to the element's handler list, delegates in front\r\n\t\t\tif ( selector ) {\r\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\r\n\t\t\t} else {\r\n\t\t\t\thandlers.push( handleObj );\r\n\t\t\t}\r\n\r\n\t\t\t// Keep track of which events have ever been used, for event optimization\r\n\t\t\tjQuery.event.global[ type ] = true;\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t// Detach an event or set of events from an element\r\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\r\n\r\n\t\tvar j, origCount, tmp,\r\n\t\t\tevents, t, handleObj,\r\n\t\t\tspecial, handlers, type, namespaces, origType,\r\n\t\t\telemData = data_priv.hasData( elem ) && data_priv.get( elem );\r\n\r\n\t\tif ( !elemData || !(events = elemData.events) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Once for each type.namespace in types; type may be omitted\r\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\r\n\t\tt = types.length;\r\n\t\twhile ( t-- ) {\r\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\r\n\t\t\ttype = origType = tmp[1];\r\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\r\n\r\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\r\n\t\t\tif ( !type ) {\r\n\t\t\t\tfor ( type in events ) {\r\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\r\n\t\t\t\t}\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tspecial = jQuery.event.special[ type ] || {};\r\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\r\n\t\t\thandlers = events[ type ] || [];\r\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\r\n\r\n\t\t\t// Remove matching events\r\n\t\t\torigCount = j = handlers.length;\r\n\t\t\twhile ( j-- ) {\r\n\t\t\t\thandleObj = handlers[ j ];\r\n\r\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\r\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\r\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\r\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\r\n\t\t\t\t\thandlers.splice( j, 1 );\r\n\r\n\t\t\t\t\tif ( handleObj.selector ) {\r\n\t\t\t\t\t\thandlers.delegateCount--;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( special.remove ) {\r\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\r\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\r\n\t\t\tif ( origCount && !handlers.length ) {\r\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\r\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdelete events[ type ];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Remove the expando if it's no longer used\r\n\t\tif ( jQuery.isEmptyObject( events ) ) {\r\n\t\t\tdelete elemData.handle;\r\n\t\t\tdata_priv.remove( elem, \"events\" );\r\n\t\t}\r\n\t},\r\n\r\n\ttrigger: function( event, data, elem, onlyHandlers ) {\r\n\r\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special,\r\n\t\t\teventPath = [ elem || document ],\r\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\r\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\r\n\r\n\t\tcur = tmp = elem = elem || document;\r\n\r\n\t\t// Don't do events on text and comment nodes\r\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\r\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( type.indexOf(\".\") >= 0 ) {\r\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\r\n\t\t\tnamespaces = type.split(\".\");\r\n\t\t\ttype = namespaces.shift();\r\n\t\t\tnamespaces.sort();\r\n\t\t}\r\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\r\n\r\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\r\n\t\tevent = event[ jQuery.expando ] ?\r\n\t\t\tevent :\r\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\r\n\r\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\r\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\r\n\t\tevent.namespace = namespaces.join(\".\");\r\n\t\tevent.namespace_re = event.namespace ?\r\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\r\n\t\t\tnull;\r\n\r\n\t\t// Clean up the event in case it is being reused\r\n\t\tevent.result = undefined;\r\n\t\tif ( !event.target ) {\r\n\t\t\tevent.target = elem;\r\n\t\t}\r\n\r\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\r\n\t\tdata = data == null ?\r\n\t\t\t[ event ] :\r\n\t\t\tjQuery.makeArray( data, [ event ] );\r\n\r\n\t\t// Allow special events to draw outside the lines\r\n\t\tspecial = jQuery.event.special[ type ] || {};\r\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\r\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\r\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\r\n\r\n\t\t\tbubbleType = special.delegateType || type;\r\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\r\n\t\t\t\tcur = cur.parentNode;\r\n\t\t\t}\r\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\r\n\t\t\t\teventPath.push( cur );\r\n\t\t\t\ttmp = cur;\r\n\t\t\t}\r\n\r\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\r\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\r\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Fire handlers on the event path\r\n\t\ti = 0;\r\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\r\n\r\n\t\t\tevent.type = i > 1 ?\r\n\t\t\t\tbubbleType :\r\n\t\t\t\tspecial.bindType || type;\r\n\r\n\t\t\t// jQuery handler\r\n\t\t\thandle = ( data_priv.get( cur, \"events\" ) || {} )[ event.type ] && data_priv.get( cur, \"handle\" );\r\n\t\t\tif ( handle ) {\r\n\t\t\t\thandle.apply( cur, data );\r\n\t\t\t}\r\n\r\n\t\t\t// Native handler\r\n\t\t\thandle = ontype && cur[ ontype ];\r\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\r\n\t\t\t\tevent.result = handle.apply( cur, data );\r\n\t\t\t\tif ( event.result === false ) {\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tevent.type = type;\r\n\r\n\t\t// If nobody prevented the default action, do it now\r\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\r\n\r\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\r\n\t\t\t\tjQuery.acceptData( elem ) ) {\r\n\r\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\r\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\r\n\t\t\t\tif ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {\r\n\r\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\r\n\t\t\t\t\ttmp = elem[ ontype ];\r\n\r\n\t\t\t\t\tif ( tmp ) {\r\n\t\t\t\t\t\telem[ ontype ] = null;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\r\n\t\t\t\t\tjQuery.event.triggered = type;\r\n\t\t\t\t\telem[ type ]();\r\n\t\t\t\t\tjQuery.event.triggered = undefined;\r\n\r\n\t\t\t\t\tif ( tmp ) {\r\n\t\t\t\t\t\telem[ ontype ] = tmp;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn event.result;\r\n\t},\r\n\r\n\tdispatch: function( event ) {\r\n\r\n\t\t// Make a writable jQuery.Event from the native event object\r\n\t\tevent = jQuery.event.fix( event );\r\n\r\n\t\tvar i, j, ret, matched, handleObj,\r\n\t\t\thandlerQueue = [],\r\n\t\t\targs = slice.call( arguments ),\r\n\t\t\thandlers = ( data_priv.get( this, \"events\" ) || {} )[ event.type ] || [],\r\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\r\n\r\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\r\n\t\targs[0] = event;\r\n\t\tevent.delegateTarget = this;\r\n\r\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\r\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Determine handlers\r\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\r\n\r\n\t\t// Run delegates first; they may want to stop propagation beneath us\r\n\t\ti = 0;\r\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\r\n\t\t\tevent.currentTarget = matched.elem;\r\n\r\n\t\t\tj = 0;\r\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\r\n\r\n\t\t\t\t// Triggered event must either 1) have no namespace, or\r\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\r\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\r\n\r\n\t\t\t\t\tevent.handleObj = handleObj;\r\n\t\t\t\t\tevent.data = handleObj.data;\r\n\r\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\r\n\t\t\t\t\t\t\t.apply( matched.elem, args );\r\n\r\n\t\t\t\t\tif ( ret !== undefined ) {\r\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\r\n\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Call the postDispatch hook for the mapped type\r\n\t\tif ( special.postDispatch ) {\r\n\t\t\tspecial.postDispatch.call( this, event );\r\n\t\t}\r\n\r\n\t\treturn event.result;\r\n\t},\r\n\r\n\thandlers: function( event, handlers ) {\r\n\t\tvar i, matches, sel, handleObj,\r\n\t\t\thandlerQueue = [],\r\n\t\t\tdelegateCount = handlers.delegateCount,\r\n\t\t\tcur = event.target;\r\n\r\n\t\t// Find delegate handlers\r\n\t\t// Black-hole SVG instance trees (#13180)\r\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\r\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\r\n\r\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\r\n\r\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\r\n\t\t\t\tif ( cur.disabled !== true || event.type !== \"click\" ) {\r\n\t\t\t\t\tmatches = [];\r\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\r\n\t\t\t\t\t\thandleObj = handlers[ i ];\r\n\r\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\r\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\r\n\r\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\r\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\r\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\r\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ( matches[ sel ] ) {\r\n\t\t\t\t\t\t\tmatches.push( handleObj );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( matches.length ) {\r\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Add the remaining (directly-bound) handlers\r\n\t\tif ( delegateCount < handlers.length ) {\r\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\r\n\t\t}\r\n\r\n\t\treturn handlerQueue;\r\n\t},\r\n\r\n\t// Includes some event props shared by KeyEvent and MouseEvent\r\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\r\n\r\n\tfixHooks: {},\r\n\r\n\tkeyHooks: {\r\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\r\n\t\tfilter: function( event, original ) {\r\n\r\n\t\t\t// Add which for key events\r\n\t\t\tif ( event.which == null ) {\r\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\r\n\t\t\t}\r\n\r\n\t\t\treturn event;\r\n\t\t}\r\n\t},\r\n\r\n\tmouseHooks: {\r\n\t\tprops: \"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\r\n\t\tfilter: function( event, original ) {\r\n\t\t\tvar eventDoc, doc, body,\r\n\t\t\t\tbutton = original.button;\r\n\r\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\r\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\r\n\t\t\t\teventDoc = event.target.ownerDocument || document;\r\n\t\t\t\tdoc = eventDoc.documentElement;\r\n\t\t\t\tbody = eventDoc.body;\r\n\r\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\r\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\r\n\t\t\t}\r\n\r\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\r\n\t\t\t// Note: button is not normalized, so don't use it\r\n\t\t\tif ( !event.which && button !== undefined ) {\r\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\r\n\t\t\t}\r\n\r\n\t\t\treturn event;\r\n\t\t}\r\n\t},\r\n\r\n\tfix: function( event ) {\r\n\t\tif ( event[ jQuery.expando ] ) {\r\n\t\t\treturn event;\r\n\t\t}\r\n\r\n\t\t// Create a writable copy of the event object and normalize some properties\r\n\t\tvar i, prop, copy,\r\n\t\t\ttype = event.type,\r\n\t\t\toriginalEvent = event,\r\n\t\t\tfixHook = this.fixHooks[ type ];\r\n\r\n\t\tif ( !fixHook ) {\r\n\t\t\tthis.fixHooks[ type ] = fixHook =\r\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\r\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\r\n\t\t\t\t{};\r\n\t\t}\r\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\r\n\r\n\t\tevent = new jQuery.Event( originalEvent );\r\n\r\n\t\ti = copy.length;\r\n\t\twhile ( i-- ) {\r\n\t\t\tprop = copy[ i ];\r\n\t\t\tevent[ prop ] = originalEvent[ prop ];\r\n\t\t}\r\n\r\n\t\t// Support: Cordova 2.5 (WebKit) (#13255)\r\n\t\t// All events should have a target; Cordova deviceready doesn't\r\n\t\tif ( !event.target ) {\r\n\t\t\tevent.target = document;\r\n\t\t}\r\n\r\n\t\t// Support: Safari 6.0+, Chrome < 28\r\n\t\t// Target should not be a text node (#504, #13143)\r\n\t\tif ( event.target.nodeType === 3 ) {\r\n\t\t\tevent.target = event.target.parentNode;\r\n\t\t}\r\n\r\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\r\n\t},\r\n\r\n\tspecial: {\r\n\t\tload: {\r\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\r\n\t\t\tnoBubble: true\r\n\t\t},\r\n\t\tfocus: {\r\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\r\n\t\t\ttrigger: function() {\r\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\r\n\t\t\t\t\tthis.focus();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdelegateType: \"focusin\"\r\n\t\t},\r\n\t\tblur: {\r\n\t\t\ttrigger: function() {\r\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\r\n\t\t\t\t\tthis.blur();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdelegateType: \"focusout\"\r\n\t\t},\r\n\t\tclick: {\r\n\t\t\t// For checkbox, fire native event so checked state will be right\r\n\t\t\ttrigger: function() {\r\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && jQuery.nodeName( this, \"input\" ) ) {\r\n\t\t\t\t\tthis.click();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\r\n\t\t\t_default: function( event ) {\r\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tbeforeunload: {\r\n\t\t\tpostDispatch: function( event ) {\r\n\r\n\t\t\t\t// Support: Firefox 20+\r\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\r\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\r\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tsimulate: function( type, elem, event, bubble ) {\r\n\t\t// Piggyback on a donor event to simulate a different one.\r\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\r\n\t\t// simulated event prevents default then we do the same on the donor.\r\n\t\tvar e = jQuery.extend(\r\n\t\t\tnew jQuery.Event(),\r\n\t\t\tevent,\r\n\t\t\t{\r\n\t\t\t\ttype: type,\r\n\t\t\t\tisSimulated: true,\r\n\t\t\t\toriginalEvent: {}\r\n\t\t\t}\r\n\t\t);\r\n\t\tif ( bubble ) {\r\n\t\t\tjQuery.event.trigger( e, null, elem );\r\n\t\t} else {\r\n\t\t\tjQuery.event.dispatch.call( elem, e );\r\n\t\t}\r\n\t\tif ( e.isDefaultPrevented() ) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t}\r\n};\r\n\r\njQuery.removeEvent = function( elem, type, handle ) {\r\n\tif ( elem.removeEventListener ) {\r\n\t\telem.removeEventListener( type, handle, false );\r\n\t}\r\n};\r\n\r\njQuery.Event = function( src, props ) {\r\n\t// Allow instantiation without the 'new' keyword\r\n\tif ( !(this instanceof jQuery.Event) ) {\r\n\t\treturn new jQuery.Event( src, props );\r\n\t}\r\n\r\n\t// Event object\r\n\tif ( src && src.type ) {\r\n\t\tthis.originalEvent = src;\r\n\t\tthis.type = src.type;\r\n\r\n\t\t// Events bubbling up the document may have been marked as prevented\r\n\t\t// by a handler lower down the tree; reflect the correct value.\r\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\r\n\t\t\t\tsrc.defaultPrevented === undefined &&\r\n\t\t\t\t// Support: Android < 4.0\r\n\t\t\t\tsrc.returnValue === false ?\r\n\t\t\treturnTrue :\r\n\t\t\treturnFalse;\r\n\r\n\t// Event type\r\n\t} else {\r\n\t\tthis.type = src;\r\n\t}\r\n\r\n\t// Put explicitly provided properties onto the event object\r\n\tif ( props ) {\r\n\t\tjQuery.extend( this, props );\r\n\t}\r\n\r\n\t// Create a timestamp if incoming event doesn't have one\r\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\r\n\r\n\t// Mark it as fixed\r\n\tthis[ jQuery.expando ] = true;\r\n};\r\n\r\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\r\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\r\njQuery.Event.prototype = {\r\n\tisDefaultPrevented: returnFalse,\r\n\tisPropagationStopped: returnFalse,\r\n\tisImmediatePropagationStopped: returnFalse,\r\n\r\n\tpreventDefault: function() {\r\n\t\tvar e = this.originalEvent;\r\n\r\n\t\tthis.isDefaultPrevented = returnTrue;\r\n\r\n\t\tif ( e && e.preventDefault ) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\t},\r\n\tstopPropagation: function() {\r\n\t\tvar e = this.originalEvent;\r\n\r\n\t\tthis.isPropagationStopped = returnTrue;\r\n\r\n\t\tif ( e && e.stopPropagation ) {\r\n\t\t\te.stopPropagation();\r\n\t\t}\r\n\t},\r\n\tstopImmediatePropagation: function() {\r\n\t\tvar e = this.originalEvent;\r\n\r\n\t\tthis.isImmediatePropagationStopped = returnTrue;\r\n\r\n\t\tif ( e && e.stopImmediatePropagation ) {\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t}\r\n\r\n\t\tthis.stopPropagation();\r\n\t}\r\n};\r\n\r\n// Create mouseenter/leave events using mouseover/out and event-time checks\r\n// Support: Chrome 15+\r\njQuery.each({\r\n\tmouseenter: \"mouseover\",\r\n\tmouseleave: \"mouseout\",\r\n\tpointerenter: \"pointerover\",\r\n\tpointerleave: \"pointerout\"\r\n}, function( orig, fix ) {\r\n\tjQuery.event.special[ orig ] = {\r\n\t\tdelegateType: fix,\r\n\t\tbindType: fix,\r\n\r\n\t\thandle: function( event ) {\r\n\t\t\tvar ret,\r\n\t\t\t\ttarget = this,\r\n\t\t\t\trelated = event.relatedTarget,\r\n\t\t\t\thandleObj = event.handleObj;\r\n\r\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\r\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\r\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\r\n\t\t\t\tevent.type = handleObj.origType;\r\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\r\n\t\t\t\tevent.type = fix;\r\n\t\t\t}\r\n\t\t\treturn ret;\r\n\t\t}\r\n\t};\r\n});\r\n\r\n// Create \"bubbling\" focus and blur events\r\n// Support: Firefox, Chrome, Safari\r\nif ( !support.focusinBubbles ) {\r\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\r\n\r\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\r\n\t\tvar handler = function( event ) {\r\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\r\n\t\t\t};\r\n\r\n\t\tjQuery.event.special[ fix ] = {\r\n\t\t\tsetup: function() {\r\n\t\t\t\tvar doc = this.ownerDocument || this,\r\n\t\t\t\t\tattaches = data_priv.access( doc, fix );\r\n\r\n\t\t\t\tif ( !attaches ) {\r\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\r\n\t\t\t\t}\r\n\t\t\t\tdata_priv.access( doc, fix, ( attaches || 0 ) + 1 );\r\n\t\t\t},\r\n\t\t\tteardown: function() {\r\n\t\t\t\tvar doc = this.ownerDocument || this,\r\n\t\t\t\t\tattaches = data_priv.access( doc, fix ) - 1;\r\n\r\n\t\t\t\tif ( !attaches ) {\r\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\r\n\t\t\t\t\tdata_priv.remove( doc, fix );\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdata_priv.access( doc, fix, attaches );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t});\r\n}\r\n\r\njQuery.fn.extend({\r\n\r\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\r\n\t\tvar origFn, type;\r\n\r\n\t\t// Types can be a map of types/handlers\r\n\t\tif ( typeof types === \"object\" ) {\r\n\t\t\t// ( types-Object, selector, data )\r\n\t\t\tif ( typeof selector !== \"string\" ) {\r\n\t\t\t\t// ( types-Object, data )\r\n\t\t\t\tdata = data || selector;\r\n\t\t\t\tselector = undefined;\r\n\t\t\t}\r\n\t\t\tfor ( type in types ) {\r\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tif ( data == null && fn == null ) {\r\n\t\t\t// ( types, fn )\r\n\t\t\tfn = selector;\r\n\t\t\tdata = selector = undefined;\r\n\t\t} else if ( fn == null ) {\r\n\t\t\tif ( typeof selector === \"string\" ) {\r\n\t\t\t\t// ( types, selector, fn )\r\n\t\t\t\tfn = data;\r\n\t\t\t\tdata = undefined;\r\n\t\t\t} else {\r\n\t\t\t\t// ( types, data, fn )\r\n\t\t\t\tfn = data;\r\n\t\t\t\tdata = selector;\r\n\t\t\t\tselector = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif ( fn === false ) {\r\n\t\t\tfn = returnFalse;\r\n\t\t} else if ( !fn ) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tif ( one === 1 ) {\r\n\t\t\torigFn = fn;\r\n\t\t\tfn = function( event ) {\r\n\t\t\t\t// Can use an empty set, since event contains the info\r\n\t\t\t\tjQuery().off( event );\r\n\t\t\t\treturn origFn.apply( this, arguments );\r\n\t\t\t};\r\n\t\t\t// Use same guid so caller can remove using origFn\r\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\r\n\t\t}\r\n\t\treturn this.each( function() {\r\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\r\n\t\t});\r\n\t},\r\n\tone: function( types, selector, data, fn ) {\r\n\t\treturn this.on( types, selector, data, fn, 1 );\r\n\t},\r\n\toff: function( types, selector, fn ) {\r\n\t\tvar handleObj, type;\r\n\t\tif ( types && types.preventDefault && types.handleObj ) {\r\n\t\t\t// ( event ) dispatched jQuery.Event\r\n\t\t\thandleObj = types.handleObj;\r\n\t\t\tjQuery( types.delegateTarget ).off(\r\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\r\n\t\t\t\thandleObj.selector,\r\n\t\t\t\thandleObj.handler\r\n\t\t\t);\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tif ( typeof types === \"object\" ) {\r\n\t\t\t// ( types-object [, selector] )\r\n\t\t\tfor ( type in types ) {\r\n\t\t\t\tthis.off( type, selector, types[ type ] );\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tif ( selector === false || typeof selector === \"function\" ) {\r\n\t\t\t// ( types [, fn] )\r\n\t\t\tfn = selector;\r\n\t\t\tselector = undefined;\r\n\t\t}\r\n\t\tif ( fn === false ) {\r\n\t\t\tfn = returnFalse;\r\n\t\t}\r\n\t\treturn this.each(function() {\r\n\t\t\tjQuery.event.remove( this, types, fn, selector );\r\n\t\t});\r\n\t},\r\n\r\n\ttrigger: function( type, data ) {\r\n\t\treturn this.each(function() {\r\n\t\t\tjQuery.event.trigger( type, data, this );\r\n\t\t});\r\n\t},\r\n\ttriggerHandler: function( type, data ) {\r\n\t\tvar elem = this[0];\r\n\t\tif ( elem ) {\r\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\r\n\t\t}\r\n\t}\r\n});\r\n\r\n\r\nvar\r\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\r\n\trtagName = /<([\\w:]+)/,\r\n\trhtml = /<|&#?\\w+;/,\r\n\trnoInnerhtml = /<(?:script|style|link)/i,\r\n\t// checked=\"checked\" or checked\r\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\r\n\trscriptType = /^$|\\/(?:java|ecma)script/i,\r\n\trscriptTypeMasked = /^true\\/(.*)/,\r\n\trcleanScript = /^\\s*\\s*$/g,\r\n\r\n\t// We have to close these tags to support XHTML (#13200)\r\n\twrapMap = {\r\n\r\n\t\t// Support: IE 9\r\n\t\toption: [ 1, \"\" ],\r\n\r\n\t\tthead: [ 1, \"\", \"
\" ],\r\n\t\tcol: [ 2, \"\", \"
\" ],\r\n\t\ttr: [ 2, \"\", \"
\" ],\r\n\t\ttd: [ 3, \"\", \"
\" ],\r\n\r\n\t\t_default: [ 0, \"\", \"\" ]\r\n\t};\r\n\r\n// Support: IE 9\r\nwrapMap.optgroup = wrapMap.option;\r\n\r\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\r\nwrapMap.th = wrapMap.td;\r\n\r\n// Support: 1.x compatibility\r\n// Manipulating tables requires a tbody\r\nfunction manipulationTarget( elem, content ) {\r\n\treturn jQuery.nodeName( elem, \"table\" ) &&\r\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\r\n\r\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\r\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\r\n\t\telem;\r\n}\r\n\r\n// Replace/restore the type attribute of script elements for safe DOM manipulation\r\nfunction disableScript( elem ) {\r\n\telem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\r\n\treturn elem;\r\n}\r\nfunction restoreScript( elem ) {\r\n\tvar match = rscriptTypeMasked.exec( elem.type );\r\n\r\n\tif ( match ) {\r\n\t\telem.type = match[ 1 ];\r\n\t} else {\r\n\t\telem.removeAttribute(\"type\");\r\n\t}\r\n\r\n\treturn elem;\r\n}\r\n\r\n// Mark scripts as having already been evaluated\r\nfunction setGlobalEval( elems, refElements ) {\r\n\tvar i = 0,\r\n\t\tl = elems.length;\r\n\r\n\tfor ( ; i < l; i++ ) {\r\n\t\tdata_priv.set(\r\n\t\t\telems[ i ], \"globalEval\", !refElements || data_priv.get( refElements[ i ], \"globalEval\" )\r\n\t\t);\r\n\t}\r\n}\r\n\r\nfunction cloneCopyEvent( src, dest ) {\r\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\r\n\r\n\tif ( dest.nodeType !== 1 ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// 1. Copy private data: events, handlers, etc.\r\n\tif ( data_priv.hasData( src ) ) {\r\n\t\tpdataOld = data_priv.access( src );\r\n\t\tpdataCur = data_priv.set( dest, pdataOld );\r\n\t\tevents = pdataOld.events;\r\n\r\n\t\tif ( events ) {\r\n\t\t\tdelete pdataCur.handle;\r\n\t\t\tpdataCur.events = {};\r\n\r\n\t\t\tfor ( type in events ) {\r\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\r\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// 2. Copy user data\r\n\tif ( data_user.hasData( src ) ) {\r\n\t\tudataOld = data_user.access( src );\r\n\t\tudataCur = jQuery.extend( {}, udataOld );\r\n\r\n\t\tdata_user.set( dest, udataCur );\r\n\t}\r\n}\r\n\r\nfunction getAll( context, tag ) {\r\n\tvar ret = context.getElementsByTagName ? context.getElementsByTagName( tag || \"*\" ) :\r\n\t\t\tcontext.querySelectorAll ? context.querySelectorAll( tag || \"*\" ) :\r\n\t\t\t[];\r\n\r\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\r\n\t\tjQuery.merge( [ context ], ret ) :\r\n\t\tret;\r\n}\r\n\r\n// Support: IE >= 9\r\nfunction fixInput( src, dest ) {\r\n\tvar nodeName = dest.nodeName.toLowerCase();\r\n\r\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\r\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\r\n\t\tdest.checked = src.checked;\r\n\r\n\t// Fails to return the selected option to the default selected state when cloning options\r\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\r\n\t\tdest.defaultValue = src.defaultValue;\r\n\t}\r\n}\r\n\r\njQuery.extend({\r\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\r\n\t\tvar i, l, srcElements, destElements,\r\n\t\t\tclone = elem.cloneNode( true ),\r\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\r\n\r\n\t\t// Support: IE >= 9\r\n\t\t// Fix Cloning issues\r\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\r\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\r\n\r\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\r\n\t\t\tdestElements = getAll( clone );\r\n\t\t\tsrcElements = getAll( elem );\r\n\r\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\r\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Copy the events from the original to the clone\r\n\t\tif ( dataAndEvents ) {\r\n\t\t\tif ( deepDataAndEvents ) {\r\n\t\t\t\tsrcElements = srcElements || getAll( elem );\r\n\t\t\t\tdestElements = destElements || getAll( clone );\r\n\r\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\r\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tcloneCopyEvent( elem, clone );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Preserve script evaluation history\r\n\t\tdestElements = getAll( clone, \"script\" );\r\n\t\tif ( destElements.length > 0 ) {\r\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\r\n\t\t}\r\n\r\n\t\t// Return the cloned set\r\n\t\treturn clone;\r\n\t},\r\n\r\n\tbuildFragment: function( elems, context, scripts, selection ) {\r\n\t\tvar elem, tmp, tag, wrap, contains, j,\r\n\t\t\tfragment = context.createDocumentFragment(),\r\n\t\t\tnodes = [],\r\n\t\t\ti = 0,\r\n\t\t\tl = elems.length;\r\n\r\n\t\tfor ( ; i < l; i++ ) {\r\n\t\t\telem = elems[ i ];\r\n\r\n\t\t\tif ( elem || elem === 0 ) {\r\n\r\n\t\t\t\t// Add nodes directly\r\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\r\n\t\t\t\t\t// Support: QtWebKit\r\n\t\t\t\t\t// jQuery.merge because push.apply(_, arraylike) throws\r\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\r\n\r\n\t\t\t\t// Convert non-html into a text node\r\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\r\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\r\n\r\n\t\t\t\t// Convert html into DOM nodes\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement(\"div\") );\r\n\r\n\t\t\t\t\t// Deserialize a standard representation\r\n\t\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\r\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\r\n\t\t\t\t\ttmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, \"<$1>\" ) + wrap[ 2 ];\r\n\r\n\t\t\t\t\t// Descend through wrappers to the right content\r\n\t\t\t\t\tj = wrap[ 0 ];\r\n\t\t\t\t\twhile ( j-- ) {\r\n\t\t\t\t\t\ttmp = tmp.lastChild;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Support: QtWebKit\r\n\t\t\t\t\t// jQuery.merge because push.apply(_, arraylike) throws\r\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\r\n\r\n\t\t\t\t\t// Remember the top-level container\r\n\t\t\t\t\ttmp = fragment.firstChild;\r\n\r\n\t\t\t\t\t// Fixes #12346\r\n\t\t\t\t\t// Support: Webkit, IE\r\n\t\t\t\t\ttmp.textContent = \"\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Remove wrapper from fragment\r\n\t\tfragment.textContent = \"\";\r\n\r\n\t\ti = 0;\r\n\t\twhile ( (elem = nodes[ i++ ]) ) {\r\n\r\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\r\n\t\t\t// that element, do not do anything\r\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\r\n\r\n\t\t\t// Append to fragment\r\n\t\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\r\n\r\n\t\t\t// Preserve script evaluation history\r\n\t\t\tif ( contains ) {\r\n\t\t\t\tsetGlobalEval( tmp );\r\n\t\t\t}\r\n\r\n\t\t\t// Capture executables\r\n\t\t\tif ( scripts ) {\r\n\t\t\t\tj = 0;\r\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\r\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\r\n\t\t\t\t\t\tscripts.push( elem );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn fragment;\r\n\t},\r\n\r\n\tcleanData: function( elems ) {\r\n\t\tvar data, elem, type, key,\r\n\t\t\tspecial = jQuery.event.special,\r\n\t\t\ti = 0;\r\n\r\n\t\tfor ( ; (elem = elems[ i ]) !== undefined; i++ ) {\r\n\t\t\tif ( jQuery.acceptData( elem ) ) {\r\n\t\t\t\tkey = elem[ data_priv.expando ];\r\n\r\n\t\t\t\tif ( key && (data = data_priv.cache[ key ]) ) {\r\n\t\t\t\t\tif ( data.events ) {\r\n\t\t\t\t\t\tfor ( type in data.events ) {\r\n\t\t\t\t\t\t\tif ( special[ type ] ) {\r\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\r\n\r\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( data_priv.cache[ key ] ) {\r\n\t\t\t\t\t\t// Discard any remaining `private` data\r\n\t\t\t\t\t\tdelete data_priv.cache[ key ];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Discard any remaining `user` data\r\n\t\t\tdelete data_user.cache[ elem[ data_user.expando ] ];\r\n\t\t}\r\n\t}\r\n});\r\n\r\njQuery.fn.extend({\r\n\ttext: function( value ) {\r\n\t\treturn access( this, function( value ) {\r\n\t\t\treturn value === undefined ?\r\n\t\t\t\tjQuery.text( this ) :\r\n\t\t\t\tthis.empty().each(function() {\r\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\r\n\t\t\t\t\t\tthis.textContent = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}, null, value, arguments.length );\r\n\t},\r\n\r\n\tappend: function() {\r\n\t\treturn this.domManip( arguments, function( elem ) {\r\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\r\n\t\t\t\tvar target = manipulationTarget( this, elem );\r\n\t\t\t\ttarget.appendChild( elem );\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tprepend: function() {\r\n\t\treturn this.domManip( arguments, function( elem ) {\r\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\r\n\t\t\t\tvar target = manipulationTarget( this, elem );\r\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tbefore: function() {\r\n\t\treturn this.domManip( arguments, function( elem ) {\r\n\t\t\tif ( this.parentNode ) {\r\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tafter: function() {\r\n\t\treturn this.domManip( arguments, function( elem ) {\r\n\t\t\tif ( this.parentNode ) {\r\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tremove: function( selector, keepData /* Internal Use Only */ ) {\r\n\t\tvar elem,\r\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\r\n\t\t\ti = 0;\r\n\r\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\r\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\r\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\r\n\t\t\t}\r\n\r\n\t\t\tif ( elem.parentNode ) {\r\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\r\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\r\n\t\t\t\t}\r\n\t\t\t\telem.parentNode.removeChild( elem );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tempty: function() {\r\n\t\tvar elem,\r\n\t\t\ti = 0;\r\n\r\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\r\n\t\t\tif ( elem.nodeType === 1 ) {\r\n\r\n\t\t\t\t// Prevent memory leaks\r\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\r\n\r\n\t\t\t\t// Remove any remaining nodes\r\n\t\t\t\telem.textContent = \"\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\r\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\r\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\r\n\r\n\t\treturn this.map(function() {\r\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\r\n\t\t});\r\n\t},\r\n\r\n\thtml: function( value ) {\r\n\t\treturn access( this, function( value ) {\r\n\t\t\tvar elem = this[ 0 ] || {},\r\n\t\t\t\ti = 0,\r\n\t\t\t\tl = this.length;\r\n\r\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\r\n\t\t\t\treturn elem.innerHTML;\r\n\t\t\t}\r\n\r\n\t\t\t// See if we can take a shortcut and just use innerHTML\r\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\r\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\r\n\r\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1>\" );\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tfor ( ; i < l; i++ ) {\r\n\t\t\t\t\t\telem = this[ i ] || {};\r\n\r\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\r\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\r\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\r\n\t\t\t\t\t\t\telem.innerHTML = value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\telem = 0;\r\n\r\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\r\n\t\t\t\t} catch( e ) {}\r\n\t\t\t}\r\n\r\n\t\t\tif ( elem ) {\r\n\t\t\t\tthis.empty().append( value );\r\n\t\t\t}\r\n\t\t}, null, value, arguments.length );\r\n\t},\r\n\r\n\treplaceWith: function() {\r\n\t\tvar arg = arguments[ 0 ];\r\n\r\n\t\t// Make the changes, replacing each context element with the new content\r\n\t\tthis.domManip( arguments, function( elem ) {\r\n\t\t\targ = this.parentNode;\r\n\r\n\t\t\tjQuery.cleanData( getAll( this ) );\r\n\r\n\t\t\tif ( arg ) {\r\n\t\t\t\targ.replaceChild( elem, this );\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\r\n\t\treturn arg && (arg.length || arg.nodeType) ? this : this.remove();\r\n\t},\r\n\r\n\tdetach: function( selector ) {\r\n\t\treturn this.remove( selector, true );\r\n\t},\r\n\r\n\tdomManip: function( args, callback ) {\r\n\r\n\t\t// Flatten any nested arrays\r\n\t\targs = concat.apply( [], args );\r\n\r\n\t\tvar fragment, first, scripts, hasScripts, node, doc,\r\n\t\t\ti = 0,\r\n\t\t\tl = this.length,\r\n\t\t\tset = this,\r\n\t\t\tiNoClone = l - 1,\r\n\t\t\tvalue = args[ 0 ],\r\n\t\t\tisFunction = jQuery.isFunction( value );\r\n\r\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\r\n\t\tif ( isFunction ||\r\n\t\t\t\t( l > 1 && typeof value === \"string\" &&\r\n\t\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\r\n\t\t\treturn this.each(function( index ) {\r\n\t\t\t\tvar self = set.eq( index );\r\n\t\t\t\tif ( isFunction ) {\r\n\t\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\r\n\t\t\t\t}\r\n\t\t\t\tself.domManip( args, callback );\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif ( l ) {\r\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );\r\n\t\t\tfirst = fragment.firstChild;\r\n\r\n\t\t\tif ( fragment.childNodes.length === 1 ) {\r\n\t\t\t\tfragment = first;\r\n\t\t\t}\r\n\r\n\t\t\tif ( first ) {\r\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\r\n\t\t\t\thasScripts = scripts.length;\r\n\r\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\r\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\r\n\t\t\t\tfor ( ; i < l; i++ ) {\r\n\t\t\t\t\tnode = fragment;\r\n\r\n\t\t\t\t\tif ( i !== iNoClone ) {\r\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\r\n\r\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\r\n\t\t\t\t\t\tif ( hasScripts ) {\r\n\t\t\t\t\t\t\t// Support: QtWebKit\r\n\t\t\t\t\t\t\t// jQuery.merge because push.apply(_, arraylike) throws\r\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcallback.call( this[ i ], node, i );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( hasScripts ) {\r\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\r\n\r\n\t\t\t\t\t// Reenable scripts\r\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\r\n\r\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\r\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\r\n\t\t\t\t\t\tnode = scripts[ i ];\r\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\r\n\t\t\t\t\t\t\t!data_priv.access( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\r\n\r\n\t\t\t\t\t\t\tif ( node.src ) {\r\n\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\r\n\t\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\r\n\t\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tjQuery.globalEval( node.textContent.replace( rcleanScript, \"\" ) );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\njQuery.each({\r\n\tappendTo: \"append\",\r\n\tprependTo: \"prepend\",\r\n\tinsertBefore: \"before\",\r\n\tinsertAfter: \"after\",\r\n\treplaceAll: \"replaceWith\"\r\n}, function( name, original ) {\r\n\tjQuery.fn[ name ] = function( selector ) {\r\n\t\tvar elems,\r\n\t\t\tret = [],\r\n\t\t\tinsert = jQuery( selector ),\r\n\t\t\tlast = insert.length - 1,\r\n\t\t\ti = 0;\r\n\r\n\t\tfor ( ; i <= last; i++ ) {\r\n\t\t\telems = i === last ? this : this.clone( true );\r\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\r\n\r\n\t\t\t// Support: QtWebKit\r\n\t\t\t// .get() because push.apply(_, arraylike) throws\r\n\t\t\tpush.apply( ret, elems.get() );\r\n\t\t}\r\n\r\n\t\treturn this.pushStack( ret );\r\n\t};\r\n});\r\n\r\n\r\nvar iframe,\r\n\telemdisplay = {};\r\n\r\n/**\r\n * Retrieve the actual display of a element\r\n * @param {String} name nodeName of the element\r\n * @param {Object} doc Document object\r\n */\r\n// Called only from within defaultDisplay\r\nfunction actualDisplay( name, doc ) {\r\n\tvar style,\r\n\t\telem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\r\n\r\n\t\t// getDefaultComputedStyle might be reliably used only on attached element\r\n\t\tdisplay = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?\r\n\r\n\t\t\t// Use of this method is a temporary fix (more like optmization) until something better comes along,\r\n\t\t\t// since it was removed from specification and supported only in FF\r\n\t\t\tstyle.display : jQuery.css( elem[ 0 ], \"display\" );\r\n\r\n\t// We don't have any data stored on the element,\r\n\t// so use \"detach\" method as fast way to get rid of the element\r\n\telem.detach();\r\n\r\n\treturn display;\r\n}\r\n\r\n/**\r\n * Try to determine the default display value of an element\r\n * @param {String} nodeName\r\n */\r\nfunction defaultDisplay( nodeName ) {\r\n\tvar doc = document,\r\n\t\tdisplay = elemdisplay[ nodeName ];\r\n\r\n\tif ( !display ) {\r\n\t\tdisplay = actualDisplay( nodeName, doc );\r\n\r\n\t\t// If the simple way fails, read from inside an iframe\r\n\t\tif ( display === \"none\" || !display ) {\r\n\r\n\t\t\t// Use the already-created iframe if possible\r\n\t\t\tiframe = (iframe || jQuery( \"